/** Initializes the line number column. */ public void initializeLineNumberColumn() { final StringConverter<LineNumberCellData> stringConverter = new StringConverter<LineNumberCellData>() { @Override public LineNumberCellData fromString(String s) { int i = 1; try { i = Integer.parseInt(s); } catch (NumberFormatException nfe) { } return new LineNumberCellData(i); } @Override public String toString(LineNumberCellData lncd) { return lncd.toString(); } }; Callback<ListView<LineNumberCellData>, ListCell<LineNumberCellData>> forListView = new Callback<ListView<LineNumberCellData>, ListCell<LineNumberCellData>>() { @Override public ListCell<LineNumberCellData> call(ListView<LineNumberCellData> param) { TextFieldListCell<LineNumberCellData> tflc = new TextFieldListCell<LineNumberCellData>(stringConverter); tflc.setAlignment(Pos.CENTER); tflc.setEditable(false); tflc.styleProperty().bind(cellHeightStyle.concat(cellFontSizeStyle)); return tflc; } }; lineNumberListView.setCellFactory(forListView); for (int i = 1; i <= currentNumLines; i++) { lineNumberListView.getItems().add(new LineNumberCellData(i)); } lineNumberListView.setEventDispatcher( new MyEventDispatcher(lineNumberListView.getEventDispatcher())); Platform.runLater( new Runnable() { @Override public void run() { // Get scroll bars final ScrollBar lineNumberH = (ScrollBar) lineNumberListView.lookup(".scroll-bar:horizontal"); final ScrollBar lineNumberV = (ScrollBar) lineNumberListView.lookup(".scroll-bar:vertical"); final ScrollBar textAreaV = (ScrollBar) textArea.lookup(".scroll-bar:vertical"); // Opacity (-7 to get rid of scroll bars) if (lineNumberH != null) { lineNumberH.setStyle("-fx-opacity: 0; -fx-padding:-7;"); lineNumberH.setDisable(true); } if (lineNumberV != null) { lineNumberV.setStyle("-fx-opacity: 0; -fx-padding:-7;"); lineNumberV.setDisable(true); } lineNumberListView.setStyle("-fx-padding:5 0 5 0;"); // Change appropriately according to text Area if (textAreaV != null) { textAreaV .valueProperty() .addListener( new ChangeListener<Number>() { @Override public void changed( ObservableValue<? extends Number> arg0, Number oldVal, Number newVal) { lineNumberV.valueProperty().set(newVal.doubleValue()); } }); } } }); int size = mediator.getDesktopController().getOtherSettings().showLineNumbers.get() ? 30 : 0; gridPane.getColumnConstraints().get(1).setMinWidth(size); gridPane.getColumnConstraints().get(1).setMaxWidth(size); gridPane.getColumnConstraints().get(1).setPrefWidth(size); }
/** Initializes the debug column. */ public void initializeDebugColumn() { final Callback<DebugCellData, ObservableValue<Boolean>> getProperty = new Callback<DebugCellData, ObservableValue<Boolean>>() { @Override public ObservableValue<Boolean> call(DebugCellData param) { return param.isBreakPointProperty(); } }; Callback<ListView<DebugCellData>, ListCell<DebugCellData>> forListView = new Callback<ListView<DebugCellData>, ListCell<DebugCellData>>() { @Override public ListCell<DebugCellData> call(ListView<DebugCellData> param) { CheckBoxListCell<DebugCellData> cblc = new CheckBoxListCell<DebugCellData>(getProperty); cblc.setAlignment(Pos.CENTER); cblc.styleProperty().bind(cellHeightStyle.concat(cellFontSizeStyle)); return cblc; } }; debugListView.setCellFactory(forListView); ObservableList<DebugCellData> items = debugListView.getItems(); for (int i = 1; i <= currentNumLines; i++) { DebugCellData newData = newDebugCellData(); items.add(newData); } // To disallow scrolling debugListView.setEventDispatcher(new MyEventDispatcher(debugListView.getEventDispatcher())); Platform.runLater( new Runnable() { @Override public void run() { // Get scroll bars final ScrollBar debugH = (ScrollBar) debugListView.lookup(".scroll-bar:horizontal"); final ScrollBar debugV = (ScrollBar) debugListView.lookup(".scroll-bar:vertical"); final ScrollBar textAreaV = (ScrollBar) textArea.lookup(".scroll-bar:vertical"); // Opacity (-7 to get rid of scrollbars) if (debugH != null) { debugH.setStyle("-fx-opacity: 0; -fx-padding:-7;"); debugH.setDisable(true); } if (debugV != null) { debugV.setStyle("-fx-opacity: 0; -fx-padding:-7;"); debugV.setDisable(true); } debugListView.setStyle("-fx-padding:5 0 5 0;"); // Change appropriately according to text Area if (textAreaV != null) { textAreaV .valueProperty() .addListener( new ChangeListener<Number>() { @Override public void changed( ObservableValue<? extends Number> arg0, Number oldVal, Number newVal) { debugV.valueProperty().set(newVal.doubleValue()); } }); } } }); int size = mediator.getDesktopController().getInDebugMode() && mediator.getMachine().getCodeStore() != null ? 30 : 0; gridPane.getColumnConstraints().get(0).setMinWidth(size); gridPane.getColumnConstraints().get(0).setMaxWidth(size); gridPane.getColumnConstraints().get(0).setPrefWidth(size); mediator .getMachine() .getCodeStoreProperty() .addListener( new ChangeListener<RAM>() { @Override public void changed( ObservableValue<? extends RAM> observable, RAM oldValue, RAM newValue) { clearAllBreakPointsInRam(oldValue); clearAllBreakPointsInRam(newValue); setBreakPointsInRam(newValue); } }); }