Package de.scoopgmbh.copper.monitoring.client.ui.message.result

Source Code of de.scoopgmbh.copper.monitoring.client.ui.message.result.MessageResultController

/*
* 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.ui.message.result;

import java.net.URL;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.ResourceBundle;

import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.geometry.Insets;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableColumn.CellDataFeatures;
import javafx.scene.control.TableView;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.util.Callback;
import javafx.util.converter.DateStringConverter;
import de.scoopgmbh.copper.monitoring.client.adapter.GuiCopperDataProvider;
import de.scoopgmbh.copper.monitoring.client.form.filter.FilterResultControllerBase;
import de.scoopgmbh.copper.monitoring.client.ui.message.filter.MessageFilterModel;
import de.scoopgmbh.copper.monitoring.client.util.TableColumnHelper;

public class MessageResultController extends FilterResultControllerBase<MessageFilterModel,MessageResultModel> implements Initializable {
  private final GuiCopperDataProvider copperDataProvider;
 
  public MessageResultController(GuiCopperDataProvider copperDataProvider) {
    super();
    this.copperDataProvider = copperDataProvider;
  }
 
    @FXML //  fx:id="borderPane"
    private BorderPane borderPane;

    @FXML //  fx:id="idColumn"
    private TableColumn<MessageResultModel, String> idColumn; // Value injected by FXMLLoader

    @FXML //  fx:id="resultTable"
    private TableView<MessageResultModel> resultTable; // Value injected by FXMLLoader

    @FXML //  fx:id="stateColumn"
    private TableColumn<MessageResultModel, String> messageColumn; // Value injected by FXMLLoader

    @FXML //  fx:id="timeColumn"
    private TableColumn<MessageResultModel, Date> timeColumn; // Value injected by FXMLLoader
   
    @FXML
    private TableColumn<MessageResultModel, Date> timeout; // Value injected by FXMLLoader

    @Override // This method is called by the FXMLLoader when initialization is complete
    public void initialize(URL fxmlFileLocation, ResourceBundle resources) {
        assert idColumn != null : "fx:id=\"idColumn\" was not injected: check your FXML file 'MessageResult.fxml'.";
        assert messageColumn != null : "fx:id=\"messageColumn\" was not injected: check your FXML file 'MessageResult.fxml'.";
        assert resultTable != null : "fx:id=\"resultTable\" was not injected: check your FXML file 'MessageResult.fxml'.";
        assert timeColumn != null : "fx:id=\"timeColumn\" was not injected: check your FXML file 'MessageResult.fxml'.";
        assert timeout != null;
        assert borderPane != null;
       
        final HBox createTabelControlls = createTabelControlls(resultTable);
        BorderPane.setMargin(createTabelControlls, new Insets(3));
    borderPane.setBottom(createTabelControlls);

        timeColumn.setCellValueFactory(new Callback<CellDataFeatures<MessageResultModel, Date>, ObservableValue<Date>>() {
        @Override
           public ObservableValue<Date> call(
               CellDataFeatures<MessageResultModel, Date> p) {
             return p.getValue().time;
           }
         });
        TableColumnHelper.setConverterCellFactory(timeColumn, new DateStringConverter("dd.MM.yyyy HH:mm:ss:SSS"));
        timeout.setCellValueFactory(new Callback<CellDataFeatures<MessageResultModel, Date>, ObservableValue<Date>>() {
        @Override
           public ObservableValue<Date> call(
               CellDataFeatures<MessageResultModel, Date> p) {
             return p.getValue().timeout;
           }
         });
        TableColumnHelper.setConverterCellFactory(timeout, new DateStringConverter("dd.MM.yyyy HH:mm:ss:SSS"));
        idColumn.setCellValueFactory(new Callback<CellDataFeatures<MessageResultModel, String>, ObservableValue<String>>() {
      @Override
      public ObservableValue<String> call(
          CellDataFeatures<MessageResultModel, String> p) {
        return p.getValue().correlationId;
      }
    });
       
        messageColumn.setCellValueFactory(new Callback<CellDataFeatures<MessageResultModel, String>, ObservableValue<String>>() {
      @Override
      public ObservableValue<String> call(
          CellDataFeatures<MessageResultModel, String> p) {
        return p.getValue().message;
      }
    });
       

//        resultTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
       
        timeColumn.prefWidthProperty().bind(resultTable.widthProperty().subtract(3).multiply(0.15));
        timeout.prefWidthProperty().bind(resultTable.widthProperty().subtract(3).multiply(0.15));
        messageColumn.prefWidthProperty().bind(resultTable.widthProperty().subtract(3).multiply(0.45));
        idColumn.prefWidthProperty().bind(resultTable.widthProperty().subtract(3).multiply(0.25));

    }
   
  @Override
  public URL getFxmlResource() {
    return getClass().getResource("MessageResult.fxml");
  }

  @Override
  public void showFilteredResult(List<MessageResultModel> filteredResult, MessageFilterModel usedFilter) {
    ObservableList<MessageResultModel> content = FXCollections.observableList(new ArrayList<MessageResultModel>());
    content.addAll(filteredResult);
    resultTable.setItems(content);
  }

  @Override
  public List<MessageResultModel> applyFilterInBackgroundThread(MessageFilterModel filter) {
    return copperDataProvider.getMessageList(filter,filter.maxCountFilterModel.getMaxCount())
  }
 
  @Override
  public boolean supportsClear() {
    return true;
  }

  @Override
  public void clear() {
    resultTable.getItems().clear();
  }

}
TOP

Related Classes of de.scoopgmbh.copper.monitoring.client.ui.message.result.MessageResultController

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.