Search in sources :

Example 1 with IntegerEntry

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);
}
Also used : FormLayout(org.eclipse.swt.layout.FormLayout) FormData(org.eclipse.swt.layout.FormData) Listener(org.eclipse.swt.widgets.Listener) Label(org.eclipse.swt.widgets.Label) Combo(org.eclipse.swt.widgets.Combo) DoubleEntry(edu.cmu.cs.hcii.cogtool.util.DoubleEntry) Button(org.eclipse.swt.widgets.Button) ManagedText(edu.cmu.cs.hcii.cogtool.util.ManagedText) Event(org.eclipse.swt.widgets.Event) FormAttachment(org.eclipse.swt.layout.FormAttachment) IntegerEntry(edu.cmu.cs.hcii.cogtool.util.IntegerEntry)

Example 2 with IntegerEntry

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);
}
Also used : FormLayout(org.eclipse.swt.layout.FormLayout) FormData(org.eclipse.swt.layout.FormData) Listener(org.eclipse.swt.widgets.Listener) Button(org.eclipse.swt.widgets.Button) Label(org.eclipse.swt.widgets.Label) Event(org.eclipse.swt.widgets.Event) Combo(org.eclipse.swt.widgets.Combo) FormAttachment(org.eclipse.swt.layout.FormAttachment) IntegerEntry(edu.cmu.cs.hcii.cogtool.util.IntegerEntry)

Example 3 with IntegerEntry

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();
}
Also used : Group(org.eclipse.swt.widgets.Group) TraverseEvent(org.eclipse.swt.events.TraverseEvent) HashMap(java.util.HashMap) Label(org.eclipse.swt.widgets.Label) Design(edu.cmu.cs.hcii.cogtool.model.Design) Button(org.eclipse.swt.widgets.Button) TextWithEnableFix(edu.cmu.cs.hcii.cogtool.util.TextWithEnableFix) SelectionEvent(org.eclipse.swt.events.SelectionEvent) ScrolledComposite(org.eclipse.swt.custom.ScrolledComposite) ComboWithEnableFix(edu.cmu.cs.hcii.cogtool.util.ComboWithEnableFix) FormAttachment(org.eclipse.swt.layout.FormAttachment) IntegerEntry(edu.cmu.cs.hcii.cogtool.util.IntegerEntry) FormLayout(org.eclipse.swt.layout.FormLayout) FormData(org.eclipse.swt.layout.FormData) MouseEvent(org.eclipse.swt.events.MouseEvent) Composite(org.eclipse.swt.widgets.Composite) ScrolledComposite(org.eclipse.swt.custom.ScrolledComposite) TraverseListener(org.eclipse.swt.events.TraverseListener) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) MouseAdapter(org.eclipse.swt.events.MouseAdapter) Text(org.eclipse.swt.widgets.Text) FillLayout(org.eclipse.swt.layout.FillLayout) Point(org.eclipse.swt.graphics.Point) MalformedURLException(java.net.MalformedURLException) IOException(java.io.IOException) UnknownHostException(java.net.UnknownHostException) SelectionListener(org.eclipse.swt.events.SelectionListener)

Aggregations

IntegerEntry (edu.cmu.cs.hcii.cogtool.util.IntegerEntry)3 FormAttachment (org.eclipse.swt.layout.FormAttachment)3 FormData (org.eclipse.swt.layout.FormData)3 FormLayout (org.eclipse.swt.layout.FormLayout)3 Button (org.eclipse.swt.widgets.Button)3 Label (org.eclipse.swt.widgets.Label)3 Combo (org.eclipse.swt.widgets.Combo)2 Event (org.eclipse.swt.widgets.Event)2 Listener (org.eclipse.swt.widgets.Listener)2 Design (edu.cmu.cs.hcii.cogtool.model.Design)1 ComboWithEnableFix (edu.cmu.cs.hcii.cogtool.util.ComboWithEnableFix)1 DoubleEntry (edu.cmu.cs.hcii.cogtool.util.DoubleEntry)1 ManagedText (edu.cmu.cs.hcii.cogtool.util.ManagedText)1 TextWithEnableFix (edu.cmu.cs.hcii.cogtool.util.TextWithEnableFix)1 IOException (java.io.IOException)1 MalformedURLException (java.net.MalformedURLException)1 UnknownHostException (java.net.UnknownHostException)1 HashMap (java.util.HashMap)1 ScrolledComposite (org.eclipse.swt.custom.ScrolledComposite)1 MouseAdapter (org.eclipse.swt.events.MouseAdapter)1