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;
}
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));
}
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;
}
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();
}
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;
}
Aggregations