Package de.scoopgmbh.copper.monitoring.client.form.filter.defaultfilter

Source Code of de.scoopgmbh.copper.monitoring.client.form.filter.defaultfilter.DefaultFilterFactory

/*
* Copyright 2002-2013 SCOOP Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package de.scoopgmbh.copper.monitoring.client.form.filter.defaultfilter;

import java.util.List;

import javafx.beans.binding.Bindings;
import javafx.geometry.Orientation;
import javafx.geometry.Pos;
import javafx.scene.Node;
import javafx.scene.control.Label;
import javafx.scene.control.Separator;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
import javafx.util.converter.IntegerStringConverter;
import de.scoopgmbh.copper.monitoring.client.form.filter.enginefilter.EnginePoolFilterModel;
import de.scoopgmbh.copper.monitoring.client.form.filter.enginefilter.EngineSelectionWidget;
import de.scoopgmbh.copper.monitoring.client.util.DateTimePicker;
import de.scoopgmbh.copper.monitoring.client.util.NumberOnlyTextField;
import de.scoopgmbh.copper.monitoring.core.model.ProcessingEngineInfo;

public class DefaultFilterFactory {
 
  public static final String DATE_FORMAT = "dd.MM.yyyy HH:mm:ss";


  public Node createFromTo(FromToFilterModel fromToFilterModel){
    HBox hbox = createBackpane();
    createFromToUI(hbox,fromToFilterModel);
    return hbox;
  }
 
  public Node createMaxCount(MaxCountFilterModel maxCountFilterModel){
    HBox hbox = createBackpane();
    createMaxCount(hbox,maxCountFilterModel);
    return hbox;
  }

  public Node createFromToMaxCount(FromToMaxCountFilterModel fromToMaxCountFilterModel){
    HBox hbox = createBackpane();
    createFromToUI(hbox,fromToMaxCountFilterModel.fromToFilterModel);
    createMaxCount(hbox,fromToMaxCountFilterModel.maxCountFilterModel);
    return hbox;
  }
 
  public Node createVerticalMultiFilter(Node... filterrows){
    VBox vbox = new VBox(3);
    for (int i = 0; i < filterrows.length; i++) {
      Node filterrow = filterrows[i];
      vbox.getChildren().add(filterrow);
      if (i < filterrows.length-1){
        vbox.getChildren().add(new Separator(Orientation.HORIZONTAL));
      }
    }
    return vbox;
  }
 
  public Node createEngineFilterUI(EnginePoolFilterModel model, List<ProcessingEngineInfo> engineList){
    HBox hbox = new HBox(3);
    hbox.setAlignment(Pos.CENTER_LEFT);
    EngineSelectionWidget engineSelectionWidget = new EngineSelectionWidget(model, engineList);
    Node node = engineSelectionWidget.createContent();
    hbox.getChildren().add(node);
    return hbox;
  }
 
  private void createMaxCount(HBox parent,MaxCountFilterModel maxCountFilterModel){
    TextField maxCount = new NumberOnlyTextField();
    maxCount.setPrefWidth(100);
    Bindings.bindBidirectional(maxCount.textProperty(), maxCountFilterModel.maxCount, new IntegerStringConverter());
    parent.getChildren().add(new Label("limit"));
    parent.getChildren().add(maxCount);
  }
 
  private void createFromToUI(HBox parent,FromToFilterModel fromToFilterModel){
    final DateTimePicker fromDateTimePicker = new DateTimePicker();
    fromDateTimePicker.bindBidirectionalSelected(fromToFilterModel.from);
    Pane from = fromDateTimePicker.createContent();
    from.setPrefWidth(170);
    parent.getChildren().add(new Label("from"));
    parent.getChildren().add(from);
   
    final DateTimePicker toDateTimePicker = new DateTimePicker();
    toDateTimePicker.bindBidirectionalSelected(fromToFilterModel.to);
    Pane to = toDateTimePicker.createContent();
    to.setPrefWidth(170);
    parent.getChildren().add(new Label("to"));
    parent.getChildren().add(to);
  }
 
  private HBox createBackpane(){
    HBox hbox = new HBox(3);
    hbox.setAlignment(Pos.CENTER_LEFT);
    return hbox;
  }

}
TOP

Related Classes of de.scoopgmbh.copper.monitoring.client.form.filter.defaultfilter.DefaultFilterFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.