diff options
Diffstat (limited to 'extraplugins/cdo/org.eclipse.papyrus.cdo.ui.hyperlink/src/org/eclipse/papyrus/cdo/internal/ui/hyperlink/CDOResourceHyperlinkEditorShell.java')
-rw-r--r-- | extraplugins/cdo/org.eclipse.papyrus.cdo.ui.hyperlink/src/org/eclipse/papyrus/cdo/internal/ui/hyperlink/CDOResourceHyperlinkEditorShell.java | 176 |
1 files changed, 76 insertions, 100 deletions
diff --git a/extraplugins/cdo/org.eclipse.papyrus.cdo.ui.hyperlink/src/org/eclipse/papyrus/cdo/internal/ui/hyperlink/CDOResourceHyperlinkEditorShell.java b/extraplugins/cdo/org.eclipse.papyrus.cdo.ui.hyperlink/src/org/eclipse/papyrus/cdo/internal/ui/hyperlink/CDOResourceHyperlinkEditorShell.java index fbc38dc163c..b5e907e2c42 100644 --- a/extraplugins/cdo/org.eclipse.papyrus.cdo.ui.hyperlink/src/org/eclipse/papyrus/cdo/internal/ui/hyperlink/CDOResourceHyperlinkEditorShell.java +++ b/extraplugins/cdo/org.eclipse.papyrus.cdo.ui.hyperlink/src/org/eclipse/papyrus/cdo/internal/ui/hyperlink/CDOResourceHyperlinkEditorShell.java @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (c) 2009, 2015 CEA LIST and others. + * Copyright (c) 2009, 2016 CEA LIST, Christian W. Damus, and others. * * * All rights reserved. This program and the accompanying materials @@ -11,6 +11,7 @@ * Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr - Initial API and implementation * Christian W. Damus (CEA LIST) - adapted for CDO repository resource hyperlinks * Eike Stepper (CEA) - bug 466520 + * Christian W. Damus - bug 488965 * *****************************************************************************/ package org.eclipse.papyrus.cdo.internal.ui.hyperlink; @@ -19,24 +20,27 @@ import org.eclipse.emf.cdo.eresource.EresourcePackage; import org.eclipse.emf.common.util.URI; import org.eclipse.jface.window.Window; import org.eclipse.papyrus.cdo.internal.ui.dialogs.CheckoutBrowseDialog; -import org.eclipse.papyrus.infra.hyperlink.ui.AbstractEditHyperlinkDocumentShell; +import org.eclipse.papyrus.infra.hyperlink.ui.AbstractEditHyperlinkShell; import org.eclipse.swt.SWT; -import org.eclipse.swt.events.MouseAdapter; -import org.eclipse.swt.events.MouseEvent; -import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; import com.google.common.base.Objects; /** * The editor shell facade for creation and editing of CDO resource hyperlinks. */ -public class CDOResourceHyperlinkEditorShell extends AbstractEditHyperlinkDocumentShell { +public class CDOResourceHyperlinkEditorShell extends AbstractEditHyperlinkShell { private boolean usedefaultTooltip = true; private CDOResourceHyperlink hyperlink; - private boolean okPressed; + /** + * Instantiates me. + */ + public CDOResourceHyperlinkEditorShell(Shell parentShell) { + super(parentShell, true); + } public CDOResourceHyperlink getHyperlink() { return hyperlink; @@ -44,118 +48,90 @@ public class CDOResourceHyperlinkEditorShell extends AbstractEditHyperlinkDocume public void setHyperlink(CDOResourceHyperlink hyperlink) { this.hyperlink = hyperlink; - - getObjectLabeltext().setText(hyperlink.getHyperlink().toString()); - getTooltipInputText().setText(hyperlink.getTooltipText()); - - usedefaultTooltip = Objects.equal(getObjectLabeltext().getText(), getTooltipInputText().getText()); - getUseDefaultCheckBox().setSelection(usedefaultTooltip); - getTooltipInputText().setEditable(!usedefaultTooltip); + updateFields(); } - /** - * Open. - */ - public boolean open() { - Display display = Display.getCurrent(); - - okPressed = false; - - // code use to wait for an action from the user - getEditHyperlinkShell().pack(); - getEditHyperlinkShell().open(); - while (!getEditHyperlinkShell().isDisposed()) { - if (!display.readAndDispatch()) { - display.sleep(); - } - } - - return okPressed; - } - - /** - * Instantiates me. - */ - public CDOResourceHyperlinkEditorShell() { - super(); - - createEditHyperlinkShell(); - + @Override + protected void contentsCreated() { // intialize "use default" check box getUseDefaultCheckBox().setSelection(usedefaultTooltip); - getObjectLabeltext().setEditable(false); + getObjectLabelText().setEditable(false); if (usedefaultTooltip) { getTooltipInputText().setEditable(false); - getTooltipInputText().setText(getObjectLabeltext().getText()); + getTooltipInputText().setText(getObjectLabelText().getText()); } - // add listener "use default button" - getUseDefaultCheckBox().addMouseListener(new MouseAdapter() { - - @Override - public void mouseUp(MouseEvent e) { - usedefaultTooltip = getUseDefaultCheckBox().getSelection(); - if (usedefaultTooltip) { - getTooltipInputText().setEditable(false); - getTooltipInputText().setText(getObjectLabeltext().getText()); - } else { - getTooltipInputText().setEditable(true); - } - } - }); - getChooseDiagramButton().addMouseListener(new MouseAdapter() { + updateFields(); + } + + private void updateFields() { + if (hyperlink != null) { + if (getObjectLabelText() != null) { + getObjectLabelText().setText(hyperlink.getHyperlink().toString()); + } + if (getTooltipInputText() != null) { + getTooltipInputText().setText(hyperlink.getTooltipText()); + } - @Override - public void mouseDown(MouseEvent e) { - CheckoutBrowseDialog browse = new CheckoutBrowseDialog(getEditHyperlinkShell(), Messages.CDOResourceHyperlinkEditorShell_title, Messages.CDOResourceHyperlinkEditorShell_message, null, SWT.OPEN); - browse.setBlockOnOpen(true); + if ((getObjectLabelText() != null) && (getTooltipInputText() != null)) { + usedefaultTooltip = Objects.equal(getObjectLabelText().getText(), getTooltipInputText().getText()); + getUseDefaultCheckBox().setSelection(usedefaultTooltip); + getTooltipInputText().setEditable(!usedefaultTooltip); + } + } + } - String initialURIString = getObjectLabeltext().getText().trim(); - if (!initialURIString.isEmpty()) { - browse.setInitialURI(URI.createURI(initialURIString)); - } + @Override + protected void onSearch() { + CheckoutBrowseDialog browse = new CheckoutBrowseDialog(getShell(), Messages.CDOResourceHyperlinkEditorShell_title, Messages.CDOResourceHyperlinkEditorShell_message, null, SWT.OPEN); + browse.setBlockOnOpen(true); - // select resource nodes of file or model kind, not folders - browse.setNodeTypeFilter(EresourcePackage.Literals.CDO_RESOURCE_LEAF); + String initialURIString = getObjectLabelText().getText().trim(); + if (!initialURIString.isEmpty()) { + browse.setInitialURI(URI.createURI(initialURIString)); + } - if (browse.open() == Window.OK) { - URI selected = browse.getSelectedURI(); - if (selected != null) { - getObjectLabeltext().setText(selected.toString()); - } + // select resource nodes of file or model kind, not folders + browse.setNodeTypeFilter(EresourcePackage.Literals.CDO_RESOURCE_LEAF); - if (usedefaultTooltip) { - getTooltipInputText().setText(selected.toString()); - } - } + if (browse.open() == Window.OK) { + URI selected = browse.getSelectedURI(); + if (selected != null) { + getObjectLabelText().setText(selected.toString()); } - }); - - // listener to cancel - this.getCancelButton().addMouseListener(new MouseAdapter() { - @Override - public void mouseDown(MouseEvent e) { - hyperlink = null; - getEditHyperlinkShell().close(); + if (usedefaultTooltip) { + getTooltipInputText().setText(selected.toString()); } - }); - // listener to click on OK - this.getOkButton().addMouseListener(new MouseAdapter() { + } + } + + @Override + protected void onUseDefaultTooltip() { + usedefaultTooltip = getUseDefaultCheckBox().getSelection(); + if (usedefaultTooltip) { + getTooltipInputText().setEditable(false); + getTooltipInputText().setText(getObjectLabelText().getText()); + } else { + getTooltipInputText().setEditable(true); + } + } - @Override - public void mouseDown(MouseEvent e) { - if (hyperlink == null) { - hyperlink = new CDOResourceHyperlink(); - } + @Override + protected void cancelPressed() { + hyperlink = null; + super.cancelPressed(); + } - hyperlink.setHyperlink(URI.createURI(getObjectLabeltext().getText().trim())); - hyperlink.setTooltipText(getTooltipInputText().getText().trim()); + @Override + protected void okPressed() { + if (hyperlink == null) { + hyperlink = new CDOResourceHyperlink(); + } - okPressed = true; + hyperlink.setHyperlink(URI.createURI(getObjectLabelText().getText().trim())); + hyperlink.setTooltipText(getTooltipInputText().getText().trim()); - getEditHyperlinkShell().close(); - } - }); + super.okPressed(); } } |