From a1bdd3c6bea3be3cdb7d43e4b1570a0d2d3765bf Mon Sep 17 00:00:00 2001 From: Eike Stepper Date: Mon, 8 Oct 2007 08:09:11 +0000 Subject: [205668] Provide buddies example https://bugs.eclipse.org/bugs/show_bug.cgi?id=205668 --- .../buddies/internal/ui/views/BuddiesView.java | 76 ++++++++++++++++------ 1 file changed, 56 insertions(+), 20 deletions(-) diff --git a/plugins/org.eclipse.net4j.buddies.ui/src/org/eclipse/net4j/buddies/internal/ui/views/BuddiesView.java b/plugins/org.eclipse.net4j.buddies.ui/src/org/eclipse/net4j/buddies/internal/ui/views/BuddiesView.java index 54889274ca..6ef0d27d7b 100644 --- a/plugins/org.eclipse.net4j.buddies.ui/src/org/eclipse/net4j/buddies/internal/ui/views/BuddiesView.java +++ b/plugins/org.eclipse.net4j.buddies.ui/src/org/eclipse/net4j/buddies/internal/ui/views/BuddiesView.java @@ -14,10 +14,14 @@ import org.eclipse.net4j.util.ui.actions.SafeAction; import org.eclipse.net4j.util.ui.views.ContainerItemProvider; import org.eclipse.net4j.util.ui.views.ContainerView; -import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.action.IMenuManager; public class BuddiesView extends ContainerView implements IListener { + private ConnectAction connectAction = new ConnectAction(); + + private DisconnectAction disconnectAction = new DisconnectAction(); + private IBuddySession session; private boolean connecting; @@ -45,7 +49,7 @@ public class BuddiesView extends ContainerView implements IListener try { connecting = true; - while (session == null && connecting && isAutoConnect()) + while (session == null && connecting) { String connectorDescription = OM.PREF_CONNECTOR_DESCRIPTION.getValue(); IConnector connector = Net4jUtil.getConnector(IPluginContainer.INSTANCE, connectorDescription); @@ -148,31 +152,63 @@ public class BuddiesView extends ContainerView implements IListener } @Override - protected void fillLocalToolBar(IToolBarManager manager) + protected void fillLocalPullDown(IMenuManager manager) { + manager.add(connectAction); + manager.add(disconnectAction); if (session == null && !connecting) { - manager.add(new SafeAction("Connect", "Connect to buddies server") - { - @Override - protected void safeRun() throws Exception - { - connect(); - } - }); } else { - manager.add(new SafeAction("Disonnect", "Disconnect from buddies server") - { - @Override - protected void safeRun() throws Exception - { - disconnect(); - } - }); } - super.fillLocalToolBar(manager); + super.fillLocalPullDown(manager); + } + + /** + * @author Eike Stepper + */ + private final class ConnectAction extends SafeAction + { + private ConnectAction() + { + super("Connect", "Connect to buddies server"); + } + + @Override + public boolean isEnabled() + { + return session == null && !connecting; + } + + @Override + protected void safeRun() throws Exception + { + connect(); + } + } + + /** + * @author Eike Stepper + */ + private final class DisconnectAction extends SafeAction + { + private DisconnectAction() + { + super("Disonnect", "Disconnect from buddies server"); + } + + @Override + public boolean isEnabled() + { + return session != null || connecting; + } + + @Override + protected void safeRun() throws Exception + { + disconnect(); + } } } \ No newline at end of file -- cgit v1.2.3