Add other files
parent
1bc2fe1f6f
commit
f0a4a6d16d
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AntConfiguration">
|
||||
<defaultAnt bundledAnt="true" />
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<option name="DEFAULT_COMPILER" value="Javac" />
|
||||
<resourceExtensions />
|
||||
<wildcardResourcePatterns>
|
||||
<entry name="!?*.java" />
|
||||
<entry name="!?*.form" />
|
||||
<entry name="!?*.class" />
|
||||
<entry name="!?*.groovy" />
|
||||
<entry name="!?*.scala" />
|
||||
<entry name="!?*.flex" />
|
||||
<entry name="!?*.kt" />
|
||||
<entry name="!?*.clj" />
|
||||
</wildcardResourcePatterns>
|
||||
<annotationProcessing>
|
||||
<profile default="true" name="Default" enabled="false">
|
||||
<processorPath useClasspath="true" />
|
||||
</profile>
|
||||
</annotationProcessing>
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<html>Simple <b>JavaFX 2.0</b> application that includes simple .fxml file with attached controller and Main class to quick start. Artifact to build JavaFX application is provided.
|
||||
</html>
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
|
||||
</project>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleSettings">
|
||||
<option name="gradleHome" value="C:/Program Files (x86)/Gradle/gradle-1.0-rc-3" />
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="KotlinCommonCompilerArguments">
|
||||
<option name="languageVersion" value="1.1" />
|
||||
<option name="apiVersion" value="1.1" />
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,9 @@
|
|||
<component name="libraryTable">
|
||||
<library name="mysql-connector-java-5.1.41-bin">
|
||||
<CLASSES>
|
||||
<root url="jar://$PROJECT_DIR$/lib/mysql-connector-java-5.1.41-bin.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</component>
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="EntryPointsManager">
|
||||
<entry_points version="2.0" />
|
||||
</component>
|
||||
<component name="ProjectKey">
|
||||
<option name="state" value="project://e79810c8-c5c8-43b1-b19c-90c1f4095425" />
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/chronos-admin.iml" filepath="$PROJECT_DIR$/chronos-admin.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,125 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Palette2">
|
||||
<group name="Swing">
|
||||
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
|
||||
</item>
|
||||
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
|
||||
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
|
||||
<initial-values>
|
||||
<property name="text" value="Button" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="RadioButton" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="CheckBox" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="Label" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||
<preferred-size width="200" height="200" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||
<preferred-size width="200" height="200" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
|
||||
<preferred-size width="-1" height="20" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
|
||||
</item>
|
||||
</group>
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
Binary file not shown.
|
@ -0,0 +1,225 @@
|
|||
package io.chronos.admin;
|
||||
|
||||
import javafx.beans.property.ReadOnlyStringWrapper;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.event.Event;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.util.Callback;
|
||||
|
||||
import javax.print.DocFlavor;
|
||||
import java.sql.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static io.chronos.admin.Controller.alertBadInput;
|
||||
|
||||
public class Controller {
|
||||
public TextField connect_host;
|
||||
public TextField connect_port;
|
||||
public TextField connect_user;
|
||||
public TextField connect_pass;
|
||||
public Button connect_go;
|
||||
public Label connect_status;
|
||||
public TableView<List<String>> schools_table;
|
||||
public TextField schools_search;
|
||||
public TextField add_school_name;
|
||||
public TextField add_school_domain;
|
||||
public Button add_school_go;
|
||||
public TextField delete_school_id;
|
||||
public Button delete_school_go;
|
||||
public TextField users_school;
|
||||
public TableView<List<String>> users_table;
|
||||
public Button users_go;
|
||||
public TextField modify_user_school;
|
||||
public TextField modify_user_id;
|
||||
public Button modify_user_load;
|
||||
public TextField modify_user_name;
|
||||
public TextField modify_user_email;
|
||||
public TextField modify_user_role;
|
||||
public Button modify_user_go;
|
||||
public TextField connect_database;
|
||||
|
||||
private Connection c;
|
||||
|
||||
public void initialize() {
|
||||
try {
|
||||
Class.forName("com.mysql.jdbc.Driver");
|
||||
} catch (ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void connect(ActionEvent actionEvent) {
|
||||
try {
|
||||
String url = "jdbc:mysql://" + connect_host.getText() + ":" + connect_port.getText() + "/" + connect_database.getText();
|
||||
c = DriverManager.getConnection(url, connect_user.getText(), connect_pass.getText());
|
||||
connect_status.setText("Connected to " + url);
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
connect_status.setText("Unable to connect");
|
||||
}
|
||||
}
|
||||
|
||||
private static void loadResultsIntoTable(ResultSet rs, ResultSetMetaData md, TableView tv) throws SQLException {
|
||||
tv.getColumns().clear();
|
||||
TableColumn[] cols = new TableColumn[md.getColumnCount()];
|
||||
for (int i = 0; i < md.getColumnCount(); i++) {
|
||||
cols[i] = new TableColumn(md.getColumnName(i + 1));
|
||||
int finalI = i;
|
||||
cols[i].setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ArrayList<String>, String>, ObservableValue>() {
|
||||
@Override
|
||||
public ObservableValue call(TableColumn.CellDataFeatures<ArrayList<String>, String> data) {
|
||||
return new ReadOnlyStringWrapper(data.getValue().get(finalI));
|
||||
}
|
||||
});
|
||||
}
|
||||
tv.getColumns().addAll(cols);
|
||||
|
||||
tv.getItems().clear();
|
||||
ArrayList<ArrayList<String>> rows = new ArrayList<>();
|
||||
while (rs.next()) {
|
||||
ArrayList<String> row = new ArrayList<>();
|
||||
for (int i = 0; i < md.getColumnCount(); i++) {
|
||||
row.add(rs.getString(i + 1));
|
||||
}
|
||||
rows.add(row);
|
||||
}
|
||||
tv.getItems().addAll(rows);
|
||||
}
|
||||
|
||||
public void queryUsers(ActionEvent actionEvent) {
|
||||
try {
|
||||
PreparedStatement ps = null;
|
||||
if (users_school.getText().length() > 0) {
|
||||
ps = c.prepareStatement("SELECT * FROM user WHERE user.school = ?");
|
||||
ps.setInt(1, Integer.parseInt(users_school.getText()));
|
||||
} else {
|
||||
ps = c.prepareStatement("SELECT * FROM user");
|
||||
}
|
||||
ps.execute();
|
||||
loadResultsIntoTable(ps.getResultSet(), ps.getMetaData(), users_table);
|
||||
} catch (NumberFormatException e) {
|
||||
alertBadInput();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void modifyUserLoad(ActionEvent actionEvent) {
|
||||
try {
|
||||
PreparedStatement ps = c.prepareStatement("SELECT * FROM user WHERE user.school = ? AND user.id = ?");
|
||||
ps.setInt(1, Integer.parseInt(modify_user_school.getText()));
|
||||
ps.setInt(2, Integer.parseInt(modify_user_id.getText()));
|
||||
ps.execute();
|
||||
|
||||
ResultSet rs = ps.getResultSet();
|
||||
if (rs.next()) {
|
||||
modify_user_name.setText(rs.getString("name"));
|
||||
modify_user_email.setText(rs.getString("email"));
|
||||
modify_user_role.setText(rs.getString("role"));
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
alertBadInput();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void modifyUser(ActionEvent actionEvent) {
|
||||
try {
|
||||
PreparedStatement ps = c.prepareStatement("UPDATE user SET user.name = ?, user.email = ?, user.role = ? WHERE user.school = ? AND user.id = ?");
|
||||
ps.setString(1, modify_user_name.getText());
|
||||
ps.setString(2, modify_user_email.getText());
|
||||
ps.setString(3, modify_user_role.getText());
|
||||
ps.setInt(4, Integer.parseInt(modify_user_school.getText()));
|
||||
ps.setInt(5, Integer.parseInt(modify_user_id.getText()));
|
||||
ps.execute();
|
||||
|
||||
alertUpdateDone();
|
||||
} catch (NumberFormatException e) {
|
||||
alertBadInput();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
alertBadInput();
|
||||
}
|
||||
}
|
||||
|
||||
public void querySchools(ActionEvent actionEvent) {
|
||||
try {
|
||||
PreparedStatement ps = c.prepareStatement("SELECT * FROM school WHERE school.name LIKE ?");
|
||||
ps.setString(1,
|
||||
"%" +
|
||||
schools_search.getText()
|
||||
.replace("!", "!!")
|
||||
.replace("%", "!%")
|
||||
.replace("_", "!_")
|
||||
.replace("[", "![")
|
||||
+ "%"
|
||||
);
|
||||
ps.execute();
|
||||
loadResultsIntoTable(ps.getResultSet(), ps.getMetaData(), schools_table);
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void addSchool(ActionEvent actionEvent) {
|
||||
try {
|
||||
PreparedStatement ps = c.prepareStatement("INSERT INTO school (name, domain) VALUES (?, ?)");
|
||||
ps.setString(1, add_school_name.getText());
|
||||
ps.setString(2, add_school_domain.getText());
|
||||
ps.execute();
|
||||
|
||||
alertInsertDone();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
alertBadInput();
|
||||
}
|
||||
}
|
||||
|
||||
public void deleteSchool(Event event) {
|
||||
try {
|
||||
PreparedStatement ps = c.prepareStatement("DELETE FROM school WHERE school.id = ?");
|
||||
ps.setInt(1, Integer.parseInt(delete_school_id.getText()));
|
||||
ps.execute();
|
||||
|
||||
alertDeleteDone();
|
||||
} catch (NumberFormatException e) {
|
||||
alertBadInput();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
alertBadInput();
|
||||
}
|
||||
}
|
||||
|
||||
public static void alertBadInput() {
|
||||
Alert alert = new Alert(Alert.AlertType.ERROR);
|
||||
alert.setTitle("Woof!");
|
||||
alert.setHeaderText("Woof!");
|
||||
alert.setContentText("Bad input");
|
||||
alert.showAndWait();
|
||||
}
|
||||
|
||||
public static void alertInsertDone() {
|
||||
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
||||
alert.setTitle("Woof!");
|
||||
alert.setHeaderText("Woof!");
|
||||
alert.setContentText("Insert done!");
|
||||
alert.showAndWait();
|
||||
}
|
||||
public static void alertUpdateDone() {
|
||||
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
||||
alert.setTitle("Woof!");
|
||||
alert.setHeaderText("Woof!");
|
||||
alert.setContentText("Update done!");
|
||||
alert.showAndWait();
|
||||
}
|
||||
public static void alertDeleteDone() {
|
||||
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
||||
alert.setTitle("Woof!");
|
||||
alert.setHeaderText("Woof!");
|
||||
alert.setContentText("Delete done!");
|
||||
alert.showAndWait();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package io.chronos.admin;
|
||||
|
||||
import javafx.application.Application;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.scene.Parent;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
public class Main extends Application {
|
||||
|
||||
@Override
|
||||
public void start(Stage primaryStage) throws Exception{
|
||||
Parent root = FXMLLoader.load(getClass().getResource("interface.fxml"));
|
||||
primaryStage.setTitle("Hello World");
|
||||
primaryStage.setScene(new Scene(root, 640, 480));
|
||||
primaryStage.show();
|
||||
}
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
launch(args);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,116 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.control.Tab?>
|
||||
<?import javafx.scene.control.TabPane?>
|
||||
<?import javafx.scene.control.TableView?>
|
||||
<?import javafx.scene.control.TextField?>
|
||||
<?import javafx.scene.control.ToolBar?>
|
||||
<?import javafx.scene.layout.AnchorPane?>
|
||||
|
||||
<AnchorPane maxHeight="480.0" maxWidth="640.0" minHeight="480.0" minWidth="640.0" prefHeight="480.0" prefWidth="640.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="io.chronos.admin.Controller">
|
||||
<children>
|
||||
<TabPane prefHeight="200.0" prefWidth="200.0" tabClosingPolicy="UNAVAILABLE" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<tabs>
|
||||
<Tab text="connect">
|
||||
<content>
|
||||
<AnchorPane>
|
||||
<children>
|
||||
<ToolBar prefHeight="40.0" prefWidth="200.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<items>
|
||||
<TextField fx:id="connect_host" prefHeight="27.0" prefWidth="100.0" promptText="server" text="localhost" />
|
||||
<TextField fx:id="connect_port" prefHeight="27.0" prefWidth="60.0" promptText="port" text="3306" />
|
||||
<TextField fx:id="connect_user" prefHeight="27.0" prefWidth="120.0" promptText="username" text="root" />
|
||||
<TextField fx:id="connect_pass" layoutX="174.0" layoutY="11.0" prefHeight="27.0" prefWidth="120.0" promptText="password" />
|
||||
<TextField fx:id="connect_database" layoutX="302.0" layoutY="11.0" prefHeight="27.0" prefWidth="120.0" promptText="database" text="chronos" />
|
||||
<Button fx:id="connect_go" mnemonicParsing="false" onAction="#connect" text="go" />
|
||||
</items>
|
||||
</ToolBar>
|
||||
<Label fx:id="connect_status" alignment="CENTER" layoutX="4.0" layoutY="214.0" text="not connected" textAlignment="CENTER" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="214.0" />
|
||||
</children>
|
||||
</AnchorPane>
|
||||
</content>
|
||||
</Tab>
|
||||
<Tab text="schools">
|
||||
<content>
|
||||
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
|
||||
<children>
|
||||
<TableView fx:id="schools_table" layoutY="44.0" prefHeight="403.0" prefWidth="640.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="40.0" />
|
||||
<ToolBar layoutX="17.0" layoutY="3.0" prefHeight="40.0" prefWidth="200.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<items>
|
||||
<TextField fx:id="schools_search" promptText="simple search" />
|
||||
<Button fx:id="schools_go" mnemonicParsing="false" onAction="#querySchools" text="go" />
|
||||
</items>
|
||||
</ToolBar>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
</content>
|
||||
</Tab>
|
||||
<Tab text="add school">
|
||||
<content>
|
||||
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
|
||||
<children>
|
||||
<ToolBar prefHeight="40.0" prefWidth="200.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<items>
|
||||
<TextField fx:id="add_school_name" prefHeight="27.0" prefWidth="99.0" promptText="name" />
|
||||
<TextField fx:id="add_school_domain" prefHeight="27.0" prefWidth="195.0" promptText="domain" />
|
||||
<Button fx:id="add_school_go" mnemonicParsing="false" onAction="#addSchool" text="go" />
|
||||
</items>
|
||||
</ToolBar>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
</content>
|
||||
</Tab>
|
||||
<Tab text="delete school">
|
||||
<content>
|
||||
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
|
||||
<children>
|
||||
<ToolBar prefHeight="40.0" prefWidth="200.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<items>
|
||||
<TextField fx:id="delete_school_id" prefHeight="27.0" prefWidth="99.0" promptText="id" />
|
||||
<Button fx:id="delete_school_go" mnemonicParsing="false" onAction="#deleteSchool" text="go" />
|
||||
</items>
|
||||
</ToolBar>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
</content>
|
||||
</Tab>
|
||||
<Tab text="users">
|
||||
<content>
|
||||
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
|
||||
<children>
|
||||
<TableView fx:id="users_table" layoutY="44.0" prefHeight="403.0" prefWidth="640.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="40.0" />
|
||||
<ToolBar layoutX="17.0" layoutY="3.0" prefHeight="40.0" prefWidth="200.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<items>
|
||||
<TextField fx:id="users_school" prefHeight="27.0" prefWidth="113.0" promptText="school id" />
|
||||
<Button fx:id="users_go" mnemonicParsing="false" onAction="#queryUsers" text="go" />
|
||||
</items>
|
||||
</ToolBar>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
</content>
|
||||
</Tab>
|
||||
<Tab text="modify user">
|
||||
<content>
|
||||
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
|
||||
<children>
|
||||
<ToolBar layoutX="17.0" layoutY="3.0" prefHeight="40.0" prefWidth="200.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<items>
|
||||
<TextField fx:id="modify_user_school" prefHeight="27.0" prefWidth="83.0" promptText="school id" />
|
||||
<TextField fx:id="modify_user_id" layoutX="10.0" layoutY="11.0" prefHeight="27.0" prefWidth="74.0" promptText="user id" />
|
||||
<Button fx:id="modify_user_load" mnemonicParsing="false" onAction="#modifyUserLoad" text="load" />
|
||||
<TextField fx:id="modify_user_name" layoutX="10.0" layoutY="11.0" prefHeight="27.0" prefWidth="132.0" promptText="name" />
|
||||
<TextField fx:id="modify_user_email" layoutX="100.0" layoutY="11.0" prefHeight="27.0" prefWidth="112.0" promptText="email" />
|
||||
<TextField fx:id="modify_user_role" prefHeight="27.0" prefWidth="65.0" promptText="role" />
|
||||
<Button fx:id="modify_user_go" mnemonicParsing="false" onAction="#modifyUser" text="go" />
|
||||
</items>
|
||||
</ToolBar>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
</content>
|
||||
</Tab>
|
||||
</tabs>
|
||||
</TabPane>
|
||||
</children>
|
||||
</AnchorPane>
|
Loading…
Reference in New Issue