diff options
| author | kgilmer | 2006-04-25 21:55:32 +0000 |
|---|---|---|
| committer | kgilmer | 2006-04-25 21:55:32 +0000 |
| commit | 8393c9e53fb9092e319c76da849edef0abc55638 (patch) | |
| tree | c00ff5a1cb20ad39d22e8ff0f2406f64a41887c0 | |
| parent | ee5dcc026b905d38c16fb5e1b669dc68f7661e25 (diff) | |
| download | org.eclipse.ecf-8393c9e53fb9092e319c76da849edef0abc55638.tar.gz org.eclipse.ecf-8393c9e53fb9092e319c76da849edef0abc55638.tar.xz org.eclipse.ecf-8393c9e53fb9092e319c76da849edef0abc55638.zip | |
Bugfixes and usability enhancements.
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; |
