diff options
author | Eike Stepper | 2009-01-12 18:13:41 +0000 |
---|---|---|
committer | Eike Stepper | 2009-01-12 18:13:41 +0000 |
commit | 264dbfbd5f7a0ee20ff95a0fb7268314e60a05ad (patch) | |
tree | 90047a254aff5b28fee537adae4e64e093f6a5e1 /plugins/org.eclipse.emf.cdo.ui | |
parent | 2e75a92216de7bdc8d86c38160fea0b321ee06fe (diff) | |
download | cdo-264dbfbd5f7a0ee20ff95a0fb7268314e60a05ad.tar.gz cdo-264dbfbd5f7a0ee20ff95a0fb7268314e60a05ad.tar.xz cdo-264dbfbd5f7a0ee20ff95a0fb7268314e60a05ad.zip |
factor out SessionComposite
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.ui')
5 files changed, 82 insertions, 103 deletions
diff --git a/plugins/org.eclipse.emf.cdo.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.ui/.settings/org.eclipse.jdt.core.prefs index 4a9b13a84e..fc74bbcd7f 100644 --- a/plugins/org.eclipse.emf.cdo.ui/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.eclipse.emf.cdo.ui/.settings/org.eclipse.jdt.core.prefs @@ -1,4 +1,4 @@ -#Fri Aug 01 21:17:01 CEST 2008 +#Mon Jan 12 18:11:19 CET 2009 eclipse.preferences.version=1 org.eclipse.jdt.core.codeComplete.argumentPrefixes= org.eclipse.jdt.core.codeComplete.argumentSuffixes= @@ -8,6 +8,7 @@ org.eclipse.jdt.core.codeComplete.localPrefixes= org.eclipse.jdt.core.codeComplete.localSuffixes= org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 org.eclipse.jdt.core.compiler.compliance=1.5 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error diff --git a/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF index 8af7fa1df7..af813a9007 100644 --- a/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF @@ -18,13 +18,13 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)", org.eclipse.net4j.util.ui;bundle-version="[2.0.0,3.0.0)";visibility:=reexport, org.eclipse.emf.cdo;bundle-version="[2.0.0,3.0.0)";visibility:=reexport, org.eclipse.emf.cdo.edit;bundle-version="[2.0.0,3.0.0)";visibility:=reexport -Export-Package: org.eclipse.emf.cdo.internal.ui;version="2.0.0";x-friends:="org.eclipse.emf.cdo.ui.defs", - org.eclipse.emf.cdo.internal.ui.actions;version="2.0.0";x-friends:="org.eclipse.emf.cdo.ui.defs", +Export-Package: org.eclipse.emf.cdo.internal.ui;version="2.0.0";x-friends:="org.eclipse.emf.cdo.ui.defs,org.eclipse.emf.cdo.ui.ide", + org.eclipse.emf.cdo.internal.ui.actions;version="2.0.0";x-friends:="org.eclipse.emf.cdo.ui.defs,org.eclipse.emf.cdo.ui.ide", org.eclipse.emf.cdo.internal.ui.bundle;version="2.0.0";x-internal:=true, - org.eclipse.emf.cdo.internal.ui.dialogs;version="2.0.0";x-friends:="org.eclipse.emf.cdo.ui.defs", - org.eclipse.emf.cdo.internal.ui.editor;version="2.0.0";x-friends:="org.eclipse.emf.cdo.ui.defs", - org.eclipse.emf.cdo.internal.ui.preferences;version="2.0.0";x-friends:="org.eclipse.emf.cdo.ui.defs", - org.eclipse.emf.cdo.internal.ui.views;version="2.0.0";x-friends:="org.eclipse.emf.cdo.ui.defs", + org.eclipse.emf.cdo.internal.ui.dialogs;version="2.0.0";x-friends:="org.eclipse.emf.cdo.ui.defs,org.eclipse.emf.cdo.ui.ide", + org.eclipse.emf.cdo.internal.ui.editor;version="2.0.0";x-friends:="org.eclipse.emf.cdo.ui.defs,org.eclipse.emf.cdo.ui.ide", + org.eclipse.emf.cdo.internal.ui.preferences;version="2.0.0";x-friends:="org.eclipse.emf.cdo.ui.defs,org.eclipse.emf.cdo.ui.ide", + org.eclipse.emf.cdo.internal.ui.views;version="2.0.0";x-friends:="org.eclipse.emf.cdo.ui.defs,org.eclipse.emf.cdo.ui.ide", org.eclipse.emf.cdo.ui;version="2.0.0", org.eclipse.emf.cdo.ui.widgets;version="2.0.0" Bundle-ActivationPolicy: lazy diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenSessionAction.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenSessionAction.java index 2c0a4c37c2..68319ab34b 100644 --- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenSessionAction.java +++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenSessionAction.java @@ -10,15 +10,11 @@ */ package org.eclipse.emf.cdo.internal.ui.actions; -import org.eclipse.emf.cdo.common.protocol.CDOProtocolConstants; import org.eclipse.emf.cdo.internal.ui.bundle.OM; import org.eclipse.emf.cdo.internal.ui.dialogs.OpenSessionDialog; import org.eclipse.emf.cdo.internal.ui.views.CDOSessionsView; -import org.eclipse.emf.cdo.session.CDOSession; +import org.eclipse.emf.cdo.session.CDOSessionProvider; -import org.eclipse.emf.internal.cdo.session.CDOSessionFactory; - -import org.eclipse.net4j.util.container.IPluginContainer; import org.eclipse.net4j.util.ui.actions.LongRunningAction; import org.eclipse.core.runtime.IProgressMonitor; @@ -34,7 +30,7 @@ public final class OpenSessionAction extends LongRunningAction private static final String TOOL_TIP = "Open a new CDO session"; - private String description; + private CDOSessionProvider sessionProvider; public OpenSessionAction(IWorkbenchPage page) { @@ -47,16 +43,7 @@ public final class OpenSessionAction extends LongRunningAction OpenSessionDialog dialog = new OpenSessionDialog(getPage()); if (dialog.open() == OpenSessionDialog.OK) { - StringBuilder builder = new StringBuilder(); - builder.append(dialog.getServerDescription()); - builder.append("?repositoryName="); - builder.append(dialog.getRepositoryName()); - if (dialog.isAutomaticPackageRegistry()) - { - builder.append("&automaticPackageRegistry=true"); - } - - description = builder.toString(); + sessionProvider = dialog.getSessionComposite(); } else { @@ -67,41 +54,21 @@ public final class OpenSessionAction extends LongRunningAction @Override protected void doRun(IProgressMonitor progressMonitor) throws Exception { - CDOSession session = null; - try { - String productGroup = CDOSessionFactory.PRODUCT_GROUP; - String type = CDOProtocolConstants.PROTOCOL_NAME; - session = (CDOSession)IPluginContainer.INSTANCE.getElement(productGroup, type, description); + sessionProvider.getSession(); } - catch (RuntimeException ex) + catch (final RuntimeException ex) { OM.LOG.error(ex); - } - - if (session == null) - { - try + getShell().getDisplay().syncExec(new Runnable() { - getShell().getDisplay().syncExec(new Runnable() + public void run() { - public void run() - { - try - { - MessageDialog.openError(getShell(), getText(), "Unable to open a session on the specified repository.\n" - + description); - } - catch (RuntimeException ignoe) - { - } - } - }); - } - catch (RuntimeException ignoe) - { - } + MessageDialog.openError(getShell(), getText(), "Unable to open a session on the specified repository.\n" + + ex.getMessage()); + } + }); } } } diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/dialogs/OpenSessionDialog.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/dialogs/OpenSessionDialog.java index cfbfba2456..215ec312f1 100644 --- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/dialogs/OpenSessionDialog.java +++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/dialogs/OpenSessionDialog.java @@ -11,16 +11,12 @@ package org.eclipse.emf.cdo.internal.ui.dialogs; import org.eclipse.emf.cdo.internal.ui.SharedIcons; -import org.eclipse.emf.cdo.internal.ui.bundle.OM; import org.eclipse.emf.cdo.ui.widgets.SessionComposite; -import org.eclipse.net4j.util.ui.widgets.PreferenceButton; - import org.eclipse.jface.dialogs.TitleAreaDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IWorkbenchPage; @@ -33,15 +29,7 @@ public class OpenSessionDialog extends TitleAreaDialog private IWorkbenchPage page; - private PreferenceButton automaticButton; - - private SessionComposite composite; - - private boolean automaticPackageRegistry; - - private String serverDescription; - - private String repositoryName; + private SessionComposite sessionComposite; public OpenSessionDialog(IWorkbenchPage page) { @@ -55,19 +43,9 @@ public class OpenSessionDialog extends TitleAreaDialog return page; } - public String getServerDescription() - { - return serverDescription; - } - - public String getRepositoryName() - { - return repositoryName; - } - - public boolean isAutomaticPackageRegistry() + public SessionComposite getSessionComposite() { - return automaticPackageRegistry; + return sessionComposite; } @Override @@ -80,28 +58,9 @@ public class OpenSessionDialog extends TitleAreaDialog @Override protected Control createDialogArea(Composite parent) { - composite = new SessionComposite(parent, SWT.NONE); - setTitle(TITLE); setTitleImage(SharedIcons.getImage(SharedIcons.WIZBAN_PACKAGE_MANAGER)); - - new Label(composite, SWT.NONE); - automaticButton = new PreferenceButton(composite, SWT.CHECK, "Automatic Package Registry", - OM.PREF_AUTOMATIC_PACKAGE_REGISTRY); - - return composite; - } - - @Override - protected void okPressed() - { - serverDescription = composite.getServerDescription(); - repositoryName = composite.getRepositoryName(); - automaticPackageRegistry = automaticButton.getSelection(true); - super.okPressed(); - } - - public void closeWithSuccess() - { + sessionComposite = new SessionComposite(parent, SWT.NONE); + return sessionComposite; } } diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/ui/widgets/SessionComposite.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/ui/widgets/SessionComposite.java index 9227d4d84e..35fca1eb25 100644 --- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/ui/widgets/SessionComposite.java +++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/ui/widgets/SessionComposite.java @@ -12,11 +12,15 @@ package org.eclipse.emf.cdo.ui.widgets; import org.eclipse.emf.cdo.internal.ui.bundle.OM; +import org.eclipse.emf.cdo.session.CDOSession; +import org.eclipse.emf.cdo.session.CDOSessionProvider; import org.eclipse.net4j.util.collection.IHistory; import org.eclipse.net4j.util.collection.PreferenceHistory; +import org.eclipse.net4j.util.container.IPluginContainer; import org.eclipse.net4j.util.ui.UIUtil; import org.eclipse.net4j.util.ui.widgets.HistoryText; +import org.eclipse.net4j.util.ui.widgets.PreferenceButton; import org.eclipse.swt.SWT; import org.eclipse.swt.events.FocusEvent; @@ -29,7 +33,7 @@ import org.eclipse.swt.widgets.Label; /** * @author Victor Roldan Betancort */ -public class SessionComposite extends Composite +public class SessionComposite extends Composite implements CDOSessionProvider { private IHistory<String> connectorHistory = new PreferenceHistory(OM.PREF_HISTORY_CONNECTORS); @@ -41,6 +45,10 @@ public class SessionComposite extends Composite private HistoryText repositoryText; + private PreferenceButton automaticButton; + + private String sessionDescription; + public SessionComposite(Composite parent, int style) { super(parent, style); @@ -55,7 +63,7 @@ public class SessionComposite extends Composite { new Label(this, SWT.NONE); exampleLabel = new Label(this, SWT.NONE); - exampleLabel.setText("for example 'tcp://estepper@dev.eclipse.org:2036'"); + exampleLabel.setText("for example 'tcp://dev.eclipse.org:2036'"); exampleLabel.setForeground(getShell().getDisplay().getSystemColor(SWT.COLOR_DARK_GRAY)); } @@ -82,15 +90,59 @@ public class SessionComposite extends Composite } } }); + + new Label(this, SWT.NONE); + automaticButton = new PreferenceButton(this, SWT.CHECK, "Automatic Package Registry", + OM.PREF_AUTOMATIC_PACKAGE_REGISTRY); + } + + @Override + public void dispose() + { + assembleSessionDescription(); + super.dispose(); + } + + public CDOSession getSession() + { + String description = getSessionDescription(); + return (CDOSession)getContainer().getElement("org.eclipse.emf.cdo.sessions", "cdo", description); + } + + public String getSessionDescription() + { + try + { + String description = sessionDescription; + if (description == null) + { + description = assembleSessionDescription(); + } + + return description; + } + finally + { + sessionDescription = null; + } } - public String getServerDescription() + protected IPluginContainer getContainer() { - return connectorText.getText(true); + return IPluginContainer.INSTANCE; } - public String getRepositoryName() + protected String assembleSessionDescription() { - return repositoryText.getText(true); + StringBuilder builder = new StringBuilder(); + builder.append(connectorText.getText(true)); + builder.append("?repositoryName="); + builder.append(repositoryText.getText(true)); + if (automaticButton.getSelection(true)) + { + builder.append("&automaticPackageRegistry=true"); + } + + return builder.toString(); } } |