package com.digiarea.closure.model.controller; import java.net.URL; import java.text.MessageFormat; import java.util.ArrayList; import java.util.List; import java.util.ResourceBundle; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; import javafx.collections.ListChangeListener; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.control.Button; import javafx.scene.control.ContentDisplay; import javafx.scene.control.ContextMenu; import javafx.scene.control.Control; import javafx.scene.control.Label; import javafx.scene.control.ListView; import javafx.scene.control.Menu; import javafx.scene.control.MenuItem; import javafx.scene.control.ProgressBar; import javafx.scene.control.Tab; import javafx.scene.control.TabPane; import javafx.scene.control.TabPane.TabClosingPolicy; import javafx.scene.control.TableCell; import javafx.scene.control.TableColumn; import javafx.scene.control.TableRow; import javafx.scene.control.TableView; import javafx.scene.control.Tooltip; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; import javafx.scene.layout.ColumnConstraints; import javafx.scene.layout.GridPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; import javafx.scene.layout.RowConstraints; import javafx.scene.layout.VBox; import javafx.stage.WindowEvent; import javafx.util.Callback; import com.digiarea.closure.model.bind.ModelFacade; import com.digiarea.closure.model.providers.ConsoleCellFactory; import com.digiarea.closure.preferences.model.Editor; import com.digiarea.closure.preferences.model.Editors; import com.digiarea.closure.preferences.model.bind.PreferencesSerializer; import com.digiarea.closurefx.IConstants; import com.digiarea.closurefx.ResourceUtils; import com.digiarea.closurefx.build.console.ClosureStatus; import com.digiarea.closurefx.build.console.SOYConsoleManager; import com.digiarea.closurefx.build.validation.IStatus; import com.digiarea.closurefx.build.validation.Status; import com.digiarea.closurefx.editors.EditorLoader; /** * FXML Controller class * * @author daginno */ public class SOYConsoleSectionController extends ClosureController implements Initializable, IConsole { @FXML private Tab tabProblems; @FXML private Tab tabMessages; @FXML private ProgressBar progressBar; @FXML private TableView<ClosureStatus> controlProblems; @FXML private ListView<Status> controlConsole; @FXML private TableColumn<ClosureStatus, IStatus.StatusType> controlProblemsLevel; @FXML private TableColumn<ClosureStatus, String> controlProblemsDescription; @FXML private TableColumn<ClosureStatus, String> controlProblemsResource; @FXML private TableColumn<ClosureStatus, String> controlProblemsPath; @FXML private TableColumn<ClosureStatus, String> controlProblemsLocation; @FXML private TableColumn<ClosureStatus, String> controlProblemsType; @FXML private Label controlWarnings; @FXML private Label controlErrors; private ObservableList<ClosureStatus> errors; private ObservableList<Status> messages; public SOYConsoleSectionController(ModelFacade modelFacade, ResourceBundle bundle) { super(modelFacade, bundle); modelFacade.setSoyConsole(new SOYConsoleManager(this, modelFacade.getClosure(), bundle, modelFacade.getDocument().getPathResolver())); } /** * Initializes the controller class. */ @Override public void initialize(URL url, ResourceBundle rb) { controlErrors.setText(MessageFormat.format(bundle.getString(IConstants.ConsoleErrors), Integer.toString(0))); controlWarnings.setText(MessageFormat.format(bundle.getString(IConstants.ConsoleWarnings), Integer.toString(0))); tabProblems.setText(MessageFormat.format(bundle.getString(IConstants.ProgressDialog_Problems), Integer.toString(0))); errors = FXCollections.observableArrayList(); messages = FXCollections.observableArrayList(); controlProblems.setItems(errors); controlConsole.setItems(messages); errors.addListener(new ListChangeListener<ClosureStatus>() { @SuppressWarnings("incomplete-switch") @Override public void onChanged(ListChangeListener.Change<? extends ClosureStatus> c) { int errorsInt = 0; int warningsInt = 0; for (ClosureStatus error : errors) { IStatus.StatusType checkLevel = error.getSeverity(); switch(checkLevel) { case ERROR: errorsInt++; break; case OFF: break; case WARNING: warningsInt++; break; } } controlErrors.setText(MessageFormat.format(bundle.getString(IConstants.ConsoleErrors), Integer.toString(errorsInt))); controlWarnings.setText(MessageFormat.format(bundle.getString(IConstants.ConsoleWarnings), Integer.toString(warningsInt))); tabProblems.setText(MessageFormat.format(bundle.getString(IConstants.ProgressDialog_Problems), Integer.toString(warningsInt + errorsInt))); } }); controlConsole.setCellFactory(new ConsoleCellFactory()); controlProblemsLevel.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ClosureStatus, IStatus.StatusType>, ObservableValue<IStatus.StatusType>>() { @Override public ObservableValue<IStatus.StatusType> call(TableColumn.CellDataFeatures<ClosureStatus, IStatus.StatusType> p) { return new SimpleObjectProperty<IStatus.StatusType>((IStatus.StatusType) p.getValue().getSeverity()); } }); controlProblemsLevel.setCellFactory((new Callback<TableColumn<ClosureStatus, IStatus.StatusType>, TableCell<ClosureStatus, IStatus.StatusType>>() { @Override public TableCell<ClosureStatus, IStatus.StatusType> call(TableColumn<ClosureStatus, IStatus.StatusType> param) { TableCell<ClosureStatus, IStatus.StatusType> cell = new TableCell<ClosureStatus, IStatus.StatusType>() { @SuppressWarnings("incomplete-switch") @Override public void updateItem(IStatus.StatusType item, boolean empty) { if (item != null) { switch(item) { case ERROR: setGraphic(new ImageView(ResourceUtils.MARK_ERROR)); break; case OFF: setGraphic(new ImageView(ResourceUtils.MARK_OFF)); break; case WARNING: setGraphic(new ImageView(ResourceUtils.MARK_WARNING)); break; } } } }; return cell; } })); controlProblemsDescription.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ClosureStatus, String>, ObservableValue<String>>() { @Override public ObservableValue<String> call(TableColumn.CellDataFeatures<ClosureStatus, String> p) { if (p.getValue() != null) { return new SimpleStringProperty(p.getValue().getMessage()); } else { return new SimpleStringProperty("<no description>"); } } }); controlProblemsDescription.setCellFactory(new Callback<TableColumn<ClosureStatus, String>, TableCell<ClosureStatus, String>>() { @Override public TableCell<ClosureStatus, String> call(TableColumn<ClosureStatus, String> param) { return new SOYConsoleSectionController.TextCell(); } }); controlProblemsResource.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ClosureStatus, String>, ObservableValue<String>>() { @Override public ObservableValue<String> call(TableColumn.CellDataFeatures<ClosureStatus, String> p) { if (p.getValue() != null && p.getValue().getResource() != null) { String path = p.getValue().getResource(); String resource = path; if (path.contains("/")) { String[] splits = path.split("/"); resource = splits[splits.length - 1]; } else if (path.contains("\\")) { String[] splits = path.split("\\\\"); resource = splits[splits.length - 1]; } return new SimpleStringProperty(resource); } else { return new SimpleStringProperty("<no resource>"); } } }); controlProblemsResource.setCellFactory(new Callback<TableColumn<ClosureStatus, String>, TableCell<ClosureStatus, String>>() { @Override public TableCell<ClosureStatus, String> call(TableColumn<ClosureStatus, String> param) { return new SOYConsoleSectionController.TextCell(); } }); controlProblemsPath.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ClosureStatus, String>, ObservableValue<String>>() { @Override public ObservableValue<String> call(TableColumn.CellDataFeatures<ClosureStatus, String> p) { if (p.getValue() != null) { return new SimpleStringProperty(p.getValue().getResource()); } else { return new SimpleStringProperty("<no path>"); } } }); controlProblemsPath.setCellFactory(new Callback<TableColumn<ClosureStatus, String>, TableCell<ClosureStatus, String>>() { @Override public TableCell<ClosureStatus, String> call(TableColumn<ClosureStatus, String> param) { return new SOYConsoleSectionController.TextCell(); } }); controlProblemsLocation.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ClosureStatus, String>, ObservableValue<String>>() { @Override public ObservableValue<String> call(TableColumn.CellDataFeatures<ClosureStatus, String> p) { if (p.getValue() != null) { return new SimpleStringProperty("line " + Integer.toString(p.getValue().getLine())); } else { return new SimpleStringProperty("<no line>"); } } }); controlProblemsLocation.setCellFactory(new Callback<TableColumn<ClosureStatus, String>, TableCell<ClosureStatus, String>>() { @Override public TableCell<ClosureStatus, String> call(TableColumn<ClosureStatus, String> param) { return new SOYConsoleSectionController.TextCell(); } }); controlProblemsType.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ClosureStatus, String>, ObservableValue<String>>() { @Override public ObservableValue<String> call(TableColumn.CellDataFeatures<ClosureStatus, String> p) { if (p.getValue() != null) { return new SimpleStringProperty("Closure Templates Problem"); } else { return new SimpleStringProperty("<no type>"); } } }); controlProblemsType.setCellFactory(new Callback<TableColumn<ClosureStatus, String>, TableCell<ClosureStatus, String>>() { @Override public TableCell<ClosureStatus, String> call(TableColumn<ClosureStatus, String> param) { return new SOYConsoleSectionController.TextCell(); } }); } public ContextMenu getConsoleContextMenu(final TableRow<ClosureStatus> tableRow, final TableCell<ClosureStatus, ?> tableCell) { ContextMenu menu = new ContextMenu(); final PreferencesSerializer serializer = new PreferencesSerializer(); Editors editors = serializer.readEditors(); final Editor defaultEditor = serializer.readDefaultEditor(); final EditorLoader loader = new EditorLoader(); tableCell.addEventFilter(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent event) { if (event.getClickCount() > 1) { ClosureStatus closureStatus = (ClosureStatus) tableRow.getItem(); loader.load(defaultEditor, closureStatus.getResource(), Integer.toString(closureStatus.getLine()), Integer.toString(closureStatus.getColumn())); } } }); MenuItem openItem = new MenuItem("Open"); menu.getItems().add(openItem); openItem.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent arg0) { ClosureStatus closureStatus = (ClosureStatus) tableRow.getItem(); loader.load(defaultEditor, closureStatus.getResource(), Integer.toString(closureStatus.getLine()), Integer.toString(closureStatus.getColumn())); } }); Menu openWith = new Menu("Open with.."); for (final Editor editor : editors.getEditors()) { MenuItem editorItem = new MenuItem(editor.getName()); editorItem.setId(editor.getPath()); openWith.getItems().add(editorItem); editorItem.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent t) { ClosureStatus closureStatus = (ClosureStatus) tableRow.getItem(); loader.load(editor, closureStatus.getResource(), Integer.toString(closureStatus.getLine()), Integer.toString(closureStatus.getColumn())); } }); } menu.getItems().add(openWith); return menu; } private class TextCell extends TableCell<ClosureStatus, String> { private ContextMenu menu; public TextCell() { menu = new ContextMenu(); final PreferencesSerializer serializer = new PreferencesSerializer(); addEventFilter(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent event) { if (event.getClickCount() > 1) { Editor defaultEditor = serializer.readDefaultEditor(); EditorLoader loader = new EditorLoader(); if (defaultEditor != null && EditorLoader.isSupported(defaultEditor) && EditorLoader.isValid(defaultEditor)) { ClosureStatus closureStatus = (ClosureStatus) getTableRow().getItem(); loader.load(defaultEditor, closureStatus.getResource(), Integer.toString(closureStatus.getLine()), Integer.toString(closureStatus.getColumn())); } } } }); final MenuItem openItem = new MenuItem("Open"); menu.getItems().add(openItem); openItem.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent arg0) { Editor defaultEditor = serializer.readDefaultEditor(); EditorLoader loader = new EditorLoader(); if (defaultEditor != null && EditorLoader.isSupported(defaultEditor) && EditorLoader.isValid(defaultEditor)) { ClosureStatus closureStatus = (ClosureStatus) getTableRow().getItem(); loader.load(defaultEditor, closureStatus.getResource(), Integer.toString(closureStatus.getLine()), Integer.toString(closureStatus.getColumn())); } } }); final Menu openWith = new Menu("Open with.."); menu.setOnShowing(new EventHandler<WindowEvent>() { @Override public void handle(WindowEvent event) { openWith.getItems().clear(); Editors editors = serializer.readEditors(); Editor defaultEditor = serializer.readDefaultEditor(); openItem.setVisible(defaultEditor != null && EditorLoader.isSupported(defaultEditor) && EditorLoader.isValid(defaultEditor)); final EditorLoader loader = new EditorLoader(); for (final Editor editor : editors.getEditors()) { if (EditorLoader.isSupported(editor) && EditorLoader.isValid(editor)) { MenuItem editorItem = new MenuItem(editor.getName()); editorItem.setId(editor.getPath()); openWith.getItems().add(editorItem); editorItem.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent t) { ClosureStatus closureStatus = (ClosureStatus) getTableRow().getItem(); loader.load(editor, closureStatus.getResource(), Integer.toString(closureStatus.getLine()), Integer.toString(closureStatus.getColumn())); } }); } } } }); menu.getItems().add(openWith); setContextMenu(menu); } @Override protected void updateItem(String item, boolean empty) { super.updateItem(item, empty); if (!isEmpty()) { setText(item); setTooltip(new Tooltip(item)); } } } @FXML private void handleStartButton(ActionEvent event) { modelFacade.getSoyConsole().start(); } @FXML private void handleStopButton(ActionEvent event) { modelFacade.getSoyConsole().stop(); } public ProgressBar getProgressBar() { return progressBar; } @Override public void addErrors(List<ClosureStatus> error) { errors.addAll(new ArrayList<ClosureStatus>(error)); } public void addError(ClosureStatus error) { errors.add(error); } public void addMessage(Status error) { messages.add(error); } public ObservableList<Status> getConsole() { return messages; } public Label getErrorLabel() { return controlErrors; } public Label getWarningLabel() { return controlWarnings; } public ObservableList<ClosureStatus> getProblems() { return errors; } public TableView<ClosureStatus> getControlProblems() { return controlProblems; } public TableColumn<ClosureStatus, IStatus.StatusType> getControlProblemsLevel() { return controlProblemsLevel; } public TableColumn<ClosureStatus, String> getControlProblemsDescription() { return controlProblemsDescription; } public TableColumn<ClosureStatus, String> getControlProblemsResource() { return controlProblemsResource; } public TableColumn<ClosureStatus, String> getControlProblemsPath() { return controlProblemsPath; } public TableColumn<ClosureStatus, String> getControlProblemsLocation() { return controlProblemsLocation; } public TableColumn<ClosureStatus, String> getControlProblemsType() { return controlProblemsType; } public Label getControlWarnings() { return controlWarnings; } public Label getControlErrors() { return controlErrors; } public Tab getTabProblems() { return tabProblems; } public Tab getTabMessages() { return tabMessages; } public ListView<Status> getControlConsole() { return controlConsole; } public HBox create() throws Exception { HBox hBox12 = new HBox(); hBox12.setId("HBox"); hBox12.setAlignment(Pos.CENTER); hBox12.setMinHeight(Control.USE_PREF_SIZE); hBox12.setMinWidth(Control.USE_PREF_SIZE); hBox12.setSpacing(5.0); VBox vBox51 = new VBox(); vBox51.setMaxHeight(Control.USE_COMPUTED_SIZE); vBox51.setMaxWidth(Control.USE_COMPUTED_SIZE); vBox51.setMinHeight(Control.USE_COMPUTED_SIZE); vBox51.setPrefWidth(Control.USE_COMPUTED_SIZE); vBox51.setSpacing(0.0); HBox.setHgrow(vBox51, Priority.ALWAYS); VBox consoleBox2 = new VBox(); consoleBox2.setId("ConsoleBox"); consoleBox2.setAlignment(Pos.CENTER_LEFT); consoleBox2.setSpacing(5.0); VBox.setVgrow(consoleBox2, Priority.NEVER); GridPane gridPane59 = new GridPane(); gridPane59.setHgap(5.0); gridPane59.setPrefWidth(377.0001220703125); VBox.setVgrow(gridPane59, Priority.NEVER); Button button55 = new Button(); button55.setContentDisplay(ContentDisplay.GRAPHIC_ONLY); button55.setMnemonicParsing(false); button55.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { handleStartButton(event); } }); button55.setText(""); GridPane.setColumnIndex(button55, 1); GridPane.setRowIndex(button55, 0); ImageView imageView33 = new ImageView(); imageView33.setFitHeight(16.0); imageView33.setFitWidth(16.0); imageView33.setMouseTransparent(true); imageView33.setPickOnBounds(true); imageView33.setPreserveRatio(true); Image image33 = new Image(getClass().getResource("/com/digiarea/closurefx/resources/launch.png").openStream()); imageView33.setImage(image33); button55.setGraphic(imageView33); Tooltip tooltip18 = new Tooltip(); tooltip18.setText(bundle.getString("ProgressDialog_Run")); button55.setTooltip(tooltip18); gridPane59.getChildren().add(button55); Button button56 = new Button(); button56.setContentDisplay(ContentDisplay.GRAPHIC_ONLY); button56.setMnemonicParsing(false); button56.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { handleStopButton(event); } }); button56.setText(""); GridPane.setColumnIndex(button56, 2); GridPane.setRowIndex(button56, 0); ImageView imageView34 = new ImageView(); imageView34.setFitHeight(16.0); imageView34.setFitWidth(16.0); imageView34.setMouseTransparent(true); imageView34.setPickOnBounds(true); imageView34.setPreserveRatio(true); Image image34 = new Image(getClass().getResource("/com/digiarea/closurefx/resources/mark-error.png").openStream()); imageView34.setImage(image34); button56.setGraphic(imageView34); Tooltip tooltip19 = new Tooltip(); tooltip19.setText(bundle.getString("ProgressDialog_Cancel")); button56.setTooltip(tooltip19); gridPane59.getChildren().add(button56); ColumnConstraints columnConstraints132 = new ColumnConstraints(); columnConstraints132.setHgrow(Priority.ALWAYS); columnConstraints132.setMinWidth(Control.USE_PREF_SIZE); columnConstraints132.setPrefWidth(Control.USE_COMPUTED_SIZE); gridPane59.getColumnConstraints().add(columnConstraints132); ColumnConstraints columnConstraints133 = new ColumnConstraints(); columnConstraints133.setHgrow(Priority.NEVER); columnConstraints133.setMinWidth(Control.USE_PREF_SIZE); columnConstraints133.setPrefWidth(Control.USE_COMPUTED_SIZE); gridPane59.getColumnConstraints().add(columnConstraints133); ColumnConstraints columnConstraints134 = new ColumnConstraints(); columnConstraints134.setHgrow(Priority.NEVER); columnConstraints134.setMinWidth(Control.USE_PREF_SIZE); columnConstraints134.setPrefWidth(Control.USE_COMPUTED_SIZE); gridPane59.getColumnConstraints().add(columnConstraints134); RowConstraints rowConstraints116 = new RowConstraints(); rowConstraints116.setMinHeight(Control.USE_PREF_SIZE); rowConstraints116.setPrefHeight(Control.USE_COMPUTED_SIZE); rowConstraints116.setVgrow(Priority.NEVER); gridPane59.getRowConstraints().add(rowConstraints116); consoleBox2.getChildren().add(gridPane59); progressBar = new ProgressBar(); progressBar.setMaxWidth(1.7976931348623157E308); progressBar.setMinHeight(Control.USE_PREF_SIZE); progressBar.setPrefHeight(25.0); progressBar.setPrefWidth(Control.USE_COMPUTED_SIZE); progressBar.setProgress(0.0); VBox.setVgrow(progressBar, Priority.NEVER); consoleBox2.getChildren().add(progressBar); Insets insets73 = new Insets(10.0, 10.0, 10.0, 10.0); consoleBox2.setPadding(insets73); vBox51.getChildren().add(consoleBox2); TabPane tabPane3 = new TabPane(); tabPane3.setPrefHeight(Control.USE_COMPUTED_SIZE); tabPane3.setPrefWidth(Control.USE_COMPUTED_SIZE); tabPane3.setTabClosingPolicy(TabClosingPolicy.UNAVAILABLE); VBox.setVgrow(tabPane3, Priority.ALWAYS); tabMessages = new Tab(); tabMessages.setClosable(false); tabMessages.setText(bundle.getString("ProgressDialog_Console")); VBox vBox52 = new VBox(); vBox52.setId("VBox"); vBox52.setAlignment(Pos.CENTER); vBox52.setSpacing(5.0); controlConsole = new ListView(); controlConsole.setPrefHeight(100.0); controlConsole.setPrefWidth(Control.USE_COMPUTED_SIZE); VBox.setVgrow(controlConsole, Priority.ALWAYS); vBox52.getChildren().add(controlConsole); tabMessages.setContent(vBox52); ImageView imageView35 = new ImageView(); imageView35.setFitHeight(16.0); imageView35.setFitWidth(16.0); imageView35.setMouseTransparent(true); imageView35.setPickOnBounds(true); imageView35.setPreserveRatio(true); Image image35 = new Image(getClass().getResource("/com/digiarea/closurefx/resources/launch.png").openStream()); imageView35.setImage(image35); tabMessages.setGraphic(imageView35); tabPane3.getTabs().add(tabMessages); tabProblems = new Tab(); tabProblems.setClosable(false); tabProblems.setText(bundle.getString("ProgressDialog_Problems")); VBox vBox53 = new VBox(); vBox53.setPrefHeight(Control.USE_COMPUTED_SIZE); vBox53.setPrefWidth(Control.USE_COMPUTED_SIZE); vBox53.setSpacing(6.0); GridPane gridPane60 = new GridPane(); gridPane60.setHgap(5.0); controlErrors = new Label(); controlErrors.setText(bundle.getString("ProgressDialog_Errors")); GridPane.setColumnIndex(controlErrors, 0); GridPane.setRowIndex(controlErrors, 0); gridPane60.getChildren().add(controlErrors); controlWarnings = new Label(); controlWarnings.setText(bundle.getString("ProgressDialog_Warnings")); GridPane.setColumnIndex(controlWarnings, 1); GridPane.setRowIndex(controlWarnings, 0); gridPane60.getChildren().add(controlWarnings); ColumnConstraints columnConstraints135 = new ColumnConstraints(); columnConstraints135.setHgrow(Priority.NEVER); columnConstraints135.setMinWidth(Control.USE_PREF_SIZE); columnConstraints135.setPrefWidth(Control.USE_COMPUTED_SIZE); gridPane60.getColumnConstraints().add(columnConstraints135); ColumnConstraints columnConstraints136 = new ColumnConstraints(); columnConstraints136.setHgrow(Priority.ALWAYS); columnConstraints136.setMinWidth(Control.USE_PREF_SIZE); columnConstraints136.setPrefWidth(Control.USE_COMPUTED_SIZE); gridPane60.getColumnConstraints().add(columnConstraints136); Insets insets74 = new Insets(5.0, 5.0, 5.0, 5.0); gridPane60.setPadding(insets74); RowConstraints rowConstraints117 = new RowConstraints(); rowConstraints117.setMinHeight(Control.USE_PREF_SIZE); rowConstraints117.setPrefHeight(Control.USE_COMPUTED_SIZE); rowConstraints117.setVgrow(Priority.NEVER); gridPane60.getRowConstraints().add(rowConstraints117); vBox53.getChildren().add(gridPane60); controlProblems = new TableView(); controlProblems.setMinHeight(Control.USE_COMPUTED_SIZE); controlProblems.setMinWidth(Control.USE_PREF_SIZE); controlProblems.setPrefHeight(100.0); controlProblems.setPrefWidth(Control.USE_COMPUTED_SIZE); controlProblems.setTableMenuButtonVisible(false); VBox.setVgrow(controlProblems, Priority.ALWAYS); controlProblemsLevel = new TableColumn(); controlProblemsLevel.setMaxWidth(20.0); controlProblemsLevel.setMinWidth(16.0); controlProblemsLevel.setPrefWidth(20.0); controlProblemsLevel.setText(""); controlProblems.getColumns().add(controlProblemsLevel); controlProblemsDescription = new TableColumn(); controlProblemsDescription.setMinWidth(100.0); controlProblemsDescription.setPrefWidth(300.0); controlProblemsDescription.setText(bundle.getString("ProgressDialog_Table_Description")); controlProblems.getColumns().add(controlProblemsDescription); controlProblemsResource = new TableColumn(); controlProblemsResource.setPrefWidth(100.0); controlProblemsResource.setText(bundle.getString("ProgressDialog_Table_Resource")); controlProblems.getColumns().add(controlProblemsResource); controlProblemsPath = new TableColumn(); controlProblemsPath.setPrefWidth(200.0); controlProblemsPath.setText(bundle.getString("ProgressDialog_Table_Path")); controlProblems.getColumns().add(controlProblemsPath); controlProblemsLocation = new TableColumn(); controlProblemsLocation.setPrefWidth(100.0); controlProblemsLocation.setText(bundle.getString("ProgressDialog_Table_Location")); controlProblems.getColumns().add(controlProblemsLocation); controlProblemsType = new TableColumn(); controlProblemsType.setPrefWidth(100.0); controlProblemsType.setText(bundle.getString("ProgressDialog_Table_Type")); controlProblems.getColumns().add(controlProblemsType); vBox53.getChildren().add(controlProblems); Insets insets75 = new Insets(5.0, 0.0, 0.0, 0.0); vBox53.setPadding(insets75); tabProblems.setContent(vBox53); ImageView imageView36 = new ImageView(); imageView36.setFitHeight(16.0); imageView36.setFitWidth(16.0); imageView36.setMouseTransparent(true); imageView36.setPickOnBounds(true); imageView36.setPreserveRatio(true); Image image36 = new Image(getClass().getResource("/com/digiarea/closurefx/resources/mark-exclamation.png").openStream()); imageView36.setImage(image36); tabProblems.setGraphic(imageView36); tabPane3.getTabs().add(tabProblems); vBox51.getChildren().add(tabPane3); Insets insets76 = new Insets(0.0, 0.0, 0.0, 0.0); vBox51.setPadding(insets76); hBox12.getChildren().add(vBox51); Insets insets77 = new Insets(0.0, 0.0, 0.0, 0.0); hBox12.setPadding(insets77); initialize(null, bundle); return hBox12; } @Override public void report(IStatus status) { // TODO Auto-generated method stub } @Override public void generateReport() { // TODO Auto-generated method stub } }