package org.erlide.ui.prefs;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.erlide.util.SystemConfiguration;
public class InternalSettingsPreferencePage extends PreferencePage
implements IWorkbenchPreferencePage {
private SystemConfiguration su;
private Button btnTestMode;
private Button btnDeveloperMode;
private Button btnMakeAvailableClearcache;
private Label lblNewLabel;
private Label warnProcessLimitText;
private Label lblNewLabel_1;
private Label killProcessLimitText;
public InternalSettingsPreferencePage() {
}
@Override
public void init(final IWorkbench workbench) {
su = SystemConfiguration.getInstance();
}
@Override
protected Control createContents(final Composite parent) {
final Composite panel = new Composite(parent, SWT.NONE);
panel.setLayout(new GridLayout(2, false));
final Label lblPleaseDoNot = new Label(panel, SWT.NONE);
lblPleaseDoNot
.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
lblPleaseDoNot.setText(
"Please do not change these values unless instructed by an erlide developer!");
final Label lblStrangeThingsMight = new Label(panel, SWT.NONE);
lblStrangeThingsMight
.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
lblStrangeThingsMight.setAlignment(SWT.RIGHT);
lblStrangeThingsMight.setText("Strange things might happen...");
new Label(panel, SWT.NONE);
btnDeveloperMode = new Button(panel, SWT.CHECK);
btnDeveloperMode.setText("Developer mode");
btnDeveloperMode.setSelection(su.isDeveloper());
new Label(panel, SWT.NONE);
btnTestMode = new Button(panel, SWT.CHECK);
btnTestMode.setText("Test mode");
btnTestMode.setSelection(su.isTest());
new Label(panel, SWT.NONE);
btnMakeAvailableClearcache = new Button(panel, SWT.CHECK);
btnMakeAvailableClearcache.setText("Make available ClearCache command");
btnMakeAvailableClearcache.setSelection(su.isClearCacheAvailable());
new Label(panel, SWT.NONE);
new Label(panel, SWT.NONE);
new Label(panel, SWT.NONE);
lblNewLabel = new Label(panel, SWT.NONE);
final GridData gd_lblNewLabel = new GridData(SWT.LEFT, SWT.CENTER, false, false,
1, 1);
gd_lblNewLabel.widthHint = 300;
lblNewLabel.setLayoutData(gd_lblNewLabel);
lblNewLabel.setText("-Derlide.process.heap.warn.limit (MB)");
warnProcessLimitText = new Label(panel, SWT.BORDER);
warnProcessLimitText
.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
warnProcessLimitText.setText(Integer.toString(su.getWarnProcessSizeLimitMB()));
lblNewLabel_1 = new Label(panel, SWT.NONE);
lblNewLabel_1.setText("-Derlide.process.heap.kill.limit (MB)");
killProcessLimitText = new Label(panel, SWT.BORDER);
killProcessLimitText
.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
killProcessLimitText.setText(Integer.toString(su.getKillProcessSizeLimitMB()));
return panel;
}
@Override
public boolean performOk() {
su.setDeveloper(btnDeveloperMode.getSelection());
su.setTest(btnTestMode.getSelection());
su.setClearCacheAvailable(btnMakeAvailableClearcache.getSelection());
return true;
}
}