shell.setText("Eigenschaften");
shell.setImage(Images.COG);
shell.setLayout(new MigLayout("fill, wrap 2"));
shell.setLayoutData("hmin pref, wmin pref");
final Preferences preferences = Preferences.getInstance();
Label lAntialias = new Label(shell, SWT.NONE);
lAntialias.setText("Antialiasing:");
lAntialias.setLayoutData("hmin pref, wmin pref");
final AntButton bAntialias = new AntButton(new Button(shell, SWT.CHECK), getProject());
bAntialias.getButton().setSelection(preferences.isAntialias());
bAntialias.getButton().setLayoutData("hmin pref, wmin pref");
bAntialias.setTooltipText("Mit dieser Optionen k�nnen Sie Antialiasing an- und ausschalten.");
Label lRedrawInterval = new Label(shell, SWT.NONE);
lRedrawInterval.setText("Neuzeichnungsintervall:");
lRedrawInterval.setLayoutData("hmin pref, wmin pref");
final AntText tRedrawInterval = new AntText(new Text(shell, SWT.BORDER), getProject());
tRedrawInterval.getText().setText(Utility.FORMAT.format(preferences.getRedrawInterval()));
tRedrawInterval.getText().setLayoutData("hmin pref, wmin pref, grow");
tRedrawInterval.setTooltipText("Hier k�nnen Sie einstellen, nach wie vielen Iterationen neu gezeichnet werden soll. (X > 0)");
tRedrawInterval.setInputMode(AntText.INTEGER_ONLY);
tRedrawInterval.setNumberRange(1, Double.POSITIVE_INFINITY, true, true);
Label lNodeColor = new Label(shell, SWT.NONE);
lNodeColor.setText("Farbe der Knoten:");
lNodeColor.setLayoutData("hmin pref, wmin pref");
final AntComposite cNodeColor = new AntComposite(new Composite(shell, SWT.BORDER), getProject());
cNodeColor.setBackground(preferences.getNodeColor());
cNodeColor.getComposite().setLayoutData("height 20!, wmin 50");
cNodeColor.setTooltipText("Hier k�nnen Sie die Farbe einstellen, mit der die Knoten gezeichnet werden.");
cNodeColor.getComposite().addMouseListener(new ChooseColorListener(cNodeColor));
Label lCurrentNodeColor = new Label(shell, SWT.NONE);
lCurrentNodeColor.setText("Farbe der ausgew�hlten Knoten:");
lCurrentNodeColor.setLayoutData("hmin pref, wmin pref");
final AntComposite cCurrentNodeColor = new AntComposite(new Composite(shell, SWT.BORDER), getProject());
cCurrentNodeColor.setBackground(preferences.getCurrentNodeColor());
cCurrentNodeColor.getComposite().setLayoutData("height 20!, wmin 50");
cCurrentNodeColor.setTooltipText("Hier k�nnen Sie die Farbe einstellen, mit der die ausgew�hlten Knoten gezeichnet werden.");
cCurrentNodeColor.getComposite().addMouseListener(new ChooseColorListener(cCurrentNodeColor));
Label lBestTourGlobalColor = new Label(shell, SWT.NONE);
lBestTourGlobalColor.setText("Farbe der besten globalen Tour:");
lBestTourGlobalColor.setLayoutData("hmin pref, wmin pref");
final AntComposite cBestTourGlobalColor = new AntComposite(new Composite(shell, SWT.BORDER), getProject());
cBestTourGlobalColor.setBackground(preferences.getBestTourGlobalColor());
cBestTourGlobalColor.getComposite().setLayoutData("height 20!, wmin 50");
cBestTourGlobalColor.setTooltipText("Hier k�nnen Sie die Farbe einstellen, mit der die Linien der globalen besten Tour gezeichnet werden.");
cBestTourGlobalColor.getComposite().addMouseListener(new ChooseColorListener(cBestTourGlobalColor));
Label lBestTourIterationColor = new Label(shell, SWT.NONE);
lBestTourIterationColor.setText("Farbe der besten Tour der Iteration:");
lBestTourIterationColor.setLayoutData("hmin pref, wmin pref");
final AntComposite cBestTourIterationColor = new AntComposite(new Composite(shell, SWT.BORDER), getProject());
cBestTourIterationColor.setBackground(preferences.getBestTourIterationColor());
cBestTourIterationColor.getComposite().setLayoutData("height 20!, wmin 50");
cBestTourIterationColor
.setTooltipText("Hier k�nnen Sie die Farbe einstellen, mit der die Linien der besten Tour der Iteration gezeichnet werden.");
cBestTourIterationColor.getComposite().addMouseListener(new ChooseColorListener(cBestTourIterationColor));
Label lBackgroundColor = new Label(shell, SWT.NONE);
lBackgroundColor.setText("Farbe des Malfl�chenhintergrundes:");
lBackgroundColor.setLayoutData("hmin pref, wmin pref");
final AntComposite cBackgroundColor = new AntComposite(new Composite(shell, SWT.BORDER), getProject());
cBackgroundColor.setBackground(preferences.getBackgroundColor());
cBackgroundColor.getComposite().setLayoutData("height 20!, wmin 50");
cBackgroundColor.setTooltipText("Hier k�nnen Sie die Hintergrundfarbe der Malfl�che einstellen.");
cBackgroundColor.getComposite().addMouseListener(new ChooseColorListener(cBackgroundColor));
Composite buttonComp = new Composite(shell, SWT.NONE);
buttonComp.setLayout(new MigLayout("wrap 2, ins 0", "[50%][50%]"));
buttonComp.setLayoutData("hmin 0, wmin 0, growx, spanx");
AntButton confirm = new AntButton(new Button(buttonComp, SWT.PUSH), getProject());
confirm.getButton().setText("Speichern");
confirm.getButton().setLayoutData("hmin pref, wmin pref, grow");
confirm.setTooltipText("Speichert die Eigenschaften und schlie�t den Dialog.");
confirm.getButton().addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent pE) {
if (tRedrawInterval.isValidInput()) {
try {
preferences.setAntialias(bAntialias.getButton().getSelection());
preferences.setRedrawInterval(Utility.FORMAT.parse(tRedrawInterval.getText().getText()).intValue());
preferences.setNodeColor(cNodeColor.getBackground());
preferences.setCurrentNodeColor(cCurrentNodeColor.getBackground());
preferences.setBestTourGlobalColor(cBestTourGlobalColor.getBackground());
preferences.setBestTourIterationColor(cBestTourIterationColor.getBackground());
preferences.setBackgroundColor(cBackgroundColor.getBackground());
}
catch (ParseException e) {
MessageDialog.openError(shell, "Fehler beim umwandeln der Werte",
"Beim Umwandeln der Werte von Text in eine Zahl ist ein Fehler aufgetreten.");
}