Search in sources :

Example 1 with Text

use of org.eclipse.swt.widgets.Text in project cogtool by cogtool.

the class ProjectUI method commitRenameTask.

// initiateTaskRename
/**
     * Reports a task renaming to the controller.
     * @param item
     */
protected boolean commitRenameTask(boolean activeCommit) {
    boolean success = true;
    if (editor.getEditor() != null) {
        Text text = (Text) editor.getEditor();
        String newName = text.getText();
        TreeItem item = editor.getItem();
        // Get task & parent taskgroup from item, don't use this.selection!
        AUndertaking taskToRename = (AUndertaking) item.getData();
        TreeItem parentItem = item.getParentItem();
        TaskGroup parentGroup = (TaskGroup) ((parentItem != null) ? parentItem.getData() : null);
        cleanupTaskEditor();
        success = performAction((CogToolPref.HCIPA.getBoolean()) ? ProjectLID.HCIPARenameTask : ProjectLID.RenameTask, new ProjectUI.TaskRenameEvent(taskToRename, newName, parentGroup), false);
        if (activeCommit) {
            renameTaskItem = null;
        }
    }
    return success;
}
Also used : TreeItem(org.eclipse.swt.widgets.TreeItem) AUndertaking(edu.cmu.cs.hcii.cogtool.model.AUndertaking) Text(org.eclipse.swt.widgets.Text) ManagedText(edu.cmu.cs.hcii.cogtool.util.ManagedText) TaskGroup(edu.cmu.cs.hcii.cogtool.model.TaskGroup)

Example 2 with Text

use of org.eclipse.swt.widgets.Text in project cogtool by cogtool.

the class FrameEditorUI method setViewEnabledState.

/**
     * Enables or disables LIDs as appropriate
     * @param sel the selection state on which to base enabling/disabling
     * @param availability NORMAL or CONTEXT
     * @see ListenerIdentifierMap
     */
