Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkgilmer2006-04-25 21:55:32 +0000
committerkgilmer2006-04-25 21:55:32 +0000
commit8393c9e53fb9092e319c76da849edef0abc55638 (patch)
treec00ff5a1cb20ad39d22e8ff0f2406f64a41887c0
parentee5dcc026b905d38c16fb5e1b669dc68f7661e25 (diff)
downloadorg.eclipse.ecf-8393c9e53fb9092e319c76da849edef0abc55638.tar.gz
org.eclipse.ecf-8393c9e53fb9092e319c76da849edef0abc55638.tar.xz
org.eclipse.ecf-8393c9e53fb9092e319c76da849edef0abc55638.zip
Bugfixes and usability enhancements.
-rw-r--r--examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/Activator.java12
-rw-r--r--examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/EditChannelListener.java11
-rw-r--r--examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/EditorListener.java20
-rw-r--r--examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/PresenceChannelListener.java30
-rw-r--r--examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/actions/InitiateSharedSessionAction.java7
-rw-r--r--examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/model/SessionInstance.java58
-rw-r--r--examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/preferences/ClientPreferencePage.java19
-rw-r--r--examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/wizards/NewSharedSessionWizard.java34
-rw-r--r--examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/wizards/NewSharedSessionWizardPage.java47
9 files changed, 173 insertions, 65 deletions
diff --git a/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/Activator.java b/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/Activator.java
index d2d68a0d0..0e67107e0 100644
--- a/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/Activator.java
+++ b/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/Activator.java
@@ -11,6 +11,8 @@ package org.eclipse.ecf.example.collab.editor;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -23,6 +25,7 @@ import org.eclipse.ecf.datashare.IChannel;
import org.eclipse.ecf.datashare.IChannelContainer;
import org.eclipse.ecf.datashare.IChannelListener;
import org.eclipse.ecf.example.collab.editor.message.SharedEditorSessionList;
+import org.eclipse.ecf.example.collab.editor.model.SessionInstance;
import org.eclipse.ecf.example.collab.editor.preferences.ClientPreferencePage;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.plugin.AbstractUIPlugin;
@@ -45,6 +48,8 @@ public class Activator extends AbstractUIPlugin {
private IChannel presenceChannel;
private IContainer presenceContainer = null;
+
+ public static final String PLUGIN_ID = "org.eclipse.ecf.example.collab.editor";
/**
* The constructor.
@@ -107,8 +112,9 @@ public class Activator extends AbstractUIPlugin {
* public List getSessionNames() { return sessionNames; }
*/
- public void addSession(String sessionName) {
- sessionNames.add(sessionName);
+ public void addSession(String channelID, String sessionName) {
+
+ sessionNames.add(new SessionInstance(channelID, sessionName, getPreferenceStore().getString(ClientPreferencePage.LOCAL_NAME), Calendar.getInstance().getTime()));
if (presenceChannel != null) {
// Tell everyone there is a new shared editor.
@@ -135,7 +141,7 @@ public class Activator extends AbstractUIPlugin {
IChannelContainer channelContainer = (IChannelContainer) presenceContainer.getAdapter(IChannelContainer.class);
final ID channelID = IDFactory.getDefault().createID(channelContainer.getChannelNamespace(),
- Activator.getDefault().getPreferenceStore().getString(ClientPreferencePage.CHANNEL_ID + ".presence"));
+ Activator.getDefault().getPreferenceStore().getString(ClientPreferencePage.CHANNEL_ID) + ".presence");
presenceChannel = channelContainer.createChannel(channelID, clistener, new HashMap());
diff --git a/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/EditChannelListener.java b/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/EditChannelListener.java
index ad23c6d5d..8e269fe7b 100644
--- a/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/EditChannelListener.java
+++ b/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/EditChannelListener.java
@@ -12,19 +12,18 @@ import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.ecf.datashare.IChannelListener;
import org.eclipse.ecf.datashare.events.IChannelEvent;
import org.eclipse.ecf.datashare.events.IChannelMessageEvent;
import org.eclipse.ecf.example.collab.editor.message.EditorChangeMessage;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.text.TextViewer;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.editors.text.TextEditor;
import org.eclipse.ui.texteditor.AbstractTextEditor;
public class EditChannelListener implements IChannelListener {
@@ -58,11 +57,9 @@ public class EditChannelListener implements IChannelListener {
// Append text from remote to end of document
appendLocallyFromRemote(message);
} catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, e.getLocalizedMessage(), e));
} catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, e.getLocalizedMessage(), e));
} finally {
setEditorEditable(true);
Activator.getDefault().setListenerActive(true);
diff --git a/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/EditorListener.java b/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/EditorListener.java
index 409f97280..b3b4cf621 100644
--- a/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/EditorListener.java
+++ b/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/EditorListener.java
@@ -13,6 +13,8 @@ import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.HashMap;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.ecf.core.ContainerFactory;
import org.eclipse.ecf.core.IContainer;
import org.eclipse.ecf.core.identity.ID;
@@ -26,10 +28,11 @@ import org.eclipse.ecf.example.collab.editor.preferences.ClientPreferencePage;
import org.eclipse.jface.text.DocumentEvent;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.ui.editors.text.TextEditor;
import org.eclipse.ui.texteditor.AbstractTextEditor;
public class EditorListener implements IDocumentListener {
+ public static final String SESSION_NAME_DELIMITER = "_";
+
private IDocument document;
private AbstractTextEditor editor;
@@ -40,8 +43,6 @@ public class EditorListener implements IDocumentListener {
private IChannelListener channelListener;
-
-
private String sessionID;
public EditorListener(IDocument document, AbstractTextEditor textEditor) {
@@ -55,8 +56,7 @@ public class EditorListener implements IDocumentListener {
Activator.getDefault().intializePresenceSession(new PresenceChannelListener());
}
} catch (ECFException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, e.getLocalizedMessage(), e));
}
}
@@ -82,11 +82,9 @@ public class EditorListener implements IDocumentListener {
this.document = newDocument;
} catch (ECFException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, e.getLocalizedMessage(), e));
} catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, e.getLocalizedMessage(), e));
}
}
@@ -103,9 +101,9 @@ public class EditorListener implements IDocumentListener {
IChannelContainer channelContainer = (IChannelContainer) container.getAdapter(IChannelContainer.class);
- sessionID = Activator.getDefault().getPreferenceStore().getString(ClientPreferencePage.CHANNEL_ID) + "_" + editor.getTitle();
+ sessionID = Activator.getDefault().getPreferenceStore().getString(ClientPreferencePage.CHANNEL_ID) + SESSION_NAME_DELIMITER + editor.getTitle();
- Activator.getDefault().addSession(sessionID);
+ Activator.getDefault().addSession(sessionID, editor.getTitle());
final ID channelID = IDFactory.getDefault().createID(channelContainer.getChannelNamespace(), sessionID);
diff --git a/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/PresenceChannelListener.java b/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/PresenceChannelListener.java
index e5d828349..c572f0d55 100644
--- a/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/PresenceChannelListener.java
+++ b/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/PresenceChannelListener.java
@@ -14,26 +14,23 @@ import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.ecf.core.util.ECFException;
import org.eclipse.ecf.datashare.IChannel;
import org.eclipse.ecf.datashare.IChannelListener;
import org.eclipse.ecf.datashare.events.IChannelEvent;
import org.eclipse.ecf.datashare.events.IChannelMessageEvent;
-import org.eclipse.ecf.example.collab.editor.message.EditorChangeMessage;
import org.eclipse.ecf.example.collab.editor.message.SharedEditorSessionList;
import org.eclipse.ecf.example.collab.editor.message.SharedEditorSessionListRequest;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.editors.text.TextEditor;
-import org.eclipse.ui.texteditor.AbstractTextEditor;
+/**
+ * This ECF listener waits for requests for information (such as any editor sessions
+ * that the local client may have open).
+ *
+ * @author kg11212
+ *
+ */
public class PresenceChannelListener implements IChannelListener {
private IChannel channel;
@@ -61,14 +58,11 @@ public class PresenceChannelListener implements IChannelListener {
}
} catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, e.getLocalizedMessage(), e));
} catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, e.getLocalizedMessage(), e));
} catch (ECFException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, e.getLocalizedMessage(), e));
} finally {
Activator.getDefault().setListenerActive(true);
System.out.println("Setting events on");
diff --git a/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/actions/InitiateSharedSessionAction.java b/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/actions/InitiateSharedSessionAction.java
index 13bd28010..045d9d2d5 100644
--- a/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/actions/InitiateSharedSessionAction.java
+++ b/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/actions/InitiateSharedSessionAction.java
@@ -9,6 +9,8 @@
package org.eclipse.ecf.example.collab.editor.actions;
import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.ecf.example.collab.editor.Activator;
import org.eclipse.ecf.example.collab.editor.EditorListener;
import org.eclipse.jface.action.Action;
@@ -68,15 +70,16 @@ public class InitiateSharedSessionAction extends Action implements IObjectAction
AbstractTextEditor textEditor = (AbstractTextEditor) editorPart;
IDocument document = dp.getDocument(editorPart.getEditorInput());
-
+
if (document != null) {
EditorListener listener = new EditorListener(document, textEditor);
document.addDocumentListener(listener);
+
}
}
} catch (PartInitException e) {
- e.printStackTrace();
+ Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, e.getLocalizedMessage(), e));
}
}
diff --git a/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/model/SessionInstance.java b/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/model/SessionInstance.java
new file mode 100644
index 000000000..57a1fa48b
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/model/SessionInstance.java
@@ -0,0 +1,58 @@
+package org.eclipse.ecf.example.collab.editor.model;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * This model class represents a shared editor session.
+ *
+ * @author kg11212
+ *
+ */
+public class SessionInstance implements Serializable {
+ private static final long serialVersionUID = 4224951859333859979L;
+
+ private String name;
+ private String owner;
+ private Date created;
+ private String channelID;
+
+ public SessionInstance() {
+
+ }
+
+ public SessionInstance(String channelID, String name, String owner, Date created) {
+ this.channelID = channelID;
+ this.name = name;
+ this.owner = owner;
+ this.created = created;
+ }
+
+ public Date getCreated() {
+ return created;
+ }
+ public void setCreated(Date created) {
+ this.created = created;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getOwner() {
+ return owner;
+ }
+ public void setOwner(String owner) {
+ this.owner = owner;
+ }
+
+ public String getChannelID() {
+ return channelID;
+ }
+
+ public void setChannelID(String channelID) {
+ this.channelID = channelID;
+ }
+
+}
diff --git a/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/preferences/ClientPreferencePage.java b/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/preferences/ClientPreferencePage.java
index 0f85251c9..6b786bd33 100644
--- a/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/preferences/ClientPreferencePage.java
+++ b/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/preferences/ClientPreferencePage.java
@@ -11,9 +11,16 @@
package org.eclipse.ecf.example.collab.editor.preferences;
+import java.net.Inet4Address;
+import java.net.UnknownHostException;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.ecf.example.collab.editor.Activator;
+import org.eclipse.jface.preference.FieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.StringFieldEditor;
+import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
@@ -24,6 +31,7 @@ public class ClientPreferencePage extends FieldEditorPreferencePage implements
public static final String CONTAINER_TYPE = "CONTAINER_TYPE";
public static final String TARGET_SERVER = "TARGET_SERVER";
public static final String CHANNEL_ID = "CHANNEL_ID";
+ public static final String LOCAL_NAME = "LOCAL_NAME";
/* (non-Javadoc)
* @see org.eclipse.jface.preference.PreferencePage#performDefaults()
@@ -34,6 +42,11 @@ public class ClientPreferencePage extends FieldEditorPreferencePage implements
getPreferenceStore().setDefault(CONTAINER_TYPE, "ecf.generic.channel");
getPreferenceStore().setDefault(TARGET_SERVER, "ecftcp://localhost:3282/server");
getPreferenceStore().setDefault(CHANNEL_ID, "collab.editor");
+ try {
+ getPreferenceStore().setDefault(LOCAL_NAME, Inet4Address.getLocalHost().getHostName());
+ } catch (UnknownHostException e) {
+ Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, e.getLocalizedMessage(), e));
+ }
}
public ClientPreferencePage() {
@@ -44,7 +57,9 @@ public class ClientPreferencePage extends FieldEditorPreferencePage implements
public void createFieldEditors() {
addField(new StringFieldEditor(CONTAINER_TYPE, "Container Type:", this.getFieldEditorParent()));
addField(new StringFieldEditor(TARGET_SERVER, "ECF Server URL:", this.getFieldEditorParent()));
- addField(new StringFieldEditor(CHANNEL_ID, "Channel (Group) Name:", this.getFieldEditorParent()));
+ addField(new StringFieldEditor(CHANNEL_ID, "Channel (Group) Name:", this.getFieldEditorParent()));
+ addField(new StringFieldEditor(LOCAL_NAME, "Your Name:", this.getFieldEditorParent()));
+
}
public void init(IWorkbench workbench) {
@@ -53,5 +68,5 @@ public class ClientPreferencePage extends FieldEditorPreferencePage implements
public void initializeDefaults() {
performDefaults();
- }
+ }
} \ No newline at end of file
diff --git a/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/wizards/NewSharedSessionWizard.java b/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/wizards/NewSharedSessionWizard.java
index 9cccfa455..7ab52e920 100644
--- a/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/wizards/NewSharedSessionWizard.java
+++ b/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/wizards/NewSharedSessionWizard.java
@@ -9,25 +9,35 @@
package org.eclipse.ecf.example.collab.editor.wizards;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ecf.example.collab.editor.EditorListener;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.operation.*;
-import java.lang.reflect.InvocationTargetException;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ecf.example.collab.editor.EditorListener;
-
-import java.io.*;
-import org.eclipse.ui.*;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.part.FileEditorInput;
import org.eclipse.ui.texteditor.AbstractTextEditor;
import org.eclipse.ui.texteditor.DocumentProviderRegistry;
import org.eclipse.ui.texteditor.IDocumentProvider;
diff --git a/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/wizards/NewSharedSessionWizardPage.java b/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/wizards/NewSharedSessionWizardPage.java
index 43ece668e..20e886136 100644
--- a/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/wizards/NewSharedSessionWizardPage.java
+++ b/examples/bundles/org.eclipse.ecf.example.collab.editor/src/org/eclipse/ecf/example/collab/editor/wizards/NewSharedSessionWizardPage.java
@@ -21,7 +21,6 @@ import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
import org.eclipse.ecf.core.util.ECFException;
import org.eclipse.ecf.datashare.IChannel;
import org.eclipse.ecf.datashare.IChannelListener;
@@ -31,8 +30,7 @@ import org.eclipse.ecf.example.collab.editor.Activator;
import org.eclipse.ecf.example.collab.editor.EditorListener;
import org.eclipse.ecf.example.collab.editor.message.SharedEditorSessionList;
import org.eclipse.ecf.example.collab.editor.message.SharedEditorSessionListRequest;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.ecf.example.collab.editor.model.SessionInstance;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -55,6 +53,7 @@ import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.dialogs.ContainerSelectionDialog;
@@ -111,17 +110,30 @@ public class NewSharedSessionWizardPage extends WizardPage {
label2.setText("&Shared File:");
label2.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
- sessionViewer = new TableViewer(main, SWT.BORDER);
+ sessionViewer = new TableViewer(main, SWT.BORDER | SWT.FULL_SELECTION);
sessionViewer.setContentProvider(new ListContentProvider());
sessionViewer.setLabelProvider(new SessionNameLabelProvider());
sessionViewer.setInput(sessions);
sessionViewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
+ sessionViewer.getTable().setHeaderVisible(true);
sessionViewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
dialogChanged();
}
});
+
+ TableColumn tc = new TableColumn(sessionViewer.getTable(), SWT.NONE);
+ tc.setText("Filename");
+ tc.setWidth(150);
+
+ tc = new TableColumn(sessionViewer.getTable(), SWT.NONE);
+ tc.setText("Owner");
+ tc.setWidth(150);
+
+ tc = new TableColumn(sessionViewer.getTable(), SWT.NONE);
+ tc.setText("Shared On");
+ tc.setWidth(150);
initialize();
dialogChanged();
@@ -149,11 +161,24 @@ public class NewSharedSessionWizardPage extends WizardPage {
}
public String getColumnText(Object element, int columnIndex) {
- String s = (String) element;
-
- // Assumption that '_' is delimeter character seperating shared
- // group name from file name.
- return s.split("_")[1];
+ String text;
+ SessionInstance instance = (SessionInstance) element;
+
+ switch (columnIndex) {
+ case 0:
+ text = instance.getName();
+ break;
+ case 1:
+ text = instance.getOwner();
+ break;
+ case 2:
+ text = instance.getCreated().toGMTString();
+ break;
+ default:
+ text = "";
+ }
+
+ return text;
}
public void addListener(ILabelProviderListener listener) {
@@ -308,7 +333,9 @@ public class NewSharedSessionWizardPage extends WizardPage {
if (!sessionViewer.getSelection().isEmpty()) {
StructuredSelection s = (StructuredSelection) sessionViewer.getSelection();
- return ((String) s.getFirstElement()).split("_")[1];
+ SessionInstance si = (SessionInstance) s.getFirstElement();
+
+ return si.getName();
}
return null;

Back to the top