The exchange of regular search to advanced is done

Created the advanced search now when the ! is pressed the advanced search
takes place of the regular search.
voting-station-gui
Vladimir Eliezer Tokarev 2016-07-09 13:54:24 +03:00
parent b644f8b500
commit 35c90882c0
6 changed files with 102 additions and 19 deletions

View File

@ -2,6 +2,8 @@ package polling_station_dashboard;
import javafx.stage.Stage;
import polling_station_dashboard.search.SearchHandler;
import polling_station_dashboard.search.advancedSearch.AdvancedSearchHandler;
import polling_station_dashboard.search.advancedSearch.AdvancedSearchLoader;
import polling_station_dashboard.search.submitVoter.lodgeAppeal.LodgeAppealLoader;
import polling_station_dashboard.search.submitVoter.lodgeAppeal.LodgeAppealVisualUpdater;
import polling_station_dashboard.search.votersFetcher.DummyVotersFetcher;
@ -39,6 +41,12 @@ public class EventHandlerMapper {
map.Add("StatusLogButton", statusLogVisualUpdater);
map.Add("StatusLog", statusLogVisualUpdater);
// map advanced search object to its handler
AdvancedSearchLoader advancedSearchLoader = new AdvancedSearchLoader(primaryStage);
AdvancedSearchHandler advancedSearchHandler = new AdvancedSearchHandler(
advancedSearchLoader.GetSettingsInstance(), primaryStage);
map.Add("ExpandAdvanceSearch", advancedSearchHandler);
// map add voter to search button triggered
SearchHandler searchHandler = new SearchHandler(primaryStage, new DummyVotersFetcher());
map.Add("SearchButton", searchHandler);

View File

@ -1,9 +1,26 @@
package polling_station_dashboard.search.advancedSearch;
import javafx.fxml.FXML;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
/**
* Created by dasha on 7/9/2016.
* AdvancedSearchController controls the behavior of the adnvaced search panel
* for example searching by tag type
*/
public class AdvancedSearchController {
private Stage currentStage;
private GridPane regularSearch;
public void SetStage(Stage stage){
this.currentStage = stage;
}
public void SetRegulartSearch(GridPane regularSearch) { this.regularSearch = regularSearch; }
@FXML
private void AdvancedSearch(){}
}

View File

@ -2,6 +2,10 @@ package polling_station_dashboard.search.advancedSearch;
import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
/**
* Created by dasha on 7/9/2016.
@ -9,8 +13,33 @@ import javafx.event.EventHandler;
*/
public class AdvancedSearchHandler implements EventHandler {
private GridPane advancedSearch;
private Stage currentStage;
public AdvancedSearchHandler(GridPane advancedSearch, Stage primalStage)
{
this.advancedSearch = advancedSearch;
this.currentStage = primalStage;
}
private void UpdateAdvancedSearch() {
RemoveRegularSearch();
AddAdvancedSearch();
}
private void AddAdvancedSearch() {
Pane searchContainer = (Pane) currentStage.getScene().lookup("#SearchContainer");
searchContainer.getChildren().add(advancedSearch);
}
private void RemoveRegularSearch() {
// the only element that is in this container is the regular search
Pane searchContainer = (Pane) currentStage.getScene().lookup("#SearchContainer");
searchContainer.getChildren().remove(0);
}
@Override
public void handle(Event event) {
UpdateAdvancedSearch();
}
}

View File

@ -1,8 +1,33 @@
package polling_station_dashboard.search.advancedSearch;
import javafx.fxml.FXMLLoader;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
import polling_station_dashboard.settings.settingsController;
import java.io.IOException;
/**
* Created by dasha on 7/9/2016.
* AdvancedSearchLoader loads the advanced search panel
*/
public class AdvancedSearchLoader {
private static final String ADVANCED_SEARCH_FXML_PATH = "/view/dashboard/advanced_search.fxml";
private Stage currentStage;
private FXMLLoader fxmlLoader;
public AdvancedSearchLoader(Stage primaryStage) throws IOException
{
currentStage = primaryStage;
fxmlLoader = new FXMLLoader(getClass().getResource(ADVANCED_SEARCH_FXML_PATH));
}
public GridPane GetSettingsInstance() throws IOException {
GridPane settings = fxmlLoader.load();
AdvancedSearchController controller = fxmlLoader.getController();
controller.SetStage(currentStage);
return settings;
}
}

View File

@ -7,7 +7,7 @@
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="99.0" prefWidth="714.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8">
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="99.0" prefWidth="714.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="polling_station_dashboard.search.advancedSearch.AdvancedSearchController">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="176.0" minWidth="10.0" prefWidth="107.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="498.0" minWidth="10.0" prefWidth="414.0" />
@ -29,7 +29,7 @@
</BorderPane>
<BorderPane prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1">
<center>
<TextField prefHeight="47.0" prefWidth="417.0" BorderPane.alignment="CENTER" />
<TextField prefHeight="47.0" prefWidth="417.0" text="name or ID number" BorderPane.alignment="CENTER" />
</center>
</BorderPane>
<BorderPane prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="2">

View File

@ -29,21 +29,25 @@
<Separator prefWidth="200.0" BorderPane.alignment="CENTER" />
</bottom>
<center>
<BorderPane fx:id="SearchContainer" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<center>
<TextField fx:id="SearchValue" prefHeight="56.0" prefWidth="479.0" text="IDNumber: 123123123, FilterName2: value2 ..." BorderPane.alignment="CENTER" />
</center>
<left>
<ImageView fitHeight="65.0" fitWidth="66.0" BorderPane.alignment="CENTER">
<image>
<Image url="@/images/barcode.png" />
</image>
</ImageView>
</left>
<right>
<Button fx:id="SearchButton" mnemonicParsing="false" onMousePressed="#SearchTrigered" prefHeight="50.0" prefWidth="112.0" text="Search" BorderPane.alignment="CENTER" />
</right>
</BorderPane>
<Pane fx:id="SearchContainer" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<children>
<BorderPane prefHeight="102.0" prefWidth="714.0">
<center>
<TextField fx:id="SearchValue" prefHeight="56.0" prefWidth="479.0" text="IDNumber: 123123123, FilterName2: value2 ..." BorderPane.alignment="CENTER" />
</center>
<left>
<ImageView fitHeight="65.0" fitWidth="66.0" BorderPane.alignment="CENTER">
<image>
<Image url="@/images/barcode.png" />
</image>
</ImageView>
</left>
<right>
<Button fx:id="SearchButton" mnemonicParsing="false" onMousePressed="#SearchTrigered" prefHeight="50.0" prefWidth="112.0" text="Search" BorderPane.alignment="CENTER" />
</right>
</BorderPane>
</children>
</Pane>
</center>
</BorderPane>
</children>
@ -83,7 +87,7 @@
</children>
</Pane>
<Pane fx:id="AddEditPane" layoutX="17.0" layoutY="120.0" prefHeight="428.0" prefWidth="749.0" />
<Label layoutX="746.0" layoutY="24.0" onMousePressed="#ExpandAdvanceSearch" text="!">
<Label fx:id="ExpandAdvanceSearch" layoutX="746.0" layoutY="24.0" onMousePressed="#ExpandAdvanceSearch" text="!">
<font>
<Font size="55.0" />
</font>