protected void setViewEnabledState(FrameEditorSelectionState sel, Boolean availability) {
    String label = "";
    int widgetCount = sel.getWidgetSelectionCount();
    int elementCount = sel.getElementSelectionCount();
    IWidget selectedWidget = null;
    FrameElement selectedElement = null;
    if ((widgetCount > 0) || (elementCount > 0)) {
        if (widgetCount == 1) {
            label = " " + WIDGET_LABEL;
            selectedWidget = sel.getSelectedIWidgets()[0];
            selectedElement = selectedWidget;
        } else {
            label = " " + WIDGETS_LABEL;
            if (elementCount == 1) {
                selectedElement = sel.getSelectedIFrameElements()[0];
            }
        }
    }
    Text t = WindowUtil.getFocusedText();
    boolean editing = ((editor != null) && editor.getVisible());
    String cutCopyLabel = (editing || (t != null)) ? "" : label;
    // Turn on rename support if selection is exactly 1
    boolean enabled = (widgetCount == 1);
    String renameString = MenuFactory.RENAME_STRING;
    String relabelString = MenuFactory.RELABEL_STRING;
    if (enabled) {
        renameString += label;
        relabelString += label;
    }
    setEnabled(CogToolLID.Rename, availability, enabled, renameString);
    setEnabled(FrameEditorLID.Relabel, availability, enabled, relabelString);
    setEnabled(CogToolLID.CopyPath, availability, enabled);
    setEnabled(FrameEditorLID.RemoveImageProperty, availability, (selectedWidget != null) && (selectedWidget.getImage() != null));
    setEnabled(FrameEditorLID.ToggleRenderSkin, availability, enabled, MenuFactory.RENDER_WIDGET_SKIN_LABEL, (selectedWidget != null) && selectedWidget.isRendered());
    if (enabled && (selectedWidget != null)) {
        enabled = selectedWidget.getAttribute(WidgetAttributes.REMOTE_LABEL_OWNER_ATTR) != null;
    }
    setEnabled(FrameEditorLID.SetRemoteLabelType, availability, enabled);
    if (elementCount == 1) {
        enabled = selectedElement.getRemoteLabelOwner() != null;
    }
    setEnabled(FrameEditorLID.SetRemoteLabelText, availability, enabled);
    // Turn on these LIDs if the selection is > 0
    enabled = (widgetCount > 0);
    setEnabled(FrameEditorLID.SetImageProperty, availability, enabled);
    setEnabled(FrameEditorLID.CaptureImageProperty, availability, enabled && view.isBackgroundAvailable());
    enabled = (elementCount > 0);
    String deleteString = MenuFactory.DELETE_STRING + label;
    setEnabled(CogToolLID.Delete, availability, enabled, deleteString);
    String dupString = MenuFactory.DUPLICATE_STRING + label;
    setEnabled(CogToolLID.Duplicate, availability, enabled, dupString);
    // For these, there must exist a non-IChildWidget selected widget
    int nonchildWidgetCount = sel.getNonchildSelectionCount();
    enabled = (nonchildWidgetCount > 0);
    String cutString = MenuFactory.CUT_STRING + cutCopyLabel;
    setEnabled(CogToolLID.Cut, availability, enabled, cutString);
    String copyString = MenuFactory.COPY_STRING + cutCopyLabel;
    setEnabled(CogToolLID.Copy, availability, enabled, copyString);
    setEnabled(CogToolLID.SetFrameTemplate, availability, enabled);
    setEnabled(CogToolLID.NudgeLeft, availability, enabled);
    setEnabled(CogToolLID.NudgeRight, availability, enabled);
    setEnabled(CogToolLID.NudgeDown, availability, enabled);
    setEnabled(CogToolLID.NudgeUp, availability, enabled);
    setEnabled(CogToolLID.BringToFront, availability, enabled);
    setEnabled(CogToolLID.BringForward, availability, enabled);
    setEnabled(CogToolLID.SendBackward, availability, enabled);
    setEnabled(CogToolLID.SendToBack, availability, enabled);
    // Grouping enabled only if multiple unrelated IFrameElements are selected
    enabled = false;
    FrameElement firstSelectedElt = null;
    Iterator<FrameElement> selectedElts = sel.getSelectedElementsIterator();
    while (selectedElts.hasNext()) {
        FrameElement elt = selectedElts.next();
        if (firstSelectedElt == null) {
            firstSelectedElt = elt.getRootElement();
        } else if (firstSelectedElt != elt.getRootElement()) {
            enabled = true;
            break;
        }
    }
    setEnabled(CogToolLID.Group, availability, enabled);
    enabled = false;
    selectedElts = sel.getSelectedElementsIterator();
    while (selectedElts.hasNext()) {
        FrameElement elt = selectedElts.next();
        enabled = enabled || (elt instanceof FrameElementGroup) || (elt.getRootElement().getEltGroups().size() > 0);
    }
    setEnabled(CogToolLID.Ungroup, availability, enabled);
    // don't allow alignment if any of the selected widgets are part of a
    // widget group (e.g. menu headers, list box items, grid buttons)
    // TODO might want to allow it for grid buttons, with extra work in the
    // controller to calculate horizontal and vertical space
    boolean groupWidgetSelected = false;
    IWidget[] widgets = sel.getSelectedIWidgets();
    for (IWidget widget : widgets) {
        if (widget.getParentGroup() != null) {
            groupWidgetSelected = true;
        }
    }
    // Enable alignment items if multiple non-child widgets are selected
    enabled = (nonchildWidgetCount > 1);
    setEnabled(CogToolLID.AlignTop, availability, enabled);
    setEnabled(CogToolLID.AlignBottom, availability, enabled);
    setEnabled(CogToolLID.AlignLeft, availability, enabled);
    setEnabled(CogToolLID.AlignRight, availability, enabled);
    setEnabled(CogToolLID.AlignCenter, availability, enabled);
    setEnabled(CogToolLID.AlignHorizCenter, availability, enabled);
    setEnabled(CogToolLID.AlignVertCenter, availability, enabled);
    // Enable spacing items if at least 3 non-child widgets are selected
    enabled = (nonchildWidgetCount >= 3) && !groupWidgetSelected;
    setEnabled(CogToolLID.SpaceVertically, availability, enabled);
    setEnabled(CogToolLID.SpaceHorizontally, availability, enabled);
    // If there is at least one widget in the model, enable these.
    enabled = (frame.getWidgets().size() > 0);
    setEnabled(CogToolLID.SelectAll, availability, enabled, SELECT_ALL_WIDGETS);
    // Draws the dot to indicate that the correct skin type is selected
    setSelected(CogToolLID.SkinNone, availability, false);
    setSelected(CogToolLID.SkinWireFrame, availability, false);
    setSelected(CogToolLID.SkinMacOSX, availability, false);
    setSelected(CogToolLID.SkinWinXP, availability, false);
    setSelected(CogToolLID.SkinPalm, availability, false);
    SkinType skin = design.getSkin();
    CogToolLID id = null;
    if (skin == SkinType.None) {
        id = CogToolLID.SkinNone;
    } else if (skin == SkinType.WireFrame) {
        id = CogToolLID.SkinWireFrame;
    } else if (skin == SkinType.MacOSX) {
        id = CogToolLID.SkinMacOSX;
    } else if (skin == SkinType.WinXP) {
        id = CogToolLID.SkinWinXP;
    } else if (skin == SkinType.Palm) {
        id = CogToolLID.SkinPalm;
    }
    if (id != null) {
        setSelected(id, availability, true);
    }
    setEnabled(CogToolLID.ClearFrameTemplate, ListenerIdentifierMap.ALL, FrameTemplateSupport.hasFrameTemplate(design));
}
Also used : CogToolLID(edu.cmu.cs.hcii.cogtool.CogToolLID) SkinType(edu.cmu.cs.hcii.cogtool.model.SkinType) FrameElementGroup(edu.cmu.cs.hcii.cogtool.model.FrameElementGroup) Text(org.eclipse.swt.widgets.Text) FrameElement(edu.cmu.cs.hcii.cogtool.model.FrameElement) Point(org.eclipse.draw2d.geometry.Point) DoublePoint(edu.cmu.cs.hcii.cogtool.model.DoublePoint) IWidget(edu.cmu.cs.hcii.cogtool.model.IWidget)

