virtual printer (javaFX window) added
parent
b8418156b1
commit
72d96c4d78
|
@ -54,6 +54,9 @@ dependencies {
|
|||
runtime 'ch.qos.logback:logback-classic:1.1.2'
|
||||
runtime 'ch.qos.logback:logback-core:1.1.2'
|
||||
|
||||
// Jar that creates barcodes
|
||||
compile group: 'net.sourceforge.barbecue', name: 'barbecue', version: '1.5-beta1'
|
||||
|
||||
// Google protobufs
|
||||
compile 'com.google.protobuf:protobuf-java:3.+'
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ import meerkat.voting.controller.VotingBoothImpl;
|
|||
import meerkat.voting.encryptor.VBCryptoManager;
|
||||
import meerkat.voting.encryptor.VBCryptoManagerImpl;
|
||||
import meerkat.voting.gui.ui.GraphicalUI;
|
||||
import meerkat.voting.output.FXWindowOutputDevice;
|
||||
import meerkat.voting.output.SystemConsoleOutputDevice;
|
||||
import meerkat.voting.storage.StorageManager;
|
||||
import meerkat.voting.storage.StorageManagerMockup;
|
||||
|
@ -41,7 +42,7 @@ public class VotingBoothToyGraphicalRun {
|
|||
DigitalSignature sig = new ToySignature("MY_SIGNER_ID");
|
||||
|
||||
StorageManager storageManager = new StorageManagerMockup();
|
||||
SystemConsoleOutputDevice outputDevice = new SystemConsoleOutputDevice();
|
||||
FXWindowOutputDevice outputDevice = new FXWindowOutputDevice();
|
||||
VBCryptoManager cryptoManager = new VBCryptoManagerImpl(rand, enc, sig);
|
||||
// SystemConsoleUI ui = new SystemConsoleUI ();
|
||||
GraphicalUI ui = new GraphicalUI();
|
||||
|
|
|
@ -162,9 +162,6 @@ public class GraphicalUI implements VotingBoothUI, Runnable {
|
|||
logger.debug("UI entered doShowWelcomeScreen");
|
||||
VistaNavigator.setCurrentCommand(command);
|
||||
VistaNavigator.loadVista(VistaNavigator.WELCOME_SCREEN);
|
||||
// waitForEnter(null);
|
||||
// ControllerCallback<Void> callback = command.getCallback();
|
||||
// callback.onSuccess(null);
|
||||
}
|
||||
|
||||
public void answerWelcomeScreen(StartSessionUICommand command) {
|
||||
|
@ -278,30 +275,8 @@ public class GraphicalUI implements VotingBoothUI, Runnable {
|
|||
*/
|
||||
private void doCastOrAudit(CastOrAuditUICommand command) {
|
||||
logger.debug("UI entered doCastOrAudit");
|
||||
System.out.println ("Finalizing your vote. Do you wish to (C)ast or (A)udit?");
|
||||
|
||||
FinalizeBallotChoice fChoice;
|
||||
|
||||
try {
|
||||
String s = readInputLine();
|
||||
if (s.equals("cast") || s.equals("c")) {
|
||||
fChoice = FinalizeBallotChoice.CAST;
|
||||
}
|
||||
else if (s.equals("audit") || s.equals("a")) {
|
||||
fChoice = FinalizeBallotChoice.AUDIT;
|
||||
}
|
||||
else {
|
||||
throw new IllegalArgumentException("UI could not understand the answer for cast/audit question '" + s + "'");
|
||||
}
|
||||
ControllerCallback callback = command.getCallback();
|
||||
assert (callback instanceof CastOrAuditCallback);
|
||||
((CastOrAuditCallback)callback).onSuccess(fChoice);
|
||||
}
|
||||
catch (IllegalArgumentException|IOException e) {
|
||||
String errorMessage = "doCastOrAudit: some error with reading input from console. details: " + e;
|
||||
logger.error(errorMessage);
|
||||
command.getCallback().onFailure(e);
|
||||
}
|
||||
VistaNavigator.setCurrentCommand(command);
|
||||
VistaNavigator.loadVista(VistaNavigator.CAST_OR_AUDIT);
|
||||
}
|
||||
|
||||
|
||||
|
@ -332,8 +307,7 @@ public class GraphicalUI implements VotingBoothUI, Runnable {
|
|||
} else {
|
||||
messageString = UIUtils.bytesToString(message.getData());
|
||||
}
|
||||
System.out.println(messageString);
|
||||
System.out.print ("Waiting : .");
|
||||
VistaNavigator.loadLoadingVista(messageString);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -5,10 +5,13 @@ package meerkat.voting.gui.ui;
|
|||
*/
|
||||
|
||||
import javafx.application.Application;
|
||||
import javafx.geometry.Rectangle2D;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.layout.Pane;
|
||||
import javafx.stage.Screen;
|
||||
import javafx.stage.Stage;
|
||||
import meerkat.voting.gui.ui.controllersFX.MainController;
|
||||
import meerkat.voting.gui.ui.controllersFX.PrinterController;
|
||||
import meerkat.voting.gui.ui.controllersFX.VistaNavigator;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -19,6 +22,7 @@ import java.io.IOException;
|
|||
public class MainFX extends Application {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(GraphicalUI.class);
|
||||
private Stage printing;
|
||||
|
||||
// @Override
|
||||
// public void init() throws Exception {
|
||||
|
@ -57,6 +61,9 @@ public class MainFX extends Application {
|
|||
)
|
||||
);
|
||||
stage.show();
|
||||
createPrinter(stage.getX(), stage.getY());
|
||||
stage.requestFocus();
|
||||
|
||||
notifyLaunched();
|
||||
}
|
||||
|
||||
|
@ -97,4 +104,22 @@ public class MainFX extends Application {
|
|||
return scene;
|
||||
}
|
||||
|
||||
private void createPrinter(double mainX, double mainY) throws IOException {
|
||||
printing = new Stage();
|
||||
FXMLLoader loader = new FXMLLoader(getClass().getResource(VistaNavigator.PRINTER));
|
||||
Pane mainPane = null;
|
||||
mainPane = (Pane) loader.load();
|
||||
PrinterController printerController = loader.getController();
|
||||
VistaNavigator.setPrinterController(printerController);
|
||||
|
||||
printing.setX(mainX - printing.getWidth());
|
||||
printing.setY(mainY - printing.getHeight());
|
||||
|
||||
Scene scene = new Scene(mainPane);
|
||||
printing.setScene(scene);
|
||||
printing.show();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -33,11 +33,13 @@ public class CastOrAuditController {
|
|||
@FXML
|
||||
private void cast() {
|
||||
fChoice = VotingBoothUI.FinalizeBallotChoice.CAST;
|
||||
nextPane();
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void audit() {
|
||||
fChoice = VotingBoothUI.FinalizeBallotChoice.AUDIT;
|
||||
nextPane();
|
||||
}
|
||||
|
||||
private void nextPane() {
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
package meerkat.voting.gui.ui.controllersFX;
|
||||
|
||||
/**
|
||||
* Created by Laura on 01/12/2017.
|
||||
*/
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.Node;
|
||||
import javafx.scene.layout.StackPane;
|
||||
import javafx.scene.text.Text;
|
||||
|
||||
/**
|
||||
* Main controller class for the entire layout.
|
||||
*/
|
||||
public class LoadingController {
|
||||
|
||||
/** Holder of a switchable vista. */
|
||||
@FXML
|
||||
private Text loading_text;
|
||||
|
||||
public void setContent(String s) {
|
||||
loading_text.setText(s);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
package meerkat.voting.gui.ui.controllersFX;
|
||||
|
||||
/**
|
||||
* Created by Laura on 01/12/2017.
|
||||
*/
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.Node;
|
||||
import javafx.scene.layout.StackPane;
|
||||
import javafx.scene.text.Text;
|
||||
import meerkat.voting.gui.ui.CommandPend;
|
||||
import meerkat.voting.gui.ui.uicommands.UICommand;
|
||||
|
||||
/**
|
||||
* Main controller class for the entire layout.
|
||||
*/
|
||||
public class PrinterController {
|
||||
|
||||
/** Holder of a switchable vista. */
|
||||
@FXML
|
||||
private StackPane printerHolder;
|
||||
@FXML
|
||||
private Text content;
|
||||
|
||||
/**
|
||||
* Replaces the vista displayed in the vista holder with a new vista.
|
||||
*
|
||||
* @param node the vista node to be swapped in.
|
||||
*/
|
||||
public void setVista(Node node) {
|
||||
printerHolder.getChildren().setAll(node);
|
||||
}
|
||||
|
||||
public void setContent(String s) {
|
||||
content.setText(s);
|
||||
}
|
||||
|
||||
public void addContent(String s) {
|
||||
String old_content = content.getText();
|
||||
content.setText(old_content+"\n"+s);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
package meerkat.voting.gui.ui.controllersFX;
|
||||
|
||||
/**
|
||||
* Created by Laura on 12/16/2016.
|
||||
*/
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.fxml.FXML;
|
||||
|
||||
/**
|
||||
* Controller class for the first vista.
|
||||
*/
|
||||
public class Vista1Controller {
|
||||
|
||||
/**
|
||||
* Event handler fired when the user requests a new vista.
|
||||
*
|
||||
*/
|
||||
@FXML
|
||||
void nextPane() {
|
||||
VistaNavigator.loadVista(VistaNavigator.VISTA_2);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
package meerkat.voting.gui.ui.controllersFX;
|
||||
|
||||
/**
|
||||
* Created by Laura on 12/16/2016.
|
||||
*/
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.fxml.FXML;
|
||||
|
||||
/**
|
||||
* Controller class for the second vista.
|
||||
*/
|
||||
public class Vista2Controller {
|
||||
|
||||
/**
|
||||
* Event handler fired when the user requests a previous vista.
|
||||
*
|
||||
* @param event the event that triggered the handler.
|
||||
*/
|
||||
@FXML
|
||||
void previousPane(ActionEvent event) {
|
||||
VistaNavigator.loadVista(VistaNavigator.EMPTY_START);
|
||||
}
|
||||
|
||||
}
|
|
@ -10,8 +10,6 @@ import meerkat.voting.gui.ui.GraphicalUI;
|
|||
import meerkat.voting.gui.ui.uicommands.UICommand;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.concurrent.ArrayBlockingQueue;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
|
||||
/**
|
||||
* Utility class for controlling navigation between vistas.
|
||||
|
@ -25,15 +23,17 @@ public class VistaNavigator {
|
|||
* Convenience constants for fxml layouts managed by the navigator.
|
||||
*/
|
||||
public static final String MAIN = "/views/main.fxml";
|
||||
public static final String PRINTER = "/views/printer.fxml";
|
||||
public static final String LOADING = "/views/loading.fxml";
|
||||
public static final String EMPTY_START = "/views/empty_start.fxml";
|
||||
public static final String WELCOME_SCREEN = "/views/welcome_screen.fxml";
|
||||
public static final String VISTA_2 = "/views/vista2.fxml";
|
||||
public static final String CHANNEL_CHOICE = "/views/channel_choice.fxml";
|
||||
public static final String VOTING = "/views/voting.fxml";
|
||||
public static final String CAST_OR_AUDIT = "/views/castOrAudit.fxml";
|
||||
|
||||
/** The main application layout controller. */
|
||||
private static MainController mainController;
|
||||
private static PrinterController printerController;
|
||||
public static GraphicalUI uiThread;
|
||||
|
||||
|
||||
|
@ -50,6 +50,19 @@ public class VistaNavigator {
|
|||
return VistaNavigator.mainController;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stores the printer controller for later use in printing tasks.
|
||||
*
|
||||
* @param printerController the printer application layout controller.
|
||||
*/
|
||||
public static void setPrinterController(PrinterController printerController) {
|
||||
VistaNavigator.printerController = printerController;
|
||||
}
|
||||
|
||||
public static PrinterController getPrinterController() {
|
||||
return VistaNavigator.printerController;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stores the thread that controls the UI.
|
||||
*
|
||||
|
@ -111,4 +124,53 @@ public class VistaNavigator {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Prints the content into the printer application layout.
|
||||
*
|
||||
* @param content a String with the content that should be printed.
|
||||
* @param mode if value 'a' means append, any other character will erase current content of printer
|
||||
*/
|
||||
public static void printFX(String content, char mode) {
|
||||
Platform.runLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (mode=='a') {
|
||||
printerController.addContent(content);
|
||||
} else {
|
||||
printerController.setContent(content);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the 'LOADING' vista
|
||||
* vistaHolder pane of the main application layout.
|
||||
*
|
||||
* The parameter allows to set some special text to show in the new vista.
|
||||
*
|
||||
* @param text the extra text to show instead of 'loading...'
|
||||
*/
|
||||
public static void loadLoadingVista(String text) {
|
||||
try {
|
||||
FXMLLoader loader = new FXMLLoader(VistaNavigator.class.getResource(VistaNavigator.LOADING));
|
||||
Node node = (Node) loader.load();
|
||||
LoadingController loadingController = loader.getController();
|
||||
loadingController.setContent(text);
|
||||
Platform.runLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
mainController.setVista(node);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,131 @@
|
|||
package meerkat.voting.output;
|
||||
|
||||
import com.google.protobuf.ByteString;
|
||||
import meerkat.protobuf.Crypto.EncryptionRandomness;
|
||||
import meerkat.protobuf.Crypto.RandomnessGenerationProof;
|
||||
import meerkat.protobuf.Voting.BallotSecrets;
|
||||
import meerkat.protobuf.Voting.PlaintextBallot;
|
||||
import meerkat.protobuf.Voting.SignedEncryptedBallot;
|
||||
import meerkat.voting.gui.ui.controllersFX.VistaNavigator;
|
||||
import meerkat.voting.output.outputcommands.AuditOutputCommand;
|
||||
import meerkat.voting.output.outputcommands.CancelOutputCommand;
|
||||
import meerkat.voting.output.outputcommands.CastOutputCommand;
|
||||
import meerkat.voting.output.outputcommands.CommitOutputCommand;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* A toy OutputDevice class
|
||||
* outputs everything simply to the System console
|
||||
*/
|
||||
public class FXWindowOutputDevice extends AsyncRunnableOutputDevice {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(FXWindowOutputDevice.class);
|
||||
|
||||
public FXWindowOutputDevice() {
|
||||
super();
|
||||
logger.info("A FXWindowOutputDevice is constructed");
|
||||
}
|
||||
|
||||
/**
|
||||
* Committing to the ballot.
|
||||
* Simply prints to the output stream all the details in the CommitOutputCommand.
|
||||
* @param command details to commit to, and the callback to call when finished
|
||||
*/
|
||||
public void doCommitToBallot(CommitOutputCommand command) {
|
||||
logger.debug("entered method doCommitToBallot");
|
||||
PlaintextBallot plaintextBallot = command.getPlaintext();
|
||||
long plaintextSerialNumber = plaintextBallot.getSerialNumber();
|
||||
String toPrint = "";
|
||||
|
||||
toPrint+="Commitment of Ballot #" + plaintextSerialNumber;
|
||||
toPrint+="\n";
|
||||
toPrint+="(channel): ";
|
||||
toPrint+="\n";
|
||||
toPrint+=bytesToString(command.getChannelIdentifierByteString());
|
||||
toPrint+="\n";
|
||||
toPrint+="(plaintext): ";
|
||||
toPrint+="\n";
|
||||
toPrint+=plaintextBallot;
|
||||
SignedEncryptedBallot signedEncryptedBallot = command.getSignedEncryptedBallot();
|
||||
long encryptedSerialNumber = signedEncryptedBallot.getEncryptedBallot().getSerialNumber();
|
||||
toPrint+="Commitment of Ballot #" + encryptedSerialNumber + " (ciphertext):";
|
||||
toPrint+="\n";
|
||||
if (plaintextSerialNumber != encryptedSerialNumber) {
|
||||
logger.error("plaintext and encryption serial numbers do not match!! plaintext# = " +
|
||||
plaintextSerialNumber + ", ciphertext# = " + encryptedSerialNumber);
|
||||
}
|
||||
ByteString encryptedData = signedEncryptedBallot.getEncryptedBallot().getData().getData();
|
||||
toPrint+=bytesToString(encryptedData);
|
||||
toPrint+="\n";
|
||||
VistaNavigator.printFX(toPrint, 'w');
|
||||
command.getCallback().onSuccess(null);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* auditing the ballot.
|
||||
* prints to the output stream the ballot secrets (the encryption randomness and its proof of random generation)
|
||||
* @param command An auditing command with the callback to finally call
|
||||
*/
|
||||
public void doAudit(AuditOutputCommand command) {
|
||||
logger.debug("entered method doAudit");
|
||||
try {
|
||||
Thread.sleep(500);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
String msg = "Auditing";
|
||||
VistaNavigator.printFX(msg, 'a');
|
||||
BallotSecrets ballotSecrets = command.getBallotSecrets();
|
||||
printEncryptionRandomness(ballotSecrets.getEncryptionRandomness());
|
||||
printRandomnessGenerationProof (ballotSecrets.getProof());
|
||||
command.getCallback().onSuccess(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Casting the ballot (actually does nothing new)
|
||||
* @param command a CastOutputCommand with the details and the callback
|
||||
*/
|
||||
public void doCastBallot(CastOutputCommand command) {
|
||||
logger.debug("entered method doCastBallot");
|
||||
String msg = "Ballot finalized for casting!";
|
||||
VistaNavigator.printFX(msg, 'a');
|
||||
command.getCallback().onSuccess(null);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Canceling the ballot (actually does nothing new)
|
||||
* @param command a CancelOutputCommand with the details and the callback
|
||||
*/
|
||||
public void doCancel(CancelOutputCommand command) {
|
||||
logger.debug("entered method doCancel");
|
||||
System.out.println("Ballot cancelled!");
|
||||
command.getCallback().onSuccess(null);
|
||||
}
|
||||
|
||||
|
||||
private void printEncryptionRandomness (EncryptionRandomness encryptionRandomness) {
|
||||
String msg = "Encryption Randomness = ";
|
||||
ByteString data = encryptionRandomness.getData();
|
||||
msg+=bytesToString(data);
|
||||
VistaNavigator.printFX(msg, 'a');
|
||||
}
|
||||
|
||||
private void printRandomnessGenerationProof (RandomnessGenerationProof proof) {
|
||||
String msg = "Proof of randomness generation:";
|
||||
ByteString data = proof.getData();
|
||||
msg+=bytesToString(data);
|
||||
VistaNavigator.printFX(msg, 'a');
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Returns the UTF8 decoding of byte-string data
|
||||
*/
|
||||
private static String bytesToString(ByteString data) {
|
||||
return data.toStringUtf8();
|
||||
}
|
||||
|
||||
}
|
|
@ -7,8 +7,7 @@
|
|||
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="meerkat.voting.gui.ui.controllersFX.CastOrAuditController">
|
||||
<children>
|
||||
<Text fx:id="question" layoutX="84.0" layoutY="89.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Cast or Audit?" textAlignment="CENTER" wrappingWidth="431.3046875" />
|
||||
<Pane fx:id="questionPane" layoutX="84.0" layoutY="97.0" prefHeight="234.0" prefWidth="422.0" />
|
||||
<Button layoutX="84.0" layoutY="343.0" mnemonicParsing="false" onMousePressed="#cast" text="Cast" />
|
||||
<Button layoutX="469.0" layoutY="343.0" mnemonicParsing="false" onMousePressed="#audit" text="Audit" />
|
||||
<Button layoutX="150.0" layoutY="200.0" mnemonicParsing="false" onMousePressed="#cast" prefHeight="50.0" prefWidth="90.0" text="Cast" />
|
||||
<Button layoutX="360.0" layoutY="200.0" mnemonicParsing="false" onMousePressed="#audit" prefHeight="50.0" prefWidth="90.0" text="Audit" />
|
||||
</children>
|
||||
</Pane>
|
||||
|
|
|
@ -3,9 +3,8 @@
|
|||
<?import javafx.scene.layout.StackPane?>
|
||||
<?import javafx.scene.text.Text?>
|
||||
|
||||
|
||||
<StackPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1">
|
||||
<StackPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="meerkat.voting.gui.ui.controllersFX.LoadingController">
|
||||
<children>
|
||||
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Loading..." />
|
||||
<Text fx:id="loading_text" strokeType="OUTSIDE" strokeWidth="0.0" text="Loading..." />
|
||||
</children>
|
||||
</StackPane>
|
||||
|
|
|
@ -1,13 +1,24 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.geometry.Insets?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.layout.StackPane?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
<?scenebuilder-stylesheet vista.css?>
|
||||
|
||||
<VBox prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="meerkat.voting.gui.ui.controllersFX.MainController">
|
||||
<VBox prefHeight="709.0" prefWidth="1259.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="meerkat.voting.gui.ui.controllersFX.MainController">
|
||||
<children>
|
||||
<Label fx:id="headerLabel" maxWidth="1.7976931348623157E308" text="Header" VBox.vgrow="NEVER" />
|
||||
<StackPane fx:id="vistaHolder" prefHeight="404.0" prefWidth="524.0" VBox.vgrow="ALWAYS" />
|
||||
<Label fx:id="headerLabel" maxWidth="1.7976931348623157E308" prefHeight="70.0" prefWidth="1162.0" text="Header of Election" textFill="#939090" VBox.vgrow="NEVER">
|
||||
<font>
|
||||
<Font size="25.0" />
|
||||
</font>
|
||||
<VBox.margin>
|
||||
<Insets left="100.0" />
|
||||
</VBox.margin></Label>
|
||||
<StackPane fx:id="vistaHolder" prefHeight="553.0" prefWidth="1259.0" style="-fx-background-color: #eeeeee;" VBox.vgrow="ALWAYS">
|
||||
<VBox.margin>
|
||||
<Insets bottom="70.0" />
|
||||
</VBox.margin></StackPane>
|
||||
</children>
|
||||
</VBox>
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.scene.control.ScrollPane?>
|
||||
<?import javafx.scene.layout.AnchorPane?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
<?import javafx.scene.text.Text?>
|
||||
<?scenebuilder-stylesheet vista.css?>
|
||||
|
||||
<VBox prefHeight="472.0" prefWidth="354.0" style="-fx-background-color: black;" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="meerkat.voting.gui.ui.controllersFX.PrinterController">
|
||||
<children>
|
||||
<ScrollPane prefHeight="595.0" prefWidth="354.0">
|
||||
<content>
|
||||
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="830.0" prefWidth="337.0">
|
||||
<children>
|
||||
<Text fx:id="content" layoutX="23.0" layoutY="32.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Printer will print here..." wrappingWidth="256.13671875" />
|
||||
</children>
|
||||
</AnchorPane>
|
||||
</content>
|
||||
</ScrollPane>
|
||||
</children>
|
||||
</VBox>
|
|
@ -1,11 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
<?scenebuilder-stylesheet vista.css?>
|
||||
|
||||
<StackPane fx:id="vista1" xmlns:fx="http://javafx.com/fxml" fx:controller="meerkat.voting.gui.ui.controllersFX.Vista1Controller">
|
||||
<children>
|
||||
<Button mnemonicParsing="false" onAction="#nextPane" text="Next Pane" />
|
||||
</children>
|
||||
</StackPane>
|
|
@ -1,11 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?scenebuilder-stylesheet vista.css?>
|
||||
|
||||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.layout.StackPane?>
|
||||
<StackPane fx:id="vista2" xmlns:fx="http://javafx.com/fxml" fx:controller="meerkat.voting.gui.ui.controllersFX.Vista2Controller">
|
||||
<children>
|
||||
<Button mnemonicParsing="false" onAction="#previousPane" text="Previous Pane" />
|
||||
</children>
|
||||
</StackPane>
|
Loading…
Reference in New Issue