diff options
Diffstat (limited to 'extraplugins/cdo/org.eclipse.papyrus.cdo.ui.hyperlink/src/org/eclipse/papyrus/cdo/internal/ui')
3 files changed, 90 insertions, 108 deletions
diff --git a/extraplugins/cdo/org.eclipse.papyrus.cdo.ui.hyperlink/src/org/eclipse/papyrus/cdo/internal/ui/hyperlink/CDOResourceHyperlink.java b/extraplugins/cdo/org.eclipse.papyrus.cdo.ui.hyperlink/src/org/eclipse/papyrus/cdo/internal/ui/hyperlink/CDOResourceHyperlink.java index 7af8c23de85..9ff96b6ae59 100644 --- a/extraplugins/cdo/org.eclipse.papyrus.cdo.ui.hyperlink/src/org/eclipse/papyrus/cdo/internal/ui/hyperlink/CDOResourceHyperlink.java +++ b/extraplugins/cdo/org.eclipse.papyrus.cdo.ui.hyperlink/src/org/eclipse/papyrus/cdo/internal/ui/hyperlink/CDOResourceHyperlink.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 @@ -12,6 +12,7 @@ * Christian W. Damus (CEA LIST) - adapted for CDO repository resource hyperlinks * Christian W. Damus (CEA) - adapt to source-incompatible API change in CDO Luna M6 * Eike Stepper (CEA) - bug 466520 + * Christian W. Damus - bug 488965 * *****************************************************************************/ package org.eclipse.papyrus.cdo.internal.ui.hyperlink; @@ -32,12 +33,14 @@ import org.eclipse.emf.cdo.view.CDOView; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.window.Window; import org.eclipse.net4j.util.ui.UIUtil; import org.eclipse.osgi.util.NLS; import org.eclipse.papyrus.cdo.internal.ui.editors.PapyrusCDOEditorOpener; import org.eclipse.papyrus.cdo.internal.ui.views.DIResourceQuery; import org.eclipse.papyrus.infra.hyperlink.Activator; import org.eclipse.papyrus.infra.hyperlink.object.HyperLinkObject; +import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PlatformUI; @@ -139,10 +142,10 @@ public class CDOResourceHyperlink extends HyperLinkObject { } @Override - public void executeEditMousePressed(List<HyperLinkObject> list, EObject aModel) { - CDOResourceHyperlinkEditorShell editor = new CDOResourceHyperlinkEditorShell(); + public void executeEditMousePressed(Shell parentShell, List<HyperLinkObject> list, EObject aModel) { + CDOResourceHyperlinkEditorShell editor = new CDOResourceHyperlinkEditorShell(parentShell); editor.setHyperlink(this); - if (editor.open()) { + if (editor.open() == Window.OK) { int index = list.indexOf(this); list.set(index, editor.getHyperlink()); } 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(); } } diff --git a/extraplugins/cdo/org.eclipse.papyrus.cdo.ui.hyperlink/src/org/eclipse/papyrus/cdo/internal/ui/hyperlink/CDOResourceHyperlinkHelper.java b/extraplugins/cdo/org.eclipse.papyrus.cdo.ui.hyperlink/src/org/eclipse/papyrus/cdo/internal/ui/hyperlink/CDOResourceHyperlinkHelper.java index 9a2372bbb21..d86702b50ca 100644 --- a/extraplugins/cdo/org.eclipse.papyrus.cdo.ui.hyperlink/src/org/eclipse/papyrus/cdo/internal/ui/hyperlink/CDOResourceHyperlinkHelper.java +++ b/extraplugins/cdo/org.eclipse.papyrus.cdo.ui.hyperlink/src/org/eclipse/papyrus/cdo/internal/ui/hyperlink/CDOResourceHyperlinkHelper.java @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (c) 2011, 2013 CEA LIST and others. + * Copyright (c) 2011, 2016 CEA LIST, Christian W. Damus, and others. * * * All rights reserved. This program and the accompanying materials @@ -10,6 +10,7 @@ * Contributors: * Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr - Initial API and implementation * Christian W. Damus (CEA LIST) - adapted for CDO repository resource hyperlinks + * Christian W. Damus - bug 488965 * *****************************************************************************/ @@ -30,12 +31,14 @@ import org.eclipse.emf.ecore.EModelElement; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.transaction.RecordingCommand; import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.jface.window.Window; import org.eclipse.papyrus.cdo.internal.ui.views.DIModel; import org.eclipse.papyrus.infra.core.utils.AdapterUtils; import org.eclipse.papyrus.infra.hyperlink.helper.AbstractHyperLinkHelper; import org.eclipse.papyrus.infra.hyperlink.helper.IHyperlinkHelperExtension; import org.eclipse.papyrus.infra.hyperlink.object.HyperLinkObject; import org.eclipse.papyrus.infra.hyperlink.util.HyperLinkConstants; +import org.eclipse.swt.widgets.Shell; import com.google.common.collect.ImmutableList; @@ -82,9 +85,9 @@ public class CDOResourceHyperlinkHelper extends AbstractHyperLinkHelper implemen } @Override - public void executeNewMousePressed(List<HyperLinkObject> list, EObject aModel) { - CDOResourceHyperlinkEditorShell editor = new CDOResourceHyperlinkEditorShell(); - if (editor.open()) { + public void executeNewMousePressed(Shell parentShell, List<HyperLinkObject> list, EObject aModel) { + CDOResourceHyperlinkEditorShell editor = new CDOResourceHyperlinkEditorShell(parentShell); + if (editor.open() == Window.OK) { list.add(editor.getHyperlink()); } } |