Example 3 with Text

use of org.eclipse.swt.widgets.Text in project cogtool by cogtool.

the class ActionSet method createTransitionName.

private Text createTransitionName(Composite parent, String txt) {
    final Text name = new Text(parent, SWT.BORDER);
    final NameInfo info = new NameInfo(txt);
    // Note that we have to use a VerifyListener to prevent editing the
    // contents of the Text, as SWT has made the rather surprising decision
    // that setting its editable field to false also
    // takes away our ability to select and navigate in the field, and copy
    // its contents. Grr.
    name.addVerifyListener(new VerifyListener() {

        public void verifyText(VerifyEvent evt) {
            // the user's trying to modify an already populated Text. Yuk.
            switch(transitionNameState) {
                case NORMAL:
                    info.fullName = evt.text;
                    evt.text = SWTStringUtil.insertEllipsis(info.fullName, name.getSize().x, StringUtil.EQUAL, name.getFont());
                    break;
                case HAS_FOCUS:
                    evt.doit = false;
                    break;
                case GAINING_FOCUS:
                    break;
            }
        }
    });
    name.addFocusListener(new FocusAdapter() {

        @Override
        public void focusGained(FocusEvent evt) {
            transitionNameState = TransitionNameState.GAINING_FOCUS;
            name.setText(info.fullName);
            transitionNameState = TransitionNameState.HAS_FOCUS;
        }

        @Override
        public void focusLost(FocusEvent evt) {
            transitionNameState = TransitionNameState.NORMAL;
            name.setText(info.fullName);
        }
    });
    name.setText(txt);
    return name;
}
Also used : FocusAdapter(org.eclipse.swt.events.FocusAdapter) VerifyListener(org.eclipse.swt.events.VerifyListener) ManagedText(edu.cmu.cs.hcii.cogtool.util.ManagedText) Text(org.eclipse.swt.widgets.Text) VerifyEvent(org.eclipse.swt.events.VerifyEvent) FocusEvent(org.eclipse.swt.events.FocusEvent)

Example 4 with Text

use of org.eclipse.swt.widgets.Text in project cogtool by cogtool.

the class AboutView method buildDialog.

@Override
public void buildDialog() {
    GridLayout layout = new GridLayout(4, false);
    if (OSUtils.MACOSX) {
        layout.marginLeft = 21;
        layout.marginRight = 21;
        layout.marginTop = 10;
        layout.marginBottom = 15;
    }
    dialog.setLayout(layout);
    // Centered logo, filling width
    Label logo = new Label(dialog, SWT.CENTER);
    logo.setImage(logoImg);
    GridData imgLayout = new GridData();
    imgLayout.horizontalSpan = 4;
    imgLayout.horizontalAlignment = GridData.FILL;
    imgLayout.grabExcessHorizontalSpace = true;
    logo.setLayoutData(imgLayout);
    // Current version, centered
    Text version = new Text(dialog, SWT.CENTER | SWT.READ_ONLY);
    GridData versionLayout = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
    versionLayout.horizontalSpan = 4;
    version.setLayoutData(versionLayout);
    version.setText(CogTool.getVersion());
    // Copyright and URL (as Link), centered
    Label copyright = new Label(dialog, SWT.NONE);
    GridData copyrightLayout = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
    copyrightLayout.horizontalSpan = 4;
    copyright.setLayoutData(copyrightLayout);
    // © is the (c) copyright symbol
    copyright.setText(L10N.get("CT.Copyright", "© 2012 CogTool@Carnegie Mellon University"));
    // Be careful if you modify the following: the SWT Link object seems
    // to behave most bizarrely if you combine a tilde in the middle of
    // a URL with a trailing slash at its end.
    addLink("Download updates from", L10N.get("CT.MainURL", "https://github.com/cogtool/cogtool/releases/latest"));
    addLink("Documentation", L10N.get("CT.UserGuideURL", "https://github.com/cogtool/cogtool/releases/download/1.2.2/CogToolUserGuide_1_2.pdf"));
    Label memory = new Label(dialog, SWT.NONE);
    GridData memoryLayout = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
    memoryLayout.horizontalSpan = 4;
    memory.setLayoutData(memoryLayout);
    memory.setText(CogTool.getMemoryUsage());
    Label props = new Label(dialog, SWT.NONE);
    GridData propsLayout = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
    propsLayout.horizontalSpan = 4;
    props.setLayoutData(propsLayout);
    props.setText(CogTool.getConfigurationProperties());
    addButtons();
}
Also used : GridLayout(org.eclipse.swt.layout.GridLayout) Label(org.eclipse.swt.widgets.Label) GridData(org.eclipse.swt.layout.GridData) Text(org.eclipse.swt.widgets.Text)

