diff --git a/.gitignore b/.gitignore index 108e0cc..a8f28db 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,10 @@ # Maven log/ -target/ \ No newline at end of file +target/ +# Ignore Gradle project-specific cache directory +.gradle + +# Ignore Gradle build output directory +build +log4j/ diff --git a/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/GuiAppender.java b/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/GuiAppender.java deleted file mode 100644 index 9bfdda0..0000000 --- a/LinearRegressionTool/src/main/java/de/wwwu/awolf/presenter/util/GuiAppender.java +++ /dev/null @@ -1,56 +0,0 @@ -package de.wwwu.awolf.presenter.util; - -import de.wwwu.awolf.presenter.Presenter; -import org.apache.log4j.AppenderSkeleton; -import org.apache.log4j.spi.LoggingEvent; -import org.powermock.core.classloader.annotations.PowerMockIgnore; - -@PowerMockIgnore("org.apache.log4j.Appender") -public class GuiAppender extends AppenderSkeleton { - - private Presenter presenter; - - public GuiAppender() { - super(); - - Presenter tmpInstance = Presenter.getInstance(); - while (tmpInstance == null) { - try { - Thread.sleep(1000); - tmpInstance = Presenter.getInstance(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - - presenter = Presenter.getInstance(); - } - - public GuiAppender(boolean isActive) { - super(isActive); - } - - /** - * [DEBUG] 2020-03-27 23:58:40 [Thread-3] - View has been set. - * - * - * @param logEvent - */ - @Override - protected void append(LoggingEvent logEvent) { - if (presenter != null && presenter.getView() != null) { - presenter.getView().logInfo("[" + logEvent.getLevel() + "] " + logEvent.getThreadName() + ": " + logEvent.getRenderedMessage()); - } - } - - @Override - public void close() { - - } - - @Override - public boolean requiresLayout() { - return true; - } - -} diff --git a/LinearRegressionTool/src/main/resources/style/console.css b/LinearRegressionTool/src/main/resources/style/console.css deleted file mode 100644 index ec7d24e..0000000 --- a/LinearRegressionTool/src/main/resources/style/console.css +++ /dev/null @@ -1,10 +0,0 @@ -.text-area { - -fx-font-family: Consolas; - -fx-font-size: 15; - -fx-text-fill: #63f542; - -fx-display-caret:true; -} - -.text-area .content { - -fx-background-color: #000000; -} \ No newline at end of file diff --git a/LinearRegressionTool/src/main/resources/style/style.css b/LinearRegressionTool/src/main/resources/style/style.css new file mode 100644 index 0000000..06c19e9 --- /dev/null +++ b/LinearRegressionTool/src/main/resources/style/style.css @@ -0,0 +1,340 @@ + +/** + * JavaFX CSS Brume, light grey/white theme. + */ +.root { + -fx-background-color: derive(#1d1d1d,20%); +} + + +.titled-pane { + -fx-effect: dropshadow(three-pass-box, #9F9F9F, 15, 0, 0, 0); + -fx-animated: true; + -fx-text-fill: #505050; +} + +.titled-pane .title { + -fx-background-radius: 0, 0, 0; + -fx-font: bold 14px System; + -fx-padding: 0.3em 0.833333em 0.35em 0.833333em; + + /* stop the background from being blue on focus */ + -fx-background-color: ladder( + red, + black 20%, + derive(#d0d0d0,-30%) 30% + ), + linear-gradient( + to bottom, + ladder(#d0d0d0, + derive(#d0d0d0,80%) 60%, + white 82%) 0%, + ladder(#d0d0d0, + derive(#d0d0d0,20%) 10%, + derive(#d0d0d0,-10%) 80%) 100% + ), linear-gradient( + to bottom, + derive(#d0d0d0,34%) 0%, + derive(#d0d0d0,-18%) 100% + ); +} + +.titled-pane:focused > .title > .arrow-button .arrow { + /* do not highlight the title pane arrow on focus */ + -fx-background-color: #606060; +} + +.tree-cell:odd { + /* shade every other line in a tree view */ + -fx-background-color: derive(-fx-control-inner-background,-5%); +} + +/* the previous css to shade every other cell overrides the selection + colour, so put it back for odd cells */ +.tree-view:focused .tree-cell:filled:focused:selected:odd{ + -fx-background-color: -fx-focus-color, -fx-cell-focus-inner-border, -fx-selection-bar; +} + +/* if you have labels within your tree nodes, then make the text light so + that it stands out from the selection colour. */ +.tree-view:focused .tree-cell:filled:focused:selected:odd .label { + -fx-text-fill: -fx-light-text-color; +} +.tree-view:focused .tree-cell:filled:focused:selected:even .label { + -fx-text-fill: -fx-light-text-color; +} + +.button { + /* buttons do not have rounded corners */ + -fx-background-radius: 0; + -fx-label-padding: 0.3em 0.833333em 0.35em 0.833333em; +} + +.menu-button { + /* the left side of the menu button is not rounded */ +} + +.menu-button .label { + -fx-label-padding: 0.23em 0.2em 0.24em 0.2em; +} + +.combo-box-base { + /* the left side of the combo box is not rounded */ + -fx-background-radius: 0 5 5 0, 0 5 5 0, 0 4 4 0, 0 3 3 0; +} + +.combo-box .list-cell { + /* -fx-padding: 6 6 6 6; */ +} + +/* make the tooltip a slightly transparent black rectange with white text */ +.tooltip { + -fx-background-color: black; + -fx-opacity: 0.6; + -fx-background-insets: 0,1,2; + -fx-background-radius: 0; + -fx-padding: 0.333333em 0.666667em 0.333333em 0.666667em; /* 4 8 4 8 */ + -fx-wrap-text:false; +} +.tooltip .label { + -fx-text-fill: white; +} +/* remove the turned page effect */ +.page-corner { + -fx-padding: 0; + -fx-background-color: null; + -fx-shape: null; + -fx-effect: null; +} + +.toggle-button { + -fx-background-radius: 0; + -fx-label-padding: 0.3em 0.833333em 0.35em 0.833333em; +} +.check-box { + -fx-background-radius: 0; +} + +.choice-box { + /* TODO add padding */ + -fx-background-radius: 0; +} +/* Dark */ +.background { + -fx-background-color: derive(#1d1d1d,20%); +} + +.label { + -fx-font-size: 11pt; + -fx-font-family: "Segoe UI Semibold"; + -fx-text-fill: white; + -fx-opacity: 0.6; +} + +.label-bright { + -fx-font-size: 11pt; + -fx-font-family: "Segoe UI Semibold"; + -fx-text-fill: white; + -fx-opacity: 1; +} + +.label-header { + -fx-font-size: 32pt; + -fx-font-family: "Segoe UI Light"; + -fx-text-fill: white; + -fx-opacity: 1; +} + +.table-view { + -fx-base: #1d1d1d; + -fx-control-inner-background: #1d1d1d; + -fx-background-color: #1d1d1d; + -fx-table-cell-border-color: transparent; + -fx-table-header-border-color: transparent; + -fx-padding: 5; +} + +.table-view .column-header-background { + -fx-background-color: transparent; +} + +.table-view .column-header, .table-view .filler { + -fx-size: 35; + -fx-border-width: 0 0 1 0; + -fx-background-color: transparent; + -fx-border-color: + transparent + transparent + derive(-fx-base, 80%) + transparent; + -fx-border-insets: 0 10 1 0; +} + +.table-view .column-header .label { + -fx-font-size: 20pt; + -fx-font-family: "Segoe UI Light"; + -fx-text-fill: white; + -fx-alignment: center-left; + -fx-opacity: 1; +} + +.table-view:focused .table-row-cell:filled:focused:selected { + -fx-background-color: -fx-focus-color; +} + +.split-pane:horizontal > .split-pane-divider { + -fx-border-color: transparent #1d1d1d transparent #1d1d1d; + -fx-background-color: transparent, derive(#1d1d1d,20%); +} + +.split-pane { + -fx-padding: 1 0 0 0; +} + +.menu-bar { + -fx-background-color: derive(#1d1d1d,20%); +} + +.context-menu { + -fx-background-color: derive(#1d1d1d,50%); +} + +.menu-bar .label { + -fx-font-size: 14pt; + -fx-font-family: "Segoe UI Light"; + -fx-text-fill: white; + -fx-opacity: 0.9; +} + +.menu .left-container { + -fx-background-color: black; +} + +.text-field { + -fx-font-size: 12pt; + -fx-font-family: "Segoe UI Semibold"; +} + + +/* + * Metro style Push Button + * Author: Pedro Duque Vieira + * http://pixelduke.wordpress.com/2012/10/23/jmetro-windows-8-controls-on-java/ + */ +.button { + -fx-padding: 5 22 5 22; + -fx-border-color: #e2e2e2; + -fx-border-width: 2; + -fx-background-radius: 0; + -fx-background-color: #1d1d1d; + -fx-font-family: "Segoe UI", Helvetica, Arial, sans-serif; + -fx-font-size: 11pt; + -fx-text-fill: #d8d8d8; + -fx-background-insets: 0 0 0 0, 0, 1, 2; +} + +.button:hover { + -fx-background-color: #3a3a3a; +} + +.button:pressed, .button:default:hover:pressed { + -fx-background-color: white; + -fx-text-fill: #1d1d1d; +} + +.button:focused { + -fx-border-color: white, white; + -fx-border-width: 1, 1; + -fx-border-style: solid, segments(1, 1); + -fx-border-radius: 0, 0; + -fx-border-insets: 1 1 1 1, 0; +} + +.button:disabled, .button:default:disabled { + -fx-opacity: 0.4; + -fx-background-color: #1d1d1d; + -fx-text-fill: white; +} + +.button:default { + -fx-background-color: -fx-focus-color; + -fx-text-fill: #ffffff; +} + +.button:default:hover { + -fx-background-color: derive(-fx-focus-color,30%); +} +/* Console */ +.text-area { + -fx-font-family: Consolas; + -fx-font-size: 15; + -fx-text-fill: #63f542; + -fx-display-caret:true; +} + +.text-area .content { + -fx-background-color: #000000; +} + +/* tabs */ +.tab-pane:top *.tab-header-area { + -fx-background-insets: 0, 0 0 1 0; + /* -fx-padding: 0.416667em 0.166667em 0.0em 0.833em; /* 5 2 0 10 */ + -fx-padding: 0.416667em 0.166667em 0.0em 0.0em; /* overridden as 5 2 0 0 */ +} + +.tab-pane .tab-header-area .tab-header-background { + -fx-opacity: 0; +} + +.tab-pane { + -fx-tab-min-width:120px; + -fx-tab-min-height:50px; + -fx-tab-max-height:50px; +} + +.tab-pane .tab { + -fx-background-color: derive(#1d1d1d,20%); + -fx-background-insets: 0 1 0 1,0,0; + -fx-label-padding: 0.25em 0.25em 0.25em 0.25em; +} + +.tab .tab-label { + -fx-font-size: 14pt; + -fx-font-family: "Segoe UI Light"; + -fx-text-fill: white; + -fx-opacity: 0.9; + -fx-display-caret:true; +} + +.tab-pane .tab:selected { + -fx-background-color: -fx-focus-color; +} + +.algoPane { + -fx-background-color: white; +} + +.algoPane .label { + -fx-text-fill: black; + -fx-font-size: 16pt; + -fx-font-family: "Segoe UI Light"; + -fx-opacity: 0.9; +} + +.default-color0.chart-series-line { -fx-stroke: transparent; } +.default-color1.chart-series-line { -fx-stroke: red; } + +.default-color0.chart-line-symbol { + -fx-background-color: white, green; +} +.default-color1.chart-line-symbol { + -fx-background-color: transparent, transparent; +} + +.default-color0.chart-legend-item-symbol{ + -fx-background-color: green; + } +.default-color1.chart-legend-item-symbol{ + -fx-background-color: red; + } \ No newline at end of file