Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.net4j.buddies.ui/src/org/eclipse/net4j/buddies/internal/ui/SessionManager.java')
-rw-r--r--plugins/org.eclipse.net4j.buddies.ui/src/org/eclipse/net4j/buddies/internal/ui/SessionManager.java284
1 files changed, 0 insertions, 284 deletions
diff --git a/plugins/org.eclipse.net4j.buddies.ui/src/org/eclipse/net4j/buddies/internal/ui/SessionManager.java b/plugins/org.eclipse.net4j.buddies.ui/src/org/eclipse/net4j/buddies/internal/ui/SessionManager.java
deleted file mode 100644
index 9dc74ed073..0000000000
--- a/plugins/org.eclipse.net4j.buddies.ui/src/org/eclipse/net4j/buddies/internal/ui/SessionManager.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/***************************************************************************
- * Copyright (c) 2004 - 2008 Eike Stepper, Germany.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- **************************************************************************/
-package org.eclipse.net4j.buddies.internal.ui;
-
-import org.eclipse.net4j.Net4jUtil;
-import org.eclipse.net4j.buddies.BuddiesUtil;
-import org.eclipse.net4j.buddies.IBuddySession;
-import org.eclipse.net4j.buddies.internal.ui.bundle.OM;
-import org.eclipse.net4j.buddies.protocol.IBuddy;
-import org.eclipse.net4j.buddies.ui.ISessionManager;
-import org.eclipse.net4j.buddies.ui.ISessionManagerEvent;
-import org.eclipse.net4j.connector.IConnector;
-import org.eclipse.net4j.internal.buddies.Self;
-import org.eclipse.net4j.internal.util.event.Event;
-import org.eclipse.net4j.internal.util.lifecycle.Lifecycle;
-import org.eclipse.net4j.util.concurrent.ConcurrencyUtil;
-import org.eclipse.net4j.util.container.IContainerDelta;
-import org.eclipse.net4j.util.container.IContainerEvent;
-import org.eclipse.net4j.util.container.IPluginContainer;
-import org.eclipse.net4j.util.event.IEvent;
-import org.eclipse.net4j.util.event.IListener;
-import org.eclipse.net4j.util.lifecycle.ILifecycleEvent;
-import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
-
-import java.text.MessageFormat;
-
-public class SessionManager extends Lifecycle implements ISessionManager, IListener
-{
- public static final SessionManager INSTANCE = new SessionManager();
-
- private IBuddySession session;
-
- private State state = State.DISCONNECTED;
-
- private boolean connecting;
-
- private boolean flashing;
-
- private SessionManager()
- {
- }
-
- public IBuddySession getSession()
- {
- return session;
- }
-
- public State getState()
- {
- return state;
- }
-
- public void setState(State state)
- {
- if (this.state != state)
- {
- IEvent event = new SessionManagerEvent(this.state, state, session);
- this.state = state;
- fireEvent(event);
- }
- }
-
- public boolean isFlashing()
- {
- return flashing;
- }
-
- public boolean isConnecting()
- {
- return state == ISessionManager.State.CONNECTING;
- }
-
- public String getConnectorDescription()
- {
- return OM.PREF_CONNECTOR_DESCRIPTION.getValue();
- }
-
- public String getUserID()
- {
- return OM.PREF_USER_ID.getValue();
- }
-
- public String getPassword()
- {
- return OM.PREF_PASSWORD.getValue();
- }
-
- public Boolean isAutoConnect()
- {
- return OM.PREF_AUTO_CONNECT.getValue();
- }
-
- public void connect()
- {
- new Thread("buddies-connector")
- {
- @Override
- public void run()
- {
- try
- {
- setState(ISessionManager.State.CONNECTING);
- connecting = true;
- while (session == null && connecting)
- {
- IConnector connector = Net4jUtil.getConnector(IPluginContainer.INSTANCE, getConnectorDescription());
- if (connector == null)
- {
- throw new IllegalStateException("connector == null");
- }
-
- boolean connected = connector.waitForConnection(5000L);
- if (connected)
- {
- session = BuddiesUtil.openSession(connector, getUserID(), getPassword(), 5000L);
- if (session != null)
- {
- if (connecting)
- {
- session.addListener(SessionManager.this);
- setState(ISessionManager.State.CONNECTED);
- }
- else
- {
- session.close();
- session = null;
- setState(ISessionManager.State.DISCONNECTED);
- }
- }
- }
- else
- {
- LifecycleUtil.deactivate(connector);
- }
- }
- }
- finally
- {
- connecting = false;
- }
- }
- }.start();
- }
-
- public void disconnect()
- {
- connecting = false;
- if (session != null)
- {
- session.removeListener(this);
- session.close();
- session = null;
- }
-
- setState(ISessionManager.State.DISCONNECTED);
- }
-
- public void flashMe()
- {
- if (session != null && !flashing)
- {
- final Self self = (Self)session.getSelf();
- final IBuddy.State original = self.getState();
- new Thread("buddies-flasher")
- {
- @Override
- public void run()
- {
- flashing = true;
- IBuddy.State state = original == IBuddy.State.AVAILABLE ? IBuddy.State.LONESOME : IBuddy.State.AVAILABLE;
- for (int i = 0; i < 15; i++)
- {
- self.setState(state);
- ConcurrencyUtil.sleep(200);
- state = state == IBuddy.State.AVAILABLE ? IBuddy.State.LONESOME : IBuddy.State.AVAILABLE;
- }
-
- self.setState(original);
- flashing = false;
- }
- }.start();
- }
- }
-
- @SuppressWarnings("unchecked")
- public void notifyEvent(IEvent event)
- {
- if (event.getSource() == session)
- {
- if (event instanceof ILifecycleEvent)
- {
- if (((ILifecycleEvent)event).getKind() == ILifecycleEvent.Kind.DEACTIVATED)
- {
- disconnect();
- if (isAutoConnect())
- {
- connect();
- }
- }
- }
- else if (event instanceof IContainerEvent)
- {
- IContainerEvent<IBuddy> e = (IContainerEvent<IBuddy>)event;
- if (e.getDeltaKind() == IContainerDelta.Kind.ADDED)
- {
- e.getDeltaElement().addListener(this);
- }
- else if (e.getDeltaKind() == IContainerDelta.Kind.REMOVED)
- {
- e.getDeltaElement().removeListener(this);
- }
- }
- }
- }
-
- @Override
- protected void doActivate() throws Exception
- {
- super.doActivate();
- if (isAutoConnect())
- {
- connect();
- }
- }
-
- @Override
- protected void doDeactivate() throws Exception
- {
- disconnect();
- super.doDeactivate();
- }
-
- /**
- * @author Eike Stepper
- */
- private final class SessionManagerEvent extends Event implements ISessionManagerEvent
- {
- private static final long serialVersionUID = 1L;
-
- private State oldState;
-
- private State newState;
-
- private IBuddySession session;
-
- public SessionManagerEvent(State oldState, State newState, IBuddySession session)
- {
- super(SessionManager.this);
- this.oldState = oldState;
- this.newState = newState;
- this.session = session;
- }
-
- public State getOldState()
- {
- return oldState;
- }
-
- public State getNewState()
- {
- return newState;
- }
-
- public IBuddySession getSession()
- {
- return session;
- }
-
- @Override
- public String toString()
- {
- return MessageFormat.format("SessionManagerEvent[source={0}, oldState={1}, newState={2}, session={3}]",
- getSource(), getOldState(), getNewState(), getSession());
- }
- }
-}

Back to the top