Example 5 with Text

use of org.eclipse.swt.widgets.Text in project flux by eclipse.

the class ConnectionPreferencePage method createConnectionGroup.

private Control createConnectionGroup(Composite parent) {
    Group group = new Group(parent, SWT.BORDER_SOLID);
    group.setText("Connection Settings");
    group.setToolTipText("Flux messaging server connection info");
    group.setLayout(new GridLayout(2, false));
    Label label = new Label(group, SWT.NONE);
    label.setText("Server URL:");
    GridData gridData = new GridData();
    label.setLayoutData(gridData);
    url = new Text(group, SWT.BORDER);
    url.setText(editable ? getPreferenceStore().getString(IPreferenceConstants.PREF_URL) : Activator.getHostUrl());
    url.setEnabled(editable);
    url.addModifyListener(new ModifyListener() {

        @Override
        public void modifyText(ModifyEvent event) {
            if (url.getText().isEmpty()) {
                setErrorMessage(null);
                setValid(true);
            } else {
                try {
                    new URL(url.getText());
                    setErrorMessage(null);
                    setValid(true);
                } catch (MalformedURLException e) {
                    setErrorMessage(e.getMessage());
                    setValid(false);
                }
            }
        }
    });
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    url.setLayoutData(gridData);
    label = new Label(group, SWT.NONE);
    label.setText("GitHub ID:");
    label.setLayoutData(new GridData());
    user = new Text(group, SWT.BORDER);
    user.setText(editable ? getPreferenceStore().getString(IPreferenceConstants.PREF_USER_ID) : Activator.getUserId());
    user.setEnabled(editable);
    user.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    label = new Label(group, SWT.NONE);
    label.setText("GitHub Token:");
    label.setLayoutData(new GridData());
    token = new Text(group, SWT.BORDER);
    token.setText(editable ? getPreferenceStore().getString(IPreferenceConstants.PREF_USER_TOKEN) : Activator.getUserToken());
    token.setEnabled(editable);
    token.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    return group;
}
Also used : Group(org.eclipse.swt.widgets.Group) GridLayout(org.eclipse.swt.layout.GridLayout) ModifyEvent(org.eclipse.swt.events.ModifyEvent) MalformedURLException(java.net.MalformedURLException) ModifyListener(org.eclipse.swt.events.ModifyListener) Label(org.eclipse.swt.widgets.Label) GridData(org.eclipse.swt.layout.GridData) Text(org.eclipse.swt.widgets.Text) URL(java.net.URL)

Aggregations

Text (org.eclipse.swt.widgets.Text)600 GridData (org.eclipse.swt.layout.GridData)427 Label (org.eclipse.swt.widgets.Label)394 GridLayout (org.eclipse.swt.layout.GridLayout)385 Composite (org.eclipse.swt.widgets.Composite)373 Button (org.eclipse.swt.widgets.Button)271 SelectionEvent (org.eclipse.swt.events.SelectionEvent)229 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)196 Group (org.eclipse.swt.widgets.Group)172 ModifyEvent (org.eclipse.swt.events.ModifyEvent)160 ModifyListener (org.eclipse.swt.events.ModifyListener)160 Combo (org.eclipse.swt.widgets.Combo)112 Point (org.eclipse.swt.graphics.Point)53 SelectionListener (org.eclipse.swt.events.SelectionListener)51 DirectoryDialog (org.eclipse.swt.widgets.DirectoryDialog)43 FormData (org.eclipse.swt.layout.FormData)40 FormAttachment (org.eclipse.swt.layout.FormAttachment)39 FileDialog (org.eclipse.swt.widgets.FileDialog)37 KeyEvent (org.eclipse.swt.events.KeyEvent)36 Control (org.eclipse.swt.widgets.Control)36