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.Hyperlink;
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.help.model.controller.HelpController;
import com.digiarea.closure.help.providers.HelpProvider;
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.ClosureFXController;
import com.digiarea.closurefx.IConstants;
import com.digiarea.closurefx.ResourceUtils;
import com.digiarea.closurefx.build.console.ClosureStatus;
import com.digiarea.closurefx.build.console.JSCClosureStatus;
import com.digiarea.closurefx.build.console.JSCConsoleManager;
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 JSConsoleSectionController 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> controlProblemsKey;
@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 JSConsoleSectionController(ModelFacade modelFacade,
ResourceBundle bundle) {
super(modelFacade, bundle);
modelFacade.setJsConsole(new JSCConsoleManager(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 JSConsoleSectionController.TextCell();
}
});
controlProblemsKey
.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() instanceof JSCClosureStatus) {
JSCClosureStatus status = (JSCClosureStatus) p
.getValue();
return new SimpleStringProperty(status
.getDiagnosticType().key);
} else {
return new SimpleStringProperty("<no type>");
}
}
});
controlProblemsKey
.setCellFactory(new Callback<TableColumn<ClosureStatus, String>, TableCell<ClosureStatus, String>>() {
@Override
public TableCell<ClosureStatus, String> call(
TableColumn<ClosureStatus, String> param) {
return new JSConsoleSectionController.KeyCell();
}
});
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 JSConsoleSectionController.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 JSConsoleSectionController.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 JSConsoleSectionController.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 Compiler Problem");
} else {
return new SimpleStringProperty("<no line>");
}
}
});
controlProblemsType
.setCellFactory(new Callback<TableColumn<ClosureStatus, String>, TableCell<ClosureStatus, String>>() {
@Override
public TableCell<ClosureStatus, String> call(
TableColumn<ClosureStatus, String> param) {
return new JSConsoleSectionController.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 KeyCell
extends
com.digiarea.closure.model.controller.JSConsoleSectionController.TextCell {
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (!isEmpty()) {
Hyperlink hyperlink = new Hyperlink(item);
if (getTableRow().getItem() instanceof JSCClosureStatus) {
final JSCClosureStatus status = (JSCClosureStatus) getTableRow()
.getItem();
hyperlink.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
HelpController help = ClosureFXController.APPLICATION
.openHelp();
help.setInitialURL(
HelpProvider.class
.getResource(IConstants.HELP_COMPILER
+ "/closure-compiler-warnings.html"),
"#" + status.getDiagnosticType().key);
}
});
}
setGraphic(hyperlink);
setTooltip(new Tooltip(item));
}
setText(null);
}
}
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.getJsConsole().start();
}
@FXML
private void handleStopButton(ActionEvent event) {
modelFacade.getJsConsole().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 hBox5 = new HBox();
hBox5.setId("HBox");
hBox5.setAlignment(Pos.CENTER);
hBox5.setMinHeight(Control.USE_PREF_SIZE);
hBox5.setMinWidth(Control.USE_PREF_SIZE);
hBox5.setSpacing(5.0);
VBox vBox21 = new VBox();
vBox21.setMaxHeight(Control.USE_COMPUTED_SIZE);
vBox21.setMaxWidth(Control.USE_COMPUTED_SIZE);
vBox21.setMinHeight(Control.USE_COMPUTED_SIZE);
vBox21.setPrefWidth(Control.USE_COMPUTED_SIZE);
vBox21.setSpacing(0.0);
HBox.setHgrow(vBox21, Priority.ALWAYS);
VBox consoleBox1 = new VBox();
consoleBox1.setId("ConsoleBox");
consoleBox1.setAlignment(Pos.CENTER_LEFT);
consoleBox1.setSpacing(5.0);
VBox.setVgrow(consoleBox1, Priority.NEVER);
GridPane gridPane31 = new GridPane();
gridPane31.setHgap(5.0);
gridPane31.setPrefWidth(377.0001220703125);
VBox.setVgrow(gridPane31, Priority.NEVER);
Button button25 = new Button();
button25.setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
button25.setMnemonicParsing(false);
button25.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
handleStartButton(event);
}
});
button25.setText("");
GridPane.setColumnIndex(button25, 1);
GridPane.setRowIndex(button25, 0);
ImageView imageView14 = new ImageView();
imageView14.setFitHeight(16.0);
imageView14.setFitWidth(16.0);
imageView14.setMouseTransparent(true);
imageView14.setPickOnBounds(true);
imageView14.setPreserveRatio(true);
Image image14 = new Image(getClass().getResource(
"/com/digiarea/closurefx/resources/launch.png").openStream());
imageView14.setImage(image14);
button25.setGraphic(imageView14);
Tooltip tooltip8 = new Tooltip();
tooltip8.setText(bundle.getString("ProgressDialog_Run"));
button25.setTooltip(tooltip8);
gridPane31.getChildren().add(button25);
Button button26 = new Button();
button26.setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
button26.setMnemonicParsing(false);
button26.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
handleStopButton(event);
}
});
button26.setText("");
GridPane.setColumnIndex(button26, 2);
GridPane.setRowIndex(button26, 0);
ImageView imageView15 = new ImageView();
imageView15.setFitHeight(16.0);
imageView15.setFitWidth(16.0);
imageView15.setMouseTransparent(true);
imageView15.setPickOnBounds(true);
imageView15.setPreserveRatio(true);
Image image15 = new Image(getClass().getResource(
"/com/digiarea/closurefx/resources/mark-error.png")
.openStream());
imageView15.setImage(image15);
button26.setGraphic(imageView15);
Tooltip tooltip9 = new Tooltip();
tooltip9.setText(bundle.getString("ProgressDialog_Cancel"));
button26.setTooltip(tooltip9);
gridPane31.getChildren().add(button26);
ColumnConstraints columnConstraints63 = new ColumnConstraints();
columnConstraints63.setHgrow(Priority.ALWAYS);
columnConstraints63.setMinWidth(Control.USE_PREF_SIZE);
columnConstraints63.setPrefWidth(Control.USE_COMPUTED_SIZE);
gridPane31.getColumnConstraints().add(columnConstraints63);
ColumnConstraints columnConstraints64 = new ColumnConstraints();
columnConstraints64.setHgrow(Priority.NEVER);
columnConstraints64.setMinWidth(Control.USE_PREF_SIZE);
columnConstraints64.setPrefWidth(Control.USE_COMPUTED_SIZE);
gridPane31.getColumnConstraints().add(columnConstraints64);
ColumnConstraints columnConstraints65 = new ColumnConstraints();
columnConstraints65.setHgrow(Priority.NEVER);
columnConstraints65.setMinWidth(Control.USE_PREF_SIZE);
columnConstraints65.setPrefWidth(Control.USE_COMPUTED_SIZE);
gridPane31.getColumnConstraints().add(columnConstraints65);
RowConstraints rowConstraints55 = new RowConstraints();
rowConstraints55.setMinHeight(Control.USE_PREF_SIZE);
rowConstraints55.setPrefHeight(Control.USE_COMPUTED_SIZE);
rowConstraints55.setVgrow(Priority.NEVER);
gridPane31.getRowConstraints().add(rowConstraints55);
consoleBox1.getChildren().add(gridPane31);
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);
consoleBox1.getChildren().add(progressBar);
Insets insets29 = new Insets(10.0, 10.0, 10.0, 10.0);
consoleBox1.setPadding(insets29);
vBox21.getChildren().add(consoleBox1);
TabPane tabPane2 = new TabPane();
tabPane2.setPrefHeight(Control.USE_COMPUTED_SIZE);
tabPane2.setPrefWidth(Control.USE_COMPUTED_SIZE);
tabPane2.setTabClosingPolicy(TabClosingPolicy.UNAVAILABLE);
VBox.setVgrow(tabPane2, Priority.ALWAYS);
tabMessages = new Tab();
tabMessages.setClosable(false);
tabMessages.setText(bundle.getString("ProgressDialog_Console"));
VBox vBox22 = new VBox();
vBox22.setId("VBox");
vBox22.setAlignment(Pos.CENTER);
vBox22.setSpacing(5.0);
controlConsole = new ListView();
controlConsole.setPrefHeight(100.0);
controlConsole.setPrefWidth(Control.USE_COMPUTED_SIZE);
VBox.setVgrow(controlConsole, Priority.ALWAYS);
vBox22.getChildren().add(controlConsole);
tabMessages.setContent(vBox22);
ImageView imageView16 = new ImageView();
imageView16.setFitHeight(16.0);
imageView16.setFitWidth(16.0);
imageView16.setMouseTransparent(true);
imageView16.setPickOnBounds(true);
imageView16.setPreserveRatio(true);
Image image16 = new Image(getClass().getResource(
"/com/digiarea/closurefx/resources/launch.png").openStream());
imageView16.setImage(image16);
tabMessages.setGraphic(imageView16);
tabPane2.getTabs().add(tabMessages);
tabProblems = new Tab();
tabProblems.setClosable(false);
tabProblems.setText(bundle.getString("ProgressDialog_Problems"));
VBox vBox23 = new VBox();
vBox23.setPrefHeight(Control.USE_COMPUTED_SIZE);
vBox23.setPrefWidth(Control.USE_COMPUTED_SIZE);
vBox23.setSpacing(6.0);
GridPane gridPane32 = new GridPane();
gridPane32.setHgap(5.0);
controlErrors = new Label();
controlErrors.setText(bundle.getString("ProgressDialog_Errors"));
GridPane.setColumnIndex(controlErrors, 0);
GridPane.setRowIndex(controlErrors, 0);
gridPane32.getChildren().add(controlErrors);
controlWarnings = new Label();
controlWarnings.setText(bundle.getString("ProgressDialog_Warnings"));
GridPane.setColumnIndex(controlWarnings, 1);
GridPane.setRowIndex(controlWarnings, 0);
gridPane32.getChildren().add(controlWarnings);
ColumnConstraints columnConstraints66 = new ColumnConstraints();
columnConstraints66.setHgrow(Priority.NEVER);
columnConstraints66.setMinWidth(Control.USE_PREF_SIZE);
columnConstraints66.setPrefWidth(Control.USE_COMPUTED_SIZE);
gridPane32.getColumnConstraints().add(columnConstraints66);
ColumnConstraints columnConstraints67 = new ColumnConstraints();
columnConstraints67.setHgrow(Priority.ALWAYS);
columnConstraints67.setMinWidth(Control.USE_PREF_SIZE);
columnConstraints67.setPrefWidth(Control.USE_COMPUTED_SIZE);
gridPane32.getColumnConstraints().add(columnConstraints67);
Insets insets30 = new Insets(5.0, 5.0, 5.0, 5.0);
gridPane32.setPadding(insets30);
RowConstraints rowConstraints56 = new RowConstraints();
rowConstraints56.setMinHeight(Control.USE_PREF_SIZE);
rowConstraints56.setPrefHeight(Control.USE_COMPUTED_SIZE);
rowConstraints56.setVgrow(Priority.NEVER);
gridPane32.getRowConstraints().add(rowConstraints56);
vBox23.getChildren().add(gridPane32);
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);
controlProblemsKey = new TableColumn();
controlProblemsKey.setMaxWidth(5000.0);
controlProblemsKey.setMinWidth(100.0);
controlProblemsKey.setPrefWidth(150.0);
controlProblemsKey.setText(bundle
.getString("ProgressDialog_Table_Warning"));
controlProblems.getColumns().add(controlProblemsKey);
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(250.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(140.0);
controlProblemsType.setText(bundle
.getString("ProgressDialog_Table_Type"));
controlProblems.getColumns().add(controlProblemsType);
vBox23.getChildren().add(controlProblems);
Insets insets31 = new Insets(5.0, 0.0, 0.0, 0.0);
vBox23.setPadding(insets31);
tabProblems.setContent(vBox23);
ImageView imageView17 = new ImageView();
imageView17.setFitHeight(16.0);
imageView17.setFitWidth(16.0);
imageView17.setMouseTransparent(true);
imageView17.setPickOnBounds(true);
imageView17.setPreserveRatio(true);
Image image17 = new Image(getClass().getResource(
"/com/digiarea/closurefx/resources/mark-exclamation.png")
.openStream());
imageView17.setImage(image17);
tabProblems.setGraphic(imageView17);
tabPane2.getTabs().add(tabProblems);
vBox21.getChildren().add(tabPane2);
Insets insets32 = new Insets(0.0, 0.0, 0.0, 0.0);
vBox21.setPadding(insets32);
hBox5.getChildren().add(vBox21);
Insets insets33 = new Insets(0.0, 0.0, 0.0, 0.0);
hBox5.setPadding(insets33);
initialize(null, bundle);
return hBox5;
}
@Override
public void report(IStatus status) {
// TODO Auto-generated method stub
}
@Override
public void generateReport() {
// TODO Auto-generated method stub
}
}