package bluej.editor.moe;
import bluej.Config;
import bluej.editor.EditorManager;
import bluej.pkgmgr.Project;
import bluej.prefmgr.PrefMgr;
import bluej.prefmgr.PrefMgrDialog;
import bluej.prefmgr.PrefPanelListener;
import bluej.utility.javafx.JavaFXUtil;
import javafx.scene.Node;
import javafx.scene.control.CheckBox;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
import threadchecker.OnThread;
import threadchecker.Tag;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
| A PrefPanel subclass to allow the user to interactively edit
| editor settings
|
| @author Michael Kolling
|
@OnThread(Tag.FXPlatform)
public class EditorPrefPanel
extends VBox implements PrefPanelListener{
private TextField editorFontField;
private CheckBox highlightingBox;
private CheckBox autoIndentBox;
private CheckBox lineNumbersBox;
private CheckBox matchBracketsBox;
private ScopeHighlightingPrefDisplay scopeHighlightingPrefDisplay;
| Setup the UI for the dialog and event handlers for the buttons.
|
public EditorPrefPanel()
{
JavaFXUtil.addStyleClass(this, "prefmgr-pref-panel");
scopeHighlightingPrefDisplay=new ScopeHighlightingPrefDisplay();
List<Node> editorPanel = new ArrayList<>();
{
GridPane topPanel=new GridPane();
JavaFXUtil.addStyleClass(topPanel, "prefmgr-java-editor-top");
editorFontField = new TextField();
editorFontField.setPrefColumnCount(4);
topPanel.add(PrefMgrDialog.labelledItem("prefmgr.edit.editorfontsize", editorFontField), 0, 0);
autoIndentBox = new CheckBox(Config.getString("prefmgr.edit.autoindent"));
topPanel.add(autoIndentBox, 1, 0);
highlightingBox = new CheckBox(Config.getString("prefmgr.edit.usesyntaxhilighting"));
topPanel.add(highlightingBox, 0, 1);
lineNumbersBox = new CheckBox(Config.getString("prefmgr.edit.displaylinenumbers"));
topPanel.add(lineNumbersBox, 0, 2);
matchBracketsBox= new CheckBox(Config.getString("prefmgr.edit.matchBrackets"));
topPanel.add(matchBracketsBox, 1, 1);
Pane bottomPanel = new HBox();
JavaFXUtil.addStyleClass(bottomPanel, "prefmgr-java-scope-hbox");
bottomPanel.getChildren().add(scopeHighlightingPrefDisplay.getHighlightStrengthSlider());
bottomPanel.getChildren().add(scopeHighlightingPrefDisplay.getColourPalette());
editorPanel.add(topPanel);
editorPanel.add(PrefMgrDialog.headedVBox("prefmgr.edit.colortransparency", Arrays.asList(bottomPanel)));
}
getChildren().add(PrefMgrDialog.headedVBox("prefmgr.edit.editor.title", editorPanel));
}
public void beginEditing(Project project)
{
editorFontField.setText(String.valueOf(PrefMgr.getEditorFontSize().get()));
highlightingBox.setSelected(PrefMgr.getFlag(PrefMgr.HIGHLIGHTING));
autoIndentBox.setSelected(PrefMgr.getFlag(PrefMgr.AUTO_INDENT));
lineNumbersBox.setSelected(PrefMgr.getFlag(PrefMgr.LINENUMBERS));
matchBracketsBox.setSelected(PrefMgr.getFlag(PrefMgr.MATCH_BRACKETS));
}
public void revertEditing(Project project)
{
}
public void commitEditing(Project project)
{
String fontText = editorFontField.getText();
PrefMgr.setFlag(PrefMgr.HIGHLIGHTING, highlightingBox.isSelected());
PrefMgr.setFlag(PrefMgr.AUTO_INDENT, autoIndentBox.isSelected());
PrefMgr.setFlag(PrefMgr.LINENUMBERS, lineNumbersBox.isSelected());
PrefMgr.setFlag(PrefMgr.MATCH_BRACKETS, matchBracketsBox.isSelected());
int strength = scopeHighlightingPrefDisplay.getStrengthValue();
try {
PrefMgr.setEditorFontSize(Integer.parseInt(fontText));
}
catch (NumberFormatException nfe) {
}
PrefMgr.setScopeHighlightStrength(strength);
EditorManager.getEditorManager().refreshAll();
}
}
top,
use,
map,
class EditorPrefPanel
. EditorPrefPanel
. beginEditing
. revertEditing
. commitEditing
121 neLoCode
+ 4 LoComm