use of edu.cmu.cs.hcii.cogtool.util.IntegerEntry in project cogtool by cogtool.
the class ResearchDialog method buildDialog.
@Override
public void buildDialog() {
dialog.setLayout(new FormLayout());
Button okButton = new Button(dialog, SWT.PUSH);
okButton.setText(L10N.get("PREFDG.OK", "OK"));
dialog.setDefaultButton(okButton);
okButton.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
// TODO: updateValues() can throw IllegalStateException!
userResponse = (updateValues() ? Boolean.TRUE : null);
dialog.close();
}
});
Button cancelButton = new Button(dialog, SWT.PUSH);
cancelButton.setText(L10N.get("PREFDG.Cancel", "Cancel"));
cancelButton.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
userResponse = null;
dialog.close();
}
});
Button restoreDefaultsButton = new Button(dialog, SWT.PUSH);
restoreDefaultsButton.setText(L10N.get("PREFDG.RestoreDefaultsButton", "Reset to Default Values"));
restoreDefaultsButton.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
restoreDefaults();
}
});
allowResearchCmds = new Button(dialog, SWT.CHECK);
allowResearchCmds.setText(L10N.get("PREFDG.Research", "Enable research commands"));
allowResearchCmds.setSelection(CogToolPref.RESEARCH.getBoolean());
allowResearchCmds.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
updateEnabled();
}
});
useKeypad = new Button(dialog, SWT.CHECK);
useKeypad.setText(L10N.get("FREFDG.UseKeypad", "Allow screen keyboard for text entry"));
useKeypad.setSelection(CogToolPref.USE_KEYPAD.getBoolean());
hcipaCheckbox = new Button(dialog, SWT.CHECK);
hcipaCheckbox.setText(L10N.get("PREFDG.HCIPA", "HCIPA"));
hcipaCheckbox.setSelection(CogToolPref.HCIPA.getBoolean());
systemWaitVisionOnlyCheckbox = new Button(dialog, SWT.CHECK);
systemWaitVisionOnlyCheckbox.setText(L10N.get("PREFDG.SYSWVO", "Mobile phone timings"));
systemWaitVisionOnlyCheckbox.setSelection(CogToolPref.SYSWVO.getBoolean());
enableComputeScriptsCheckbox = new Button(dialog, SWT.CHECK);
enableComputeScriptsCheckbox.setText(L10N.get("PREFDG.COMPSCR", "Compute scripts on XML import"));
enableComputeScriptsCheckbox.setSelection(CogToolPref.COMPSCR.getBoolean());
generateThinksOnImportCheckbox = new Button(dialog, SWT.CHECK);
generateThinksOnImportCheckbox.setText(L10N.get("PREFDG.GENSTEPS", "Generate implied Thinks on Import from XML"));
generateThinksOnImportCheckbox.setSelection(CogToolPref.GENERATE_THINKS_ON_IMPORT.getBoolean());
enableTracingCheckbox = new Button(dialog, SWT.CHECK);
enableTracingCheckbox.setText(L10N.get("PREFDG.TRACE", "Emit ACT-R Traces"));
enableTracingCheckbox.setSelection(CogToolPref.IS_TRACING.getBoolean());
enableLoggingCheckbox = new Button(dialog, SWT.CHECK);
enableLoggingCheckbox.setText(L10N.get("PREFDG.ENABLELOG", "Emit detailed log file"));
enableLoggingCheckbox.setSelection(CogToolPref.IS_LOGGING.getBoolean());
Label logDirectoryLabel = new Label(dialog, SWT.NONE);
logDirectoryLabel.setText(L10N.get("PREFDG.LogDirectory", "Log file Directory:"));
logDirectoryEntry = new ManagedText(dialog, SWT.BORDER, Keypad.FULL_KEYPAD);
String directory = CogToolPref.LOG_DIRECTORY.getString();
if (directory != null) {
logDirectoryEntry.setText(directory);
}
Button logBrowseButton = new Button(dialog, SWT.PUSH);
logBrowseButton.setText(L10N.get("PREFDG.ChooseLog", "Choose..."));
logBrowseButton.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
String dir = interaction.askUserForDirectory("Log Files", "Choose the directory into which to write log files.");
if (dir != null) {
logDirectoryEntry.setText(dir);
}
}
});
useEMMACheckbox = new Button(dialog, SWT.CHECK);
useEMMACheckbox.setText(L10N.get("PREFDG.EMMA", "Use EMMA to model vision"));
useEMMACheckbox.setSelection(CogToolPref.USE_EMMA.getBoolean());
Label actrDebugLevelLabel = new Label(dialog, SWT.NONE);
actrDebugLevelLabel.setText(L10N.get("PREFDG.DEBUGLVL", "ACT-R debug level:"));
actrDebugLevelCombo = new Combo(dialog, SWT.READ_ONLY);
actrDebugLevelCombo.add("0");
actrDebugLevelCombo.add("1");
actrDebugLevelCombo.add("2");
actrDebugLevelCombo.add("3");
actrDebugLevelCombo.select(CogToolPref.ACTR_DEBUG_LEVEL.getInt());
Label actrTimeoutLabel = new Label(dialog, SWT.NONE);
actrTimeoutLabel.setText(L10N.get("PREFDG.ACTRTIMEOUT", "ACT-R timeout:"));
actrTimeoutEntry = new IntegerEntry(dialog, SWT.BORDER);
actrTimeoutEntry.setAllowNegative(false);
actrTimeoutEntry.setValue(CogToolPref.ACTR_TIMEOUT.getInt());
Label actrTimeoutUnitsLabel = new Label(dialog, SWT.NONE);
actrTimeoutUnitsLabel.setText("msec");
alternativeParametersCheckbox = new Button(dialog, SWT.CHECK);
alternativeParametersCheckbox.setText(L10N.get("PREFDG.ALT_PARM", "Use alternative ACT-R parameters"));
alternativeParametersCheckbox.setSelection(CogToolPref.ACTR_ALTERNATIVE_PARAMETERS.getBoolean());
alternativeParametersCheckbox.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
updateEnabled();
}
});
Label visualAttentionLabel = new Label(dialog, SWT.NONE);
visualAttentionLabel.setText(L10N.get("PREFDG.VISATTN", "ACT-R Visual Attention:"));
visualAttentionEntry = new IntegerEntry(dialog, SWT.BORDER);
visualAttentionEntry.setAllowNegative(false);
visualAttentionEntry.setValue(CogToolPref.VISUAL_ATTENTION.getInt());
Label visualAttentionUnitsLabel = new Label(dialog, SWT.NONE);
visualAttentionUnitsLabel.setText(String.format("msec (default %d)", CogToolPref.VISUAL_ATTENTION.getIntDefault()));
Label motorInitiationLabel = new Label(dialog, SWT.NONE);
motorInitiationLabel.setText(L10N.get("PREFDG.MOTORINIT", "ACT-R Motor Initiation:"));
motorInitiationEntry = new IntegerEntry(dialog, SWT.BORDER);
motorInitiationEntry.setAllowNegative(false);
motorInitiationEntry.setValue(CogToolPref.MOTOR_INITIATION.getInt());
Label motorInitiationUnitsLabel = new Label(dialog, SWT.NONE);
motorInitiationUnitsLabel.setText(String.format("msec (default %d)", CogToolPref.MOTOR_INITIATION.getIntDefault()));
Label peckFittsCoeffLabel = new Label(dialog, SWT.NONE);
peckFittsCoeffLabel.setText(L10N.get("PREFDG.PECKFITTSCOEFF", "ACT-R peck Fitts coefficient:"));
peckFittsCoeffEntry = new IntegerEntry(dialog, SWT.BORDER);
peckFittsCoeffEntry.setAllowNegative(false);
peckFittsCoeffEntry.setValue(CogToolPref.PECK_FITTS_COEFF.getInt());
Label peckFittsCoeffUnitsLabel = new Label(dialog, SWT.NONE);
peckFittsCoeffUnitsLabel.setText(String.format("msec (default %d)", CogToolPref.PECK_FITTS_COEFF.getIntDefault()));
Label actrDATLabel = new Label(dialog, SWT.NONE);
actrDATLabel.setText(L10N.get("PREFDG.DAT", "ACT-R dat:"));
actrDATEntry = new IntegerEntry(dialog, SWT.BORDER);
actrDATEntry.setAllowNegative(false);
actrDATEntry.setValue(CogToolPref.ACTR_DAT.getInt());
Label actrDATUnitsLabel = new Label(dialog, SWT.NONE);
actrDATUnitsLabel.setText(String.format("msec (default %d)", CogToolPref.ACTR_DAT.getIntDefault()));
cteSuppressNoiseCheckbox = new Button(dialog, SWT.CHECK);
cteSuppressNoiseCheckbox.setText(L10N.get("PREFDG.CTE_SUPPRESS_NOISE", "Suppress noise in CogTool Explorer"));
cteSuppressNoiseCheckbox.setSelection(CogToolPref.CTE_SUPPRESS_NOISE.getBoolean());
cteSuppressNoninteractiveCheckbox = new Button(dialog, SWT.CHECK);
cteSuppressNoninteractiveCheckbox.setText(L10N.get("PREFDG.CTE_SUPPRESS_NONINTERACTIVE", "Ignore non-interactive widgets with no display or auxilliary text in CogTool Explorer"));
cteSuppressNoninteractiveCheckbox.setSelection(CogToolPref.CTE_SUPPRESS_NONINTERACTIVE.getBoolean());
cteBackButtonSemantics = new Combo(dialog, SWT.READ_ONLY);
cteBackButtonSemantics.add("Never go back");
cteBackButtonSemantics.add("Use back button to go back");
cteBackButtonSemantics.add("Go back implicitly");
cteBackButtonSemantics.select(CogToolPref.CTE_BACK_BUTTON_SEMANTICS.getInt());
Button cteBackButtonHelp = new Button(dialog, SWT.PUSH);
cteBackButtonHelp.setText("?");
cteBackButtonHelp.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
WindowUtil.presentInformationDialog(dialog, L10N.get("PREFDG.CTE_BACK_BUTTON_HELP_TITLE", "Back Button Help"), BACK_BUTTON_HELP_TEXT);
}
});
Label cteBackButtonEntryLabel = new Label(dialog, SWT.NONE);
cteBackButtonEntryLabel.setText(L10N.get("PREFDG.CTEBACKLABEL", "Back button label:"));
cteBackButtonEntry = new ManagedText(dialog, (SWT.BORDER | SWT.MULTI | SWT.LEFT), Keypad.FULL_KEYPAD);
cteBackButtonEntry.setText(CogToolPref.CTE_DEFAULT_BACK_LABEL.getString());
Label pmiGSizeLabel = new Label(dialog, SWT.NONE);
pmiGSizeLabel.setText(L10N.get("PREFDG.PMIGSIZE", "PMI-G size:"));
pmiGSizeEntry = new DoubleEntry(dialog, SWT.BORDER);
pmiGSizeEntry.setAllowNegative(false);
double pmiGSize = CogToolPref.PMI_G_SIZE.getDouble();
if (pmiGSize != CachedGoogleSimilarity.PMI_G_SIZE_AUTOMATIC) {
pmiGSizeEntry.setValue((int) pmiGSize);
}
Label converterDirectoryLabel = new Label(dialog, SWT.NONE);
converterDirectoryLabel.setText(L10N.get("PREFDG.ConverterDirectory", "Converter Directory:"));
converterDirectoryEntry = new ManagedText(dialog, SWT.BORDER, Keypad.FULL_KEYPAD);
//Set the text entry to be equal to the current specified directory
directory = CogToolPref.CONVERTER_DIRECTORY.getString();
if (directory != null) {
converterDirectoryEntry.setText(directory);
}
Button convertBrowseButton = new Button(dialog, SWT.PUSH);
convertBrowseButton.setText(L10N.get("PREFDG.ChooseConverter", "Choose..."));
convertBrowseButton.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
String dir = interaction.askUserForDirectory("Import Converter Files", "Choose the directory that contains the converter files.");
if (dir != null) {
converterDirectoryEntry.setText(dir);
}
}
});
updateEnabled();
FormData fd = new FormData();
if (OSUtils.MACOSX) {
fd.right = new FormAttachment(100, -18);
fd.bottom = new FormAttachment(100, -10);
okButton.setLayoutData(fd);
fd = new FormData();
fd.right = new FormAttachment(okButton, -8);
fd.bottom = new FormAttachment(100, -10);
cancelButton.setLayoutData(fd);
} else {
fd.left = new FormAttachment(50, -40);
fd.bottom = new FormAttachment(100, -10);
okButton.setLayoutData(fd);
fd = new FormData();
fd.left = new FormAttachment(okButton, 10);
fd.bottom = new FormAttachment(100, -10);
cancelButton.setLayoutData(fd);
}
fd = new FormData();
fd.right = new FormAttachment(cancelButton, -108);
fd.bottom = new FormAttachment(100, -10);
restoreDefaultsButton.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(0, 20);
fd.left = new FormAttachment(0, 20);
allowResearchCmds.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(allowResearchCmds, 10);
fd.left = new FormAttachment(0, 20);
fd.right = new FormAttachment(100, -20);
useKeypad.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(useKeypad, 10);
fd.left = new FormAttachment(0, 20);
hcipaCheckbox.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(hcipaCheckbox, 10);
fd.left = new FormAttachment(0, 20);
systemWaitVisionOnlyCheckbox.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(systemWaitVisionOnlyCheckbox, 15);
fd.left = new FormAttachment(systemWaitVisionOnlyCheckbox, 0, SWT.LEFT);
enableComputeScriptsCheckbox.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(enableComputeScriptsCheckbox, 15);
fd.left = new FormAttachment(enableComputeScriptsCheckbox, 0, SWT.LEFT);
generateThinksOnImportCheckbox.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(generateThinksOnImportCheckbox, 15);
fd.left = new FormAttachment(generateThinksOnImportCheckbox, 0, SWT.LEFT);
enableTracingCheckbox.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(enableTracingCheckbox, 15);
fd.left = new FormAttachment(enableTracingCheckbox, 0, SWT.LEFT);
enableLoggingCheckbox.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(enableLoggingCheckbox, 15);
fd.left = new FormAttachment(enableLoggingCheckbox, 0, SWT.LEFT);
logDirectoryLabel.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(logDirectoryLabel, 0, SWT.CENTER);
fd.left = new FormAttachment(logDirectoryLabel, 5, SWT.RIGHT);
fd.right = new FormAttachment(logDirectoryLabel, 305, SWT.RIGHT);
logDirectoryEntry.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(logDirectoryEntry, 0, SWT.CENTER);
fd.left = new FormAttachment(logDirectoryEntry, 5, SWT.RIGHT);
logBrowseButton.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(logDirectoryLabel, 15);
fd.left = new FormAttachment(logDirectoryLabel, 0, SWT.LEFT);
useEMMACheckbox.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(useEMMACheckbox, 15);
fd.left = new FormAttachment(useEMMACheckbox, 0, SWT.LEFT);
actrDebugLevelLabel.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(actrDebugLevelLabel, 0, SWT.CENTER);
fd.left = new FormAttachment(actrDebugLevelLabel, 5);
actrDebugLevelCombo.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(actrDebugLevelLabel, 18);
fd.left = new FormAttachment(actrDebugLevelLabel, 0, SWT.LEFT);
actrTimeoutLabel.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(actrTimeoutLabel, 0, SWT.CENTER);
fd.left = new FormAttachment(actrTimeoutLabel, 5);
fd.right = new FormAttachment(actrTimeoutLabel, 80, SWT.RIGHT);
actrTimeoutEntry.getOuter().setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(actrTimeoutLabel, 0, SWT.CENTER);
fd.left = new FormAttachment(actrTimeoutEntry.getOuter(), 5);
actrTimeoutUnitsLabel.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(actrTimeoutLabel, 18);
fd.left = new FormAttachment(actrTimeoutLabel, 0, SWT.LEFT);
alternativeParametersCheckbox.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(alternativeParametersCheckbox, 8);
fd.left = new FormAttachment(alternativeParametersCheckbox, 215, SWT.LEFT);
fd.right = new FormAttachment(alternativeParametersCheckbox, 265, SWT.LEFT);
visualAttentionEntry.getOuter().setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(visualAttentionEntry.getOuter(), 0, SWT.CENTER);
fd.right = new FormAttachment(visualAttentionEntry.getOuter(), -5, SWT.LEFT);
visualAttentionLabel.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(visualAttentionEntry.getOuter(), 0, SWT.CENTER);
fd.left = new FormAttachment(visualAttentionEntry.getOuter(), 5, SWT.RIGHT);
visualAttentionUnitsLabel.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(visualAttentionEntry.getOuter(), 4);
fd.left = new FormAttachment(visualAttentionEntry.getOuter(), 0, SWT.LEFT);
fd.right = new FormAttachment(visualAttentionEntry.getOuter(), 0, SWT.RIGHT);
motorInitiationEntry.getOuter().setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(motorInitiationEntry.getOuter(), 0, SWT.CENTER);
fd.right = new FormAttachment(motorInitiationEntry.getOuter(), -5, SWT.LEFT);
motorInitiationLabel.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(motorInitiationEntry.getOuter(), 0, SWT.CENTER);
fd.left = new FormAttachment(motorInitiationEntry.getOuter(), 5, SWT.RIGHT);
motorInitiationUnitsLabel.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(motorInitiationEntry.getOuter(), 4);
fd.left = new FormAttachment(motorInitiationEntry.getOuter(), 0, SWT.LEFT);
fd.right = new FormAttachment(motorInitiationEntry.getOuter(), 0, SWT.RIGHT);
peckFittsCoeffEntry.getOuter().setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(peckFittsCoeffEntry.getOuter(), 0, SWT.CENTER);
fd.right = new FormAttachment(peckFittsCoeffEntry.getOuter(), -5, SWT.LEFT);
peckFittsCoeffLabel.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(peckFittsCoeffEntry.getOuter(), 0, SWT.CENTER);
fd.left = new FormAttachment(peckFittsCoeffEntry.getOuter(), 5, SWT.RIGHT);
peckFittsCoeffUnitsLabel.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(peckFittsCoeffEntry.getOuter(), 4);
fd.left = new FormAttachment(peckFittsCoeffEntry.getOuter(), 0, SWT.LEFT);
fd.right = new FormAttachment(peckFittsCoeffEntry.getOuter(), 0, SWT.RIGHT);
actrDATEntry.getOuter().setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(actrDATEntry.getOuter(), 0, SWT.CENTER);
fd.right = new FormAttachment(actrDATEntry.getOuter(), -5, SWT.LEFT);
actrDATLabel.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(actrDATEntry.getOuter(), 0, SWT.CENTER);
fd.left = new FormAttachment(actrDATEntry.getOuter(), 5, SWT.RIGHT);
actrDATUnitsLabel.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(actrDATEntry.getOuter(), 18);
fd.left = new FormAttachment(alternativeParametersCheckbox, 0, SWT.LEFT);
cteSuppressNoiseCheckbox.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(cteSuppressNoiseCheckbox, 18);
fd.left = new FormAttachment(cteSuppressNoiseCheckbox, 0, SWT.LEFT);
fd.right = new FormAttachment(100, -35);
cteSuppressNoninteractiveCheckbox.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(cteSuppressNoninteractiveCheckbox, 18);
fd.left = new FormAttachment(cteSuppressNoninteractiveCheckbox, 0, SWT.LEFT);
cteBackButtonSemantics.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(cteBackButtonSemantics, 8);
fd.left = new FormAttachment(cteBackButtonEntryLabel, 5);
fd.right = new FormAttachment(cteBackButtonEntryLabel, 180, SWT.RIGHT);
fd.bottom = new FormAttachment(cteBackButtonSemantics, 110);
cteBackButtonEntry.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(cteBackButtonEntry, 0, SWT.CENTER);
fd.left = new FormAttachment(cteBackButtonSemantics, 30, SWT.LEFT);
cteBackButtonEntryLabel.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(cteBackButtonSemantics, 0, SWT.CENTER);
fd.left = new FormAttachment(cteBackButtonSemantics, 15, SWT.RIGHT);
cteBackButtonHelp.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(cteBackButtonEntry, 24);
fd.left = new FormAttachment(cteSuppressNoiseCheckbox, 0, SWT.LEFT);
pmiGSizeLabel.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(pmiGSizeLabel, 0, SWT.CENTER);
fd.left = new FormAttachment(pmiGSizeLabel, 5);
fd.right = new FormAttachment(pmiGSizeLabel, 140, SWT.RIGHT);
pmiGSizeEntry.getOuter().setLayoutData(fd);
fd = new FormData();
fd.left = new FormAttachment(pmiGSizeLabel, 0, SWT.LEFT);
fd.top = new FormAttachment(pmiGSizeLabel, 18);
converterDirectoryLabel.setLayoutData(fd);
fd = new FormData();
fd.left = new FormAttachment(converterDirectoryLabel, 5, SWT.RIGHT);
fd.right = new FormAttachment(converterDirectoryLabel, 305, SWT.RIGHT);
fd.top = new FormAttachment(converterDirectoryLabel, 0, SWT.CENTER);
converterDirectoryEntry.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(converterDirectoryEntry, 0, SWT.CENTER);
fd.left = new FormAttachment(converterDirectoryEntry, 5, SWT.RIGHT);
fd.right = new FormAttachment(okButton, 0, SWT.RIGHT);
fd.bottom = new FormAttachment(okButton, -30);
convertBrowseButton.setLayoutData(fd);
}
use of edu.cmu.cs.hcii.cogtool.util.IntegerEntry in project cogtool by cogtool.
the class PreferencesDialog method buildDialog.
@Override
public void buildDialog() {
FormLayout lo = new FormLayout();
lo.marginWidth = 28;
dialog.setLayout(lo);
dialog.setMinimumSize(550, 180);
Button okButton = new Button(dialog, SWT.PUSH);
okButton.setText(L10N.get("PREFDG.OK", "OK"));
dialog.setDefaultButton(okButton);
okButton.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
// TODO: updateValues() can throw IllegalStateException!
userResponse = (updateValues() ? Boolean.TRUE : null);
dialog.close();
}
});
Button cancelButton = new Button(dialog, SWT.PUSH);
cancelButton.setText(L10N.get("PREFDG.Cancel", "Cancel"));
cancelButton.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
userResponse = (researchChanged ? Boolean.TRUE : null);
dialog.close();
}
});
researchButton = new Button(dialog, SWT.PUSH);
setResearchButtonText();
researchButton.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
if (researchNewState != null) {
CogToolPref.RESEARCH.setBoolean(researchNewState);
researchNewState = null;
}
researchChanged |= ((new ResearchDialog(parent, interaction)).open() != null);
if (researchChanged) {
setResearchButtonText();
}
}
});
Button restoreDefaultsButton = new Button(dialog, SWT.PUSH);
restoreDefaultsButton.setText(L10N.get("PREFDG.RestoreDefaultsButton", "Reset to Default Values"));
restoreDefaultsButton.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
restoreDefaults();
}
});
Label minFrameWidthLabel = new Label(dialog, SWT.NONE);
minFrameWidthLabel.setText(L10N.get("PREFDG.MINFRAMEWID", "Minimum frame width:"));
minFrameWidthEntry = new IntegerEntry(dialog, SWT.BORDER);
minFrameWidthEntry.setAllowNegative(false);
minFrameWidthEntry.setValue(CogToolPref.MIN_FRAME_WIDTH.getInt());
Label minFrameWidthUnitsLabel = new Label(dialog, SWT.NONE);
minFrameWidthUnitsLabel.setText(L10N.get("PREFDG.PIXELS", "pixels"));
Label framesPerRowLabel = new Label(dialog, SWT.NONE);
framesPerRowLabel.setText(L10N.get("PREFDG.FRAMESPERROW", "Frames per row (on import):"));
framesPerRowEntry = new IntegerEntry(dialog, SWT.BORDER);
framesPerRowEntry.setAllowNegative(false);
framesPerRowEntry.setValue(CogToolPref.FRAMES_PER_ROW.getInt());
klmResultRangeCheckbox = new Button(dialog, SWT.CHECK);
klmResultRangeCheckbox.setText(L10N.get("PREFDG.KLMRESULTRANGE", "Display range of predicted skilled execution time instead of a single value"));
klmResultRangeCheckbox.setSelection(CogToolPref.KLM_RESULT_RANGE.getBoolean());
Label displayDigitsLabel = new Label(dialog, SWT.NONE);
displayDigitsLabel.setText(L10N.get("PREFDG.DISPDIG", "Number of decimal places displayed in results:"));
displayDigitsCombo = new Combo(dialog, SWT.READ_ONLY);
displayDigitsCombo.add("0");
displayDigitsCombo.add("1");
displayDigitsCombo.add("2");
displayDigitsCombo.add("3");
displayDigitsCombo.select(CogToolPref.DISPLAY_DIGITS.getInt());
FormData fd = new FormData();
Button rightMostButton;
if (OSUtils.MACOSX) {
rightMostButton = okButton;
fd.right = new FormAttachment(100, 0);
fd.bottom = new FormAttachment(100, -10);
fd.top = new FormAttachment(klmResultRangeCheckbox, 22);
okButton.setLayoutData(fd);
fd = new FormData();
fd.right = new FormAttachment(okButton, -8);
fd.bottom = new FormAttachment(100, -10);
cancelButton.setLayoutData(fd);
fd = new FormData();
fd.right = new FormAttachment(cancelButton, -28);
fd.bottom = new FormAttachment(100, -10);
researchButton.setLayoutData(fd);
} else {
rightMostButton = cancelButton;
fd.left = new FormAttachment(50, -20);
fd.bottom = new FormAttachment(100, -10);
fd.top = new FormAttachment(klmResultRangeCheckbox, 22);
okButton.setLayoutData(fd);
fd = new FormData();
fd.left = new FormAttachment(okButton, 20);
fd.bottom = new FormAttachment(100, -10);
cancelButton.setLayoutData(fd);
fd = new FormData();
fd.right = new FormAttachment(okButton, -28);
fd.bottom = new FormAttachment(100, -10);
researchButton.setLayoutData(fd);
}
fd = new FormData();
fd.right = new FormAttachment(researchButton, -28);
fd.bottom = new FormAttachment(100, -10);
restoreDefaultsButton.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(0, 20);
fd.right = new FormAttachment(100, -120);
minFrameWidthUnitsLabel.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(minFrameWidthUnitsLabel, 0, SWT.CENTER);
fd.right = new FormAttachment(minFrameWidthUnitsLabel, -5);
fd.left = new FormAttachment(minFrameWidthUnitsLabel, -60, SWT.LEFT);
minFrameWidthEntry.getOuter().setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(minFrameWidthUnitsLabel, 0, SWT.CENTER);
fd.right = new FormAttachment(minFrameWidthEntry.getOuter(), -5);
minFrameWidthLabel.setLayoutData(fd);
fd = new FormData();
fd.right = new FormAttachment(minFrameWidthEntry.getOuter(), 0, SWT.RIGHT);
fd.left = new FormAttachment(minFrameWidthEntry.getOuter(), 0, SWT.LEFT);
fd.top = new FormAttachment(minFrameWidthEntry.getOuter(), 0);
framesPerRowEntry.getOuter().setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(framesPerRowEntry, 0, SWT.CENTER);
fd.right = new FormAttachment(framesPerRowEntry.getOuter(), -5);
framesPerRowLabel.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(framesPerRowEntry.getOuter(), 5);
fd.right = new FormAttachment(framesPerRowLabel, 0, SWT.RIGHT);
displayDigitsLabel.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(displayDigitsLabel, 0, SWT.CENTER);
fd.left = new FormAttachment(displayDigitsLabel, 5);
displayDigitsCombo.setLayoutData(fd);
fd = new FormData();
fd.top = new FormAttachment(displayDigitsLabel, 10);
fd.left = new FormAttachment(displayDigitsLabel, 25, SWT.LEFT);
klmResultRangeCheckbox.setLayoutData(fd);
}
use of edu.cmu.cs.hcii.cogtool.util.IntegerEntry in project cogtool by cogtool.
the class WebCrawlImportDialog method buildDialog.
@Override
protected void buildDialog() {
dialog.setLayout(new FillLayout());
// 525, 350
dialog.setMinimumSize(485, 325);
sc1 = new ScrolledComposite(dialog, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
sc1.setLayout(new FillLayout());
comp = new Composite(sc1, SWT.NONE);
comp.setLayout(new FormLayout());
//different images needed to match the different backgrounds of the dialog box
questionImage = GraphicsUtil.getImageFromResource("edu/cmu/cs/hcii/cogtool/resources/question_button.jpg");
questionImageMac = GraphicsUtil.getImageFromResource("edu/cmu/cs/hcii/cogtool/resources/question_button_mac.jpg");
questionImageMacShadow = GraphicsUtil.getImageFromResource("edu/cmu/cs/hcii/cogtool/resources/question_button_shadow.jpg");
imagePlus = GraphicsUtil.getImageFromResource("edu/cmu/cs/hcii/cogtool/resources/plus_sign.jpg");
imagePlusMac = GraphicsUtil.getImageFromResource("edu/cmu/cs/hcii/cogtool/resources/plus_sign_mac.jpg");
imagePlusMacDisabled = GraphicsUtil.getImageFromResource("edu/cmu/cs/hcii/cogtool/resources/plus_sign_mac_disabled.jpg");
imageMinus = GraphicsUtil.getImageFromResource("edu/cmu/cs/hcii/cogtool/resources/minus_sign.jpg");
imageMinusMac = GraphicsUtil.getImageFromResource("edu/cmu/cs/hcii/cogtool/resources/minus_sign_mac.jpg");
imageMinusMacDisabled = GraphicsUtil.getImageFromResource("edu/cmu/cs/hcii/cogtool/resources/minus_sign_mac_disabled.jpg");
Label dialogTitle = new Label(comp, SWT.NONE);
dialogTitle.setText(IMPORT_WEB_CRAWL_TITLE);
dialogTitle.setFont(TITLE_FONT);
Label intoDesignLbl = new Label(comp, SWT.NONE);
intoDesignLbl.setText(INTO_DESIGN_LABEL);
designCombo = new ComboWithEnableFix(comp, SWT.DROP_DOWN | SWT.READ_ONLY);
designCombo.add(CREATE_NEW_DESIGN);
Iterator<Design> designs = project.getDesigns().iterator();
while (designs.hasNext()) {
Design design = designs.next();
designCombo.add(SWTStringUtil.insertEllipsis(design.getName(), StringUtil.EQUAL, designCombo.getFont()));
// TODO: We'll need to observe Design name changes if
// it ever becomes possible to change a design name other than
// through the Project editor -- remember to remove the handler
// when this dialog box gets disposed!
}
designCombo.select(0);
designCombo.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent evt) {
String selectedName = designCombo.getText();
Design design = project.getDesign(selectedName);
if (design != null) {
if (sameURLGroup == null) {
buildSameURLGroup();
}
//insert the name of the selected Design into the Group Label
int index = SAME_URL_GROUP.indexOf("Design") + 6;
String titleGroup = SAME_URL_GROUP.substring(0, index);
titleGroup += " (" + design.getName() + ")";
titleGroup += SAME_URL_GROUP.substring(index);
sameURLGroup.setText(titleGroup);
displaySameURLGroup(true);
} else if (sameURLGroup != null) {
displaySameURLGroup(false);
}
repaint();
}
});
designCombo.addTraverseListener(new TraverseListener() {
public void keyTraversed(TraverseEvent evt) {
if (evt.detail == SWT.TRAVERSE_TAB_NEXT) {
evt.detail = SWT.TRAVERSE_NONE;
urlText.forceFocus();
}
}
});
useSelectionGroup = new Group(comp, SWT.SHADOW_NONE);
useSelectionGroup.setText(URL_SELECTION_GROUP);
useSelectionGroup.setLayout(new FormLayout());
typeHTMLGroup = new Group(useSelectionGroup, SWT.SHADOW_NONE);
typeHTMLGroup.setText("Starting URL #1");
typeHTMLGroup.setLayout(new FormLayout());
urlText = new TextWithEnableFix(typeHTMLGroup, SWT.BORDER | SWT.SINGLE);
urlText.setText("http://");
urlText.addTraverseListener(new TraverseListener() {
public void keyTraversed(TraverseEvent e) {
if (e.detail == SWT.TRAVERSE_TAB_PREVIOUS) {
e.detail = SWT.TRAVERSE_NONE;
designCombo.forceFocus();
}
}
});
addGroupListener = new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent evt) {
if (numOfGroups == 1) {
if (urlText2 == null) {
buildSecondGroup();
}
displaySecondGroup(true);
FormData formData = new FormData();
formData.top = new FormAttachment(typeHTMLGroup, 5, SWT.BOTTOM);
formData.left = new FormAttachment(typeHTMLGroup, 0, SWT.LEFT);
formData.right = new FormAttachment(100, -6);
typeHTMLGroup2.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(typeHTMLGroup2, 5, SWT.TOP);
formData.left = new FormAttachment(urlText, 0, SWT.LEFT);
formData.right = new FormAttachment(urlText, 350, SWT.LEFT);
urlText2.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(urlText2, 1, SWT.TOP);
formData.left = new FormAttachment(urlText2, 5, SWT.RIGHT);
plusButton2.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(plusButton2, 5, SWT.TOP);
formData.left = new FormAttachment(plusButton2, 10, SWT.RIGHT);
minusButton2.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(urlText2, 5, SWT.BOTTOM);
formData.left = new FormAttachment(urlText2, 10, SWT.LEFT);
maximumDepthToCrawlLabel2.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(maximumDepthToCrawlLabel2, 0, SWT.TOP);
formData.left = new FormAttachment(maximumDepthToCrawlLabel2, 3, SWT.RIGHT);
questionMarkButtonDepth2.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(maximumDepthToCrawlLabel2, 0, SWT.TOP);
formData.left = new FormAttachment(questionMarkButtonDepth2, 10, SWT.RIGHT);
maxDepthCombo2.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(maximumDepthToCrawlLabel2, 15, SWT.BOTTOM);
formData.left = new FormAttachment(urlText2, 10, SWT.LEFT);
restrictDomainLabel2.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(restrictDomainLabel2, 0, SWT.TOP);
formData.left = new FormAttachment(restrictDomainLabel2, 3, SWT.RIGHT);
questionMarkButtonDomain2.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(restrictDomainLabel2, 10, SWT.BOTTOM);
formData.left = new FormAttachment(0, 25);
useHTML4.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(useHTML4, 0, SWT.TOP);
formData.left = new FormAttachment(useHTML4, 0, SWT.RIGHT);
urlPath4.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(useHTML4, 8, SWT.BOTTOM);
formData.left = new FormAttachment(useHTML4, 0, SWT.LEFT);
useHTML5.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(useHTML5, 0, SWT.TOP);
formData.left = new FormAttachment(useHTML5, 0, SWT.RIGHT);
urlPath5.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(useHTML5, 8, SWT.BOTTOM);
formData.left = new FormAttachment(useHTML5, 0, SWT.LEFT);
useHTML6.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(useHTML6, 0, SWT.TOP);
formData.left = new FormAttachment(useHTML6, 0, SWT.RIGHT);
urlPath6.setLayoutData(formData);
formData = new FormData();
formData.left = new FormAttachment(urlPath6, 0, SWT.RIGHT);
formData.top = new FormAttachment(urlPath6, 0, SWT.TOP);
urlPath6b.setLayoutData(formData);
minusButton.setEnabled(true);
if (OSUtils.MACOSX) {
minusButton.getItem(0).setImage(imageMinusMac);
}
numOfGroups++;
repaint();
} else if (numOfGroups == 2) {
if (urlText3 == null) {
buildThirdGroup();
}
displayThirdGroup(true);
FormData formData = new FormData();
formData.top = new FormAttachment(typeHTMLGroup2, 5, SWT.BOTTOM);
formData.left = new FormAttachment(typeHTMLGroup2, 0, SWT.LEFT);
formData.right = new FormAttachment(100, -6);
typeHTMLGroup3.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(typeHTMLGroup3, 5, SWT.TOP);
formData.left = new FormAttachment(urlText2, 0, SWT.LEFT);
formData.right = new FormAttachment(urlText2, 350, SWT.LEFT);
urlText3.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(urlText3, 1, SWT.TOP);
formData.left = new FormAttachment(urlText3, 5, SWT.RIGHT);
plusButton3.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(plusButton3, 4, SWT.TOP);
formData.left = new FormAttachment(plusButton3, 10, SWT.RIGHT);
minusButton3.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(urlText3, 5, SWT.BOTTOM);
formData.left = new FormAttachment(urlText3, 10, SWT.LEFT);
maximumDepthToCrawlLabel3.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(maximumDepthToCrawlLabel3, 0, SWT.TOP);
formData.left = new FormAttachment(maximumDepthToCrawlLabel3, 3, SWT.RIGHT);
questionMarkButtonDepth3.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(maximumDepthToCrawlLabel3, 0, SWT.TOP);
formData.left = new FormAttachment(questionMarkButtonDepth3, 10, SWT.RIGHT);
maxDepthCombo3.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(maximumDepthToCrawlLabel3, 15, SWT.BOTTOM);
formData.left = new FormAttachment(urlText3, 10, SWT.LEFT);
restrictDomainLabel3.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(restrictDomainLabel3, 0, SWT.TOP);
formData.left = new FormAttachment(restrictDomainLabel3, 3, SWT.RIGHT);
questionMarkButtonDomain3.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(restrictDomainLabel3, 10, SWT.BOTTOM);
formData.left = new FormAttachment(0, 25);
useHTML7.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(useHTML7, 0, SWT.TOP);
formData.left = new FormAttachment(useHTML7, 0, SWT.RIGHT);
urlPath7.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(useHTML7, 8, SWT.BOTTOM);
formData.left = new FormAttachment(useHTML7, 0, SWT.LEFT);
useHTML8.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(useHTML8, 0, SWT.TOP);
formData.left = new FormAttachment(useHTML8, 0, SWT.RIGHT);
urlPath8.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(useHTML8, 8, SWT.BOTTOM);
formData.left = new FormAttachment(useHTML8, 0, SWT.LEFT);
useHTML9.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(useHTML9, 0, SWT.TOP);
formData.left = new FormAttachment(useHTML9, 0, SWT.RIGHT);
urlPath9.setLayoutData(formData);
formData = new FormData();
formData.left = new FormAttachment(urlPath9, 0, SWT.RIGHT);
formData.top = new FormAttachment(urlPath9, 0, SWT.TOP);
urlPath9b.setLayoutData(formData);
numOfGroups++;
repaint();
}
}
};
minusGroupListener1 = new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent evt) {
if (numOfGroups > 1) {
moveGroupTwoToOne();
minusGroupTwo();
}
}
};
plusButton = makeToolBarButton(typeHTMLGroup, addGroupListener, questionImages.PLUS_IMAGE);
minusButton = makeToolBarButton(typeHTMLGroup, minusGroupListener1, questionImages.MINUS_IMAGE);
minusButton.setEnabled(false);
if (OSUtils.MACOSX) {
minusButton.getItem(0).setImage(imageMinusMacDisabled);
}
maximumDepthToCrawlLabel = new Label(typeHTMLGroup, SWT.NONE);
maximumDepthToCrawlLabel.setText("Maximum Depth To Crawl: ");
depthListener = new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent evt) {
messageBox("Select 0 to import only the page at the URL you entered.\n" + "Select 1 to import that page and all pages a user could " + "get to by clicking one link.\n" + "Select 2 to import that page and all pages a user could " + "get to by clicking two links.\n" + "Etc.\n" + "Select Unlimited to allow any page accessible from the " + "URL you entered, no matter how many links need to be " + "clicked to get there. However, to avoid importing the " + "entire Web, consider restricting the domain or entering " + "a maximum number of pages to import.", SWT.ICON_INFORMATION);
}
};
questionMarkButtonDepth = makeToolBarButton(typeHTMLGroup, depthListener, questionImages.QUESTION_SHADOW);
maxDepthCombo = new ComboWithEnableFix(typeHTMLGroup, SWT.DROP_DOWN | SWT.READ_ONLY);
maxDepthCombo.add("Unlimited");
for (int i = 0; i < 100; i++) {
maxDepthCombo.add("" + i);
}
maxDepthCombo.select(2);
maxDepthCombo.setVisibleItemCount(21);
maximumDepth = 1;
maximumDepth2 = 1;
maximumDepth3 = 1;
comboListener = new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent evt) {
maximumDepth = Integer.MAX_VALUE;
if (!maxDepthCombo.getText().equals("Unlimited")) {
maximumDepth = Integer.parseInt(maxDepthCombo.getText());
}
if ((maxDepthCombo2 != null) && (maxDepthCombo2.getVisible())) {
maximumDepth2 = Integer.MAX_VALUE;
if (!maxDepthCombo2.getText().equals("Unlimited")) {
maximumDepth2 = Integer.parseInt(maxDepthCombo2.getText());
}
}
if ((maxDepthCombo3 != null) && (maxDepthCombo3.getVisible())) {
maximumDepth3 = Integer.MAX_VALUE;
if (!maxDepthCombo3.getText().equals("Unlimited")) {
maximumDepth3 = Integer.parseInt(maxDepthCombo3.getText());
}
}
}
};
maxDepthCombo.addSelectionListener(comboListener);
restrictDomainLabel = new Label(typeHTMLGroup, SWT.NONE);
restrictDomainLabel.setText("Restrict Domain: ");
domainHelpListener = new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent evt) {
messageBox("Select Unlimited to import any pages that could be reached " + "from the URL entered above. " + "The radio buttons reflect the host name and path name of the URL " + "entered above. Select a more restrictive radio button to only import " + "pages whose URL begins as shown.\n\n" + "It is useful to restrict the domain when you want to evaluate a " + "particular site, but that site points out to other places on the Web.", SWT.ICON_INFORMATION);
}
};
questionMarkButtonDomain = makeToolBarButton(typeHTMLGroup, domainHelpListener, questionImages.QUESTION_SHADOW);
questionMarkButtonDomain.addTraverseListener(new TraverseListener() {
public void keyTraversed(TraverseEvent e) {
if (e.detail == SWT.TRAVERSE_TAB_NEXT) {
if (numOfGroups > 1) {
e.detail = SWT.TRAVERSE_NONE;
urlText2.forceFocus();
}
}
}
});
minusGroupListener2 = new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent evt) {
minusGroupTwo();
}
};
minusGroupListener3 = new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent evt) {
numOfGroups--;
displayThirdGroup(false);
repaint();
}
};
useHTML1 = new Button(typeHTMLGroup, SWT.RADIO);
useHTML1.setSelection(true);
domainListener = new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent evt) {
if (useHTML1.getSelection()) {
restrictedDomain = "Unrestricted ";
} else if (useHTML2.getSelection()) {
restrictedDomain = urlPath2.getText();
} else {
restrictedDomain = urlPath3.getText();
}
if ((useHTML4 != null) && (useHTML4.getSelection())) {
restrictedDomain2 = "Unrestricted ";
} else if ((useHTML5 != null) && (useHTML5.getSelection())) {
restrictedDomain2 = urlPath5.getText();
} else if (useHTML6 != null) {
restrictedDomain2 = urlPath6.getText();
}
if ((useHTML7 != null) && (useHTML7.getSelection())) {
restrictedDomain3 = "Unrestricted ";
} else if ((useHTML8 != null) && (useHTML8.getSelection())) {
restrictedDomain3 = urlPath8.getText();
} else if (useHTML9 != null) {
restrictedDomain3 = urlPath9.getText();
}
}
};
useHTML1.addSelectionListener(domainListener);
useHTML1.setSelection(true);
useHTML2 = new Button(typeHTMLGroup, SWT.RADIO);
useHTML2.addSelectionListener(domainListener);
useHTML2.setEnabled(false);
useHTML3 = new Button(typeHTMLGroup, SWT.RADIO);
useHTML3.addSelectionListener(domainListener);
useHTML3.setEnabled(false);
urlPath1 = new Label(typeHTMLGroup, SWT.NONE);
urlPath1.setText("Unrestricted");
urlPath2 = new Label(typeHTMLGroup, SWT.NONE);
urlPath2.setText("http://www.host_name/");
urlPath2.setFont(URL_PATH_FONT);
urlPath3 = new Label(typeHTMLGroup, SWT.NONE);
urlPath3.setText("http://www.host_name/path");
urlPath3.setFont(URL_PATH_FONT);
urlPath3b = new Label(typeHTMLGroup, SWT.NONE);
urlPath3b.setText("path");
urlPath3b.setFont(URL_PATH_FONT);
urlPath3b.setVisible(false);
urlText.addFocusListener(new TextFocusListener(urlText, urlPath2, urlPath3, useHTML1, useHTML2, useHTML3, 1));
capturePageImagesOption = new Button(comp, SWT.CHECK);
capturePageImagesOption.setText(CAPTURE_IMAGES_LABEL);
capturePageImagesOption.setSelection(capturePageImages);
SelectionListener imageListener = new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent evt) {
messageBox("Check this box to set a picture of each page as the background of " + "its frame. The picture will be the size of the browser width and " + "height set below, so it will not be of the entire page if the user " + "would have to scroll to see it all.\n\n" + "It is useful to capture pictures to convey the look of the site in " + "presentations, but CogTool predictions will not be affected by " + "having a picture or not. Having pictures increases the size of " + "CogTool project files and having many of them may slow down interaction.", SWT.ICON_INFORMATION);
}
};
questionMarkButtonCaptureImage = makeToolBarButton(comp, imageListener, questionImages.QUESTION_IMAGE);
maxPagesToImport = new IntegerEntry(comp, SWT.BORDER);
maxPagesToImport.setAllowNegative(false);
maxPagesToImport.setText(USE_SYSTEM_DEFAULT_VALUE);
maxPagesToImport.setText("500");
maxPagesToImport.addFocusListener(new ManageSystemDefault(maxPagesToImport, 500, Integer.MAX_VALUE));
maxPagesLabel = new Label(comp, SWT.NONE);
maxPagesLabel.setText(MAX_PAGES_LABEL);
SelectionListener pagesListener = new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent evt) {
messageBox("Use this field to limit the number of pages imported into a design. " + "It is especially important to use a reasonable maximum when you have " + "not restricted the domain and have specified a maximum depth greater " + "than 2. " + "The default, 500 pages, is sufficient for most projects, but leave " + "the field empty to have no restriction at all", SWT.ICON_INFORMATION);
}
};
questionMarkButtonMaxPages = makeToolBarButton(comp, pagesListener, questionImages.QUESTION_IMAGE);
Label browserWidthLbl = new Label(comp, SWT.NONE);
browserWidthLbl.setText(BROWSER_WIDTH_LABEL);
Label browserHeightLbl = new Label(comp, SWT.NONE);
browserHeightLbl.setText(BROWSER_HEIGHT_LABEL);
browserWidthEntry = new IntegerEntry(comp, SWT.BORDER);
browserWidthEntry.setAllowNegative(false);
browserWidthEntry.setText(USE_SYSTEM_DEFAULT_VALUE);
browserWidthEntry.setText("900");
browserWidthEntry.addFocusListener(new ManageSystemDefault(browserWidthEntry, 900, 2100));
browserHeightEntry = new IntegerEntry(comp, SWT.BORDER);
browserHeightEntry.setAllowNegative(false);
browserHeightEntry.setText(USE_SYSTEM_DEFAULT_VALUE);
browserHeightEntry.setText("600");
browserHeightEntry.addFocusListener(new ManageSystemDefault(browserHeightEntry, 600, 1200));
okButton = new Button(comp, SWT.PUSH);
okButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseUp(MouseEvent evt) {
wasEditing = null;
}
});
okButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent evt) {
Text textBox = null;
String text = null;
String errorText = "";
int count = 1;
boolean proceed = false;
isValidURL = false;
isValidURL2 = false;
isValidURL3 = false;
HashMap<Integer, String> errorMap = new HashMap<Integer, String>();
errorMap.put(SITE_VALID, "");
errorMap.put(SITE_INVALID, "The given URL for URL #");
errorMap.put(SITE_BAD_EXTENSION, "The given extension for URL # ");
errorMap.put(SITE_EXCEPTION, "");
/*
* The while loop checks all three of the given URLs, the loop
* breaks if the user has not entered up to 3 urls
*/
boolean exception = false;
while (count < 4) {
textBox = null;
proceed = false;
if (count == 1) {
/*
* Trim is needed to ensure all leading and trailing
* spaces are eliminated. checkProtocol(text, boolean)
* checks to make sure that there is valid protocol
*/
textBox = urlText;
text = urlText.getText().trim();
proceed = checkProtocol(text, true);
} else if (count == 2) {
if (numOfGroups > 1) {
textBox = urlText2;
text = textBox.getText().trim();
proceed = checkProtocol(text, true);
} else {
break;
}
} else if (count == 3) {
if (numOfGroups > 2) {
textBox = urlText3;
text = textBox.getText().trim();
proceed = checkProtocol(text, true);
} else {
break;
}
}
/* There was not a valid protocol at the
* first try so now append http:// at the beginning so there
* will be a valid protocol. For example, if the user enters
* www.cmu.edu, http:// is appended here because a protocol
* is needed to check to see if the url is valid.
*/
if (!proceed) {
try {
proceed = checkProtocol(URLCrawlEntry.ensureAbsolute(text), true);
if (proceed) {
textBox.setText("http://" + text);
}
} catch (Exception ex) {
}
}
if (proceed) {
String givenURL = textBox.getText().trim();
if ("".equals(givenURL)) {
textBox.setText(USE_SYSTEM_DEFAULT_VALUE);
textBox.setForeground(DISABLED_TEXT_COLOR);
}
String st = givenURL.substring(givenURL.indexOf("//") + 2);
if (!givenURL.startsWith("file:")) {
int exist = exists(givenURL);
for (int pow = 3; pow >= 0; pow--) {
int getError = (int) Math.pow(2, pow);
if (exist >= getError) {
errorText += errorMap.get(getError);
if (getError == SITE_VALID) {
validURLS(count);
} else if (getError == SITE_INVALID) {
errorText += count + " is not a valid URL.\n";
} else if (getError == SITE_BAD_EXTENSION) {
errorText += count + " is not valid.\n";
} else if (getError == SITE_EXCEPTION) {
exception = true;
}
exist -= getError;
}
}
/*
* if(exist == SITE_VALID){
* System.out.println("it exists");
* validURLS(count); }
*
* else if(exist == SITE_INVALID){ errorText+=
* "The given URL caught for URL #" + count+
* " is not a valid URL."; } else
* if(exist==SITE_EXCEPTION) { errorText+=
* "There may be no internet connectivity at the moment."
* ; }
*/
}
} else {
errorText += "The given URL for URL #" + count + " must start with either \"http://\", \"https://\", or \"file://\".\n";
}
count++;
}
if (exception) {
errorText += "There may be no internet connectivity at the moment.\n";
}
if (!errorText.equals("")) {
boolean tryAgain = messageBox(errorText, SWT.ICON_ERROR);
if (tryAgain) {
if (!isValidURL) {
urlText.forceFocus();
} else if (!isValidURL2) {
urlText2.forceFocus();
} else {
urlText3.forceFocus();
}
}
} else {
saveSettings();
userResponse = OK;
dialog.close();
}
}
});
cancelButton = new Button(comp, SWT.PUSH);
cancelButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent evt) {
userResponse = CANCEL;
dialog.close();
}
});
if (buttonFont != null) {
okButton.setFont(buttonFont);
cancelButton.setFont(buttonFont);
}
okButton.setText(L10N.get("B.OK", "OK"));
cancelButton.setText(L10N.get("B.CANCEL", "Cancel"));
dialog.setDefaultButton(okButton);
FormData formData = new FormData();
formData.left = new FormAttachment(0, 5);
formData.top = new FormAttachment(0, 5);
dialogTitle.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(dialogTitle, 20, SWT.BOTTOM);
formData.left = new FormAttachment(0, 100);
intoDesignLbl.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(intoDesignLbl, 0, SWT.CENTER);
formData.left = new FormAttachment(intoDesignLbl, 5, SWT.RIGHT);
designCombo.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(intoDesignLbl, 13, SWT.BOTTOM);
formData.left = new FormAttachment(0, 6);
formData.right = new FormAttachment(100, -6);
useSelectionGroup.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(0, 3);
formData.left = new FormAttachment(0, 3);
formData.right = new FormAttachment(100, -3);
typeHTMLGroup.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(typeHTMLGroup, 10, SWT.BOTTOM);
formData.left = new FormAttachment(typeHTMLGroup, 0, SWT.LEFT);
formData.right = new FormAttachment(typeHTMLGroup, 350, SWT.LEFT);
urlText.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(urlText, 1, SWT.TOP);
formData.left = new FormAttachment(urlText, 5, SWT.RIGHT);
plusButton.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(plusButton, 5, SWT.TOP);
formData.left = new FormAttachment(plusButton, 10, SWT.RIGHT);
minusButton.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(urlText, 5, SWT.BOTTOM);
formData.left = new FormAttachment(urlText, 10, SWT.LEFT);
maximumDepthToCrawlLabel.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(maximumDepthToCrawlLabel, 0, SWT.TOP);
formData.left = new FormAttachment(maximumDepthToCrawlLabel, 3, SWT.RIGHT);
questionMarkButtonDepth.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(maximumDepthToCrawlLabel, 0, SWT.TOP);
formData.left = new FormAttachment(questionMarkButtonDepth, 10, SWT.RIGHT);
maxDepthCombo.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(maximumDepthToCrawlLabel, 15, SWT.BOTTOM);
formData.left = new FormAttachment(urlText, 10, SWT.LEFT);
restrictDomainLabel.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(restrictDomainLabel, 0, SWT.TOP);
formData.left = new FormAttachment(restrictDomainLabel, 3, SWT.RIGHT);
questionMarkButtonDomain.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(restrictDomainLabel, 10, SWT.BOTTOM);
formData.left = new FormAttachment(0, 25);
useHTML1.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(useHTML1, 0, SWT.TOP);
formData.left = new FormAttachment(useHTML1, 0, SWT.RIGHT);
urlPath1.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(useHTML1, 8, SWT.BOTTOM);
formData.left = new FormAttachment(useHTML1, 0, SWT.LEFT);
useHTML2.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(useHTML2, 0, SWT.TOP);
formData.left = new FormAttachment(useHTML2, 0, SWT.RIGHT);
urlPath2.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(useHTML2, 8, SWT.BOTTOM);
formData.left = new FormAttachment(useHTML2, 0, SWT.LEFT);
useHTML3.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(useHTML3, 0, SWT.TOP);
formData.left = new FormAttachment(useHTML3, 0, SWT.RIGHT);
urlPath3.setLayoutData(formData);
formData = new FormData();
formData.left = new FormAttachment(urlPath3, 0, SWT.RIGHT);
formData.top = new FormAttachment(urlPath3, 0, SWT.TOP);
urlPath3b.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(useSelectionGroup, 7, SWT.BOTTOM);
formData.left = new FormAttachment(maxPagesLabel, 0, SWT.LEFT);
capturePageImagesOption.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(capturePageImagesOption, 0, SWT.TOP);
formData.left = new FormAttachment(capturePageImagesOption, 3, SWT.RIGHT);
questionMarkButtonCaptureImage.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(capturePageImagesOption, 15, SWT.BOTTOM);
formData.right = new FormAttachment(intoDesignLbl, 0, SWT.RIGHT);
maxPagesLabel.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(maxPagesLabel, 0, SWT.CENTER);
formData.left = new FormAttachment(maxPagesLabel, 5, SWT.RIGHT);
formData.right = new FormAttachment(maxPagesLabel, 140, SWT.RIGHT);
maxPagesToImport.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(maxPagesToImport, 0, SWT.TOP);
formData.left = new FormAttachment(maxPagesToImport, 3, SWT.RIGHT);
questionMarkButtonMaxPages.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(maxPagesLabel, 11, SWT.BOTTOM);
formData.right = new FormAttachment(maxPagesLabel, 0, SWT.RIGHT);
browserWidthLbl.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(browserWidthLbl, 0, SWT.CENTER);
formData.left = new FormAttachment(browserWidthLbl, 5, SWT.RIGHT);
formData.right = new FormAttachment(browserWidthLbl, 140, SWT.RIGHT);
browserWidthEntry.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(browserWidthLbl, 11, SWT.BOTTOM);
formData.right = new FormAttachment(browserWidthLbl, 0, SWT.RIGHT);
browserHeightLbl.setLayoutData(formData);
formData = new FormData();
formData.top = new FormAttachment(browserHeightLbl, 0, SWT.CENTER);
formData.left = new FormAttachment(browserHeightLbl, 5, SWT.RIGHT);
formData.right = new FormAttachment(browserHeightLbl, 140, SWT.RIGHT);
browserHeightEntry.setLayoutData(formData);
Composite spacer = new Composite(comp, SWT.NONE);
formData = new FormData();
formData.top = new FormAttachment(browserHeightEntry, 13, SWT.BOTTOM);
formData.bottom = new FormAttachment(okButton, 0, SWT.TOP);
spacer.setLayoutData(formData);
formData = new FormData();
formData.right = new FormAttachment(100, -13);
formData.bottom = new FormAttachment(100, -13);
formData.left = new FormAttachment(100, -95);
formData.top = new FormAttachment(browserHeightEntry, 10, SWT.BOTTOM);
Button other;
if (OSUtils.MACOSX) {
okButton.setLayoutData(formData);
other = okButton;
} else {
cancelButton.setLayoutData(formData);
other = cancelButton;
}
formData = new FormData();
formData.right = new FormAttachment(other, -13, SWT.LEFT);
formData.bottom = new FormAttachment(100, -13);
formData.left = new FormAttachment(other, -95, SWT.LEFT);
formData.top = new FormAttachment(browserHeightEntry, 10, SWT.BOTTOM);
if (OSUtils.MACOSX) {
cancelButton.setLayoutData(formData);
} else {
okButton.setLayoutData(formData);
}
sc1.setContent(comp);
sc1.layout();
// dialog.pack();
repaint();
}
Aggregations