added fontawesomefx to have icons in the project

This commit is contained in:
Andreas Billmann
2015-12-29 22:43:01 +01:00
parent 9a0960bdbc
commit af5c64426c
4 changed files with 157 additions and 88 deletions

View File

@@ -23,4 +23,5 @@ dependencies {
compile group: 'net.sf.supercsv', name: 'super-csv', version: '2.4.0' compile group: 'net.sf.supercsv', name: 'super-csv', version: '2.4.0'
compile group: 'com.typesafe', name: 'config', version: '1.3.0' compile group: 'com.typesafe', name: 'config', version: '1.3.0'
compile group: 'commons-validator', name: 'commons-validator', version: '1.4.1' compile group: 'commons-validator', name: 'commons-validator', version: '1.4.1'
compile group: 'de.jensd', name: 'fontawesomefx', version: '8.7'
} }

View File

@@ -27,12 +27,8 @@
package ninja.javafx.smartcsv.fx; package ninja.javafx.smartcsv.fx;
import javafx.application.Platform; import javafx.application.Platform;
import javafx.beans.InvalidationListener;
import javafx.beans.Observable;
import javafx.beans.property.BooleanProperty; import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.concurrent.Service; import javafx.concurrent.Service;
import javafx.concurrent.Task; import javafx.concurrent.Task;
import javafx.event.ActionEvent; import javafx.event.ActionEvent;
@@ -190,7 +186,8 @@ public class SmartCSVController extends FXMLController {
"- spring framework\n" + "- spring framework\n" +
"- supercsv\n" + "- supercsv\n" +
"- config\n" + "- config\n" +
"- commons-validator"); "- commons-validator\n" +
"- fontawesomefx");
alert.showAndWait(); alert.showAndWait();

View File

@@ -13,3 +13,35 @@
.list-cell:even { .list-cell:even {
-fx-background: -fx-control-inner-background; -fx-background: -fx-control-inner-background;
} }
.open-icon {
-glyph-name: "FILE_TEXT_ALT";
-glyph-size: 14px;
}
.config-icon {
-glyph-name: "CHECK";
-glyph-size: 14px;
}
.save-icon {
-glyph-name: "FLOPPY_ALT";
-glyph-size: 14px;
}
.exit-icon {
-glyph-name: "SIGN_OUT";
-glyph-size: 14px;
}
.info-icon {
-glyph-name: "INFO";
-glyph-size: 14px;
}
.error-title-icon {
-glyph-name: "EXCLAMATION_TRIANGLE";
-glyph-size: 14px;
}

View File

@@ -1,32 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?import java.net.*?> <?import de.jensd.fx.glyphs.fontawesome.*?>
<?import javafx.geometry.*?> <?import javafx.geometry.Insets?>
<?import javafx.scene.control.*?> <?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?> <?import javafx.scene.layout.*?>
<?import java.net.URL?> <?import java.net.URL?>
<BorderPane fx:id="applicationPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity"
<BorderPane fx:id="applicationPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="700.0" prefWidth="1000.0" xmlns="http://javafx.com/javafx/8.0.66" xmlns:fx="http://javafx.com/fxml/1"> minWidth="-Infinity" prefHeight="700.0" prefWidth="1000.0" xmlns="http://javafx.com/javafx/8.0.66"
xmlns:fx="http://javafx.com/fxml/1">
<top> <top>
<VBox prefWidth="100.0" BorderPane.alignment="CENTER"> <VBox prefWidth="100.0" BorderPane.alignment="CENTER">
<children> <children>
<MenuBar> <MenuBar>
<menus> <menus>
<Menu mnemonicParsing="false" text="%menu.file"> <Menu mnemonicParsing="false" text="%menu.file">
<graphic>
<FontAwesomeIconView styleClass="save-icon"/>
</graphic>
<items> <items>
<MenuItem mnemonicParsing="false" onAction="#openCsv" text="%menu.open.csv" /> <MenuItem mnemonicParsing="false" onAction="#openCsv" text="%menu.open.csv">
<MenuItem mnemonicParsing="false" onAction="#openConfig" text="%menu.open.config" /> <graphic>
<FontAwesomeIconView styleClass="open-icon"/>
</graphic>
</MenuItem>
<MenuItem mnemonicParsing="false" onAction="#openConfig" text="%menu.open.config">
<graphic>
<FontAwesomeIconView styleClass="config-icon"/>
</graphic>
</MenuItem>
<SeparatorMenuItem mnemonicParsing="false"/> <SeparatorMenuItem mnemonicParsing="false"/>
<MenuItem mnemonicParsing="false" onAction="#saveCsv" text="%menu.save" /> <MenuItem mnemonicParsing="false" onAction="#saveCsv" text="%menu.save">
<MenuItem mnemonicParsing="false" onAction="#saveAsCsv" text="%menu.save.as" /> <graphic>
<FontAwesomeIconView styleClass="save-icon"/>
</graphic>
</MenuItem>
<MenuItem mnemonicParsing="false" onAction="#saveAsCsv" text="%menu.save.as">
<graphic>
<FontAwesomeIconView styleClass="save-icon"/>
</graphic>
</MenuItem>
<SeparatorMenuItem mnemonicParsing="false"/> <SeparatorMenuItem mnemonicParsing="false"/>
<MenuItem mnemonicParsing="false" onAction="#close" text="%menu.close" /> <MenuItem mnemonicParsing="false" onAction="#close" text="%menu.close">
<graphic>
<FontAwesomeIconView styleClass="exit-icon"/>
</graphic>
</MenuItem>
</items> </items>
</Menu> </Menu>
<Menu mnemonicParsing="false" text="%menu.help"> <Menu mnemonicParsing="false" text="%menu.help">
<graphic>
<FontAwesomeIconView styleClass="info-icon"/>
</graphic>
<items> <items>
<MenuItem mnemonicParsing="false" onAction="#about" text="%menu.about" /> <MenuItem mnemonicParsing="false" onAction="#about" text="%menu.about">
<graphic>
<FontAwesomeIconView styleClass="info-icon"/>
</graphic>
</MenuItem>
</items> </items>
</Menu> </Menu>
</menus> </menus>
@@ -38,7 +68,9 @@
<SplitPane dividerPositions="0.8" prefHeight="160.0" prefWidth="200.0" BorderPane.alignment="CENTER"> <SplitPane dividerPositions="0.8" prefHeight="160.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<items> <items>
<AnchorPane fx:id="tableWrapper"> <AnchorPane fx:id="tableWrapper">
<TableView fx:id="tableView" prefHeight="200.0" prefWidth="200.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" BorderPane.alignment="CENTER"> <TableView fx:id="tableView" prefHeight="200.0" prefWidth="200.0" AnchorPane.bottomAnchor="0.0"
AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"
BorderPane.alignment="CENTER">
<columns> <columns>
</columns> </columns>
</TableView> </TableView>
@@ -49,6 +81,9 @@
<padding> <padding>
<Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/> <Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/>
</padding> </padding>
<graphic>
<FontAwesomeIconView styleClass="error-title-icon"/>
</graphic>
</Label> </Label>
<ListView fx:id="errorList" minWidth="10.0" prefWidth="200.0" VBox.vgrow="ALWAYS"/> <ListView fx:id="errorList" minWidth="10.0" prefWidth="200.0" VBox.vgrow="ALWAYS"/>
</children> </children>
@@ -64,23 +99,27 @@
<bottom> <bottom>
<GridPane hgap="8.0" BorderPane.alignment="CENTER"> <GridPane hgap="8.0" BorderPane.alignment="CENTER">
<columnConstraints> <columnConstraints>
<ColumnConstraints hgrow="NEVER" minWidth="10.0"/>
<ColumnConstraints hgrow="NEVER" minWidth="10.0"/> <ColumnConstraints hgrow="NEVER" minWidth="10.0"/>
<ColumnConstraints hgrow="ALWAYS" minWidth="10.0" prefWidth="100.0"/> <ColumnConstraints hgrow="ALWAYS" minWidth="10.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="NEVER" minWidth="10.0"/> <ColumnConstraints hgrow="NEVER" minWidth="10.0"/>
<ColumnConstraints hgrow="ALWAYS" minWidth="10.0" prefWidth="100.0"/> <ColumnConstraints hgrow="ALWAYS" minWidth="10.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="NEVER" minWidth="10.0"/> <ColumnConstraints hgrow="NEVER" minWidth="10.0"/>
<ColumnConstraints hgrow="NEVER" minWidth="10.0"/>
<ColumnConstraints hgrow="ALWAYS" minWidth="10.0" prefWidth="100.0"/> <ColumnConstraints hgrow="ALWAYS" minWidth="10.0" prefWidth="100.0"/>
</columnConstraints> </columnConstraints>
<rowConstraints> <rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/> <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
</rowConstraints> </rowConstraints>
<children> <children>
<Label text="%stateline.csv" GridPane.hgrow="NEVER" /> <FontAwesomeIconView styleClass="open-icon" GridPane.hgrow="NEVER"/>
<Label fx:id="csvName" GridPane.columnIndex="1" GridPane.hgrow="ALWAYS" /> <Label text="%stateline.csv" GridPane.columnIndex="1" GridPane.hgrow="NEVER"/>
<Label text="%stateline.state" GridPane.columnIndex="2" GridPane.hgrow="NEVER" /> <Label fx:id="csvName" GridPane.columnIndex="2" GridPane.hgrow="ALWAYS"/>
<Label fx:id="stateName" GridPane.columnIndex="3" GridPane.hgrow="ALWAYS" /> <Label text="%stateline.state" GridPane.columnIndex="3" GridPane.hgrow="NEVER"/>
<Label text="%stateline.configuration" GridPane.columnIndex="4" GridPane.hgrow="NEVER" /> <Label fx:id="stateName" GridPane.columnIndex="4" GridPane.hgrow="ALWAYS"/>
<Label fx:id="configurationName" GridPane.columnIndex="5" GridPane.hgrow="ALWAYS" /> <FontAwesomeIconView styleClass="open-icon" GridPane.columnIndex="5" GridPane.hgrow="NEVER"/>
<Label text="%stateline.configuration" GridPane.columnIndex="6" GridPane.hgrow="NEVER"/>
<Label fx:id="configurationName" GridPane.columnIndex="7" GridPane.hgrow="ALWAYS"/>
</children> </children>
<BorderPane.margin> <BorderPane.margin>
<Insets top="4.0" left="8.0" bottom="4.0" right="8.0"/> <Insets top="4.0" left="8.0" bottom="4.0" right="8.0"/>