Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkgilmer2005-08-30 03:37:30 +0000
committerkgilmer2005-08-30 03:37:30 +0000
commit2df5948957daff1d257eb2d5b44c2f7a255603ff (patch)
tree0f559a5ba8534af275f354ce83e0cb881c9f8616
parent02b9bbb31698ce450c565e8c20472b271ed0f363 (diff)
downloadorg.eclipse.ecf-2df5948957daff1d257eb2d5b44c2f7a255603ff.tar.gz
org.eclipse.ecf-2df5948957daff1d257eb2d5b44c2f7a255603ff.tar.xz
org.eclipse.ecf-2df5948957daff1d257eb2d5b44c2f7a255603ff.zip
Initial checkin. not yet functional
-rw-r--r--framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/dialogs/ChatRoomSelectionDialog.java173
1 files changed, 173 insertions, 0 deletions
diff --git a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/dialogs/ChatRoomSelectionDialog.java b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/dialogs/ChatRoomSelectionDialog.java
new file mode 100644
index 000000000..d1357f0fe
--- /dev/null
+++ b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/dialogs/ChatRoomSelectionDialog.java
@@ -0,0 +1,173 @@
+package org.eclipse.ecf.ui.dialogs;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.ecf.core.identity.ID;
+import org.eclipse.ecf.presence.chat.IChatRoomManager;
+import org.eclipse.ecf.presence.chat.IRoomInfo;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.TitleAreaDialog;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+
+public class ChatRoomSelectionDialog extends TitleAreaDialog {
+ IChatRoomManager manager = null;
+
+ public ChatRoomSelectionDialog(Shell parentShell, IChatRoomManager manager) {
+ super(parentShell);
+ this.manager = manager;
+ }
+
+ protected Control createDialogArea(Composite parent) {
+ Composite main = new Composite(parent, SWT.NONE);
+ main.setLayout(new GridLayout());
+ main.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+ TableViewer viewer = new TableViewer(main, SWT.BORDER | SWT.FULL_SELECTION);
+ Table table = viewer.getTable();
+
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+ table.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+ TableColumn tc = new TableColumn(table, SWT.NONE);
+ tc.setText("Name");
+ tc.pack();
+ tc = new TableColumn(table, SWT.NONE);
+ tc.setText("Subject");
+ tc.pack();
+ tc = new TableColumn(table, SWT.NONE);
+ tc.setText("Description");
+ tc.pack();
+ tc = new TableColumn(table, SWT.NONE);
+ tc.setText("Members");
+ tc.pack();
+ tc = new TableColumn(table, SWT.NONE);
+ tc.setText("Moderated");
+ tc.pack();
+ tc = new TableColumn(table, SWT.NONE);
+ tc.setText("Persistent");
+ tc.pack();
+ viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+
+ public void selectionChanged(SelectionChangedEvent event) {
+ if (!event.getSelection().isEmpty()) {
+ ChatRoomSelectionDialog.this.getButton(Dialog.OK).setEnabled(true);
+ }
+ }
+
+ });
+
+ viewer.setContentProvider(new ChatRoomContentProvider());
+ viewer.setLabelProvider(new ChatRoomLabelProvider());
+
+ ID[] rooms = manager.getChatRooms();
+
+ if (rooms != null && rooms.length > 0) {
+ List roomInfo = new ArrayList();
+
+ for (int i = 0; i < rooms.length; ++i) {
+ roomInfo.add(manager.getChatRoomInfo(rooms[i]));
+ }
+
+ viewer.setInput(roomInfo.toArray(new IRoomInfo[rooms.length]));
+ }
+
+ this.setTitle("Chatroom Selection");
+ this.setMessage("Select a chatroom to enter.");
+
+ return parent;
+ }
+
+ private class ChatRoomContentProvider implements IStructuredContentProvider {
+
+ public Object[] getElements(Object inputElement) {
+
+ return (IRoomInfo[]) inputElement;
+ }
+
+ public void dispose() {
+ }
+
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ }
+
+ }
+
+ private class ChatRoomLabelProvider implements ITableLabelProvider {
+
+ public Image getColumnImage(Object element, int columnIndex) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getColumnText(Object element, int columnIndex) {
+ IRoomInfo info = (IRoomInfo) element;
+
+ switch (columnIndex) {
+ case 0:
+ return info.getName();
+ case 1:
+ return info.getSubject();
+ case 2:
+ return info.getDescription();
+ case 3:
+ return String.valueOf(info.getParticipantsCount());
+ case 4:
+ return String.valueOf(info.isModerated());
+ case 5:
+ return String.valueOf(info.isPersistent());
+ default:
+ return "";
+
+ }
+
+ }
+
+ public void addListener(ILabelProviderListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void dispose() {
+ // TODO Auto-generated method stub
+
+ }
+
+ public boolean isLabelProperty(Object element, String property) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public void removeListener(ILabelProviderListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ }
+
+ protected Control createButtonBar(Composite parent) {
+
+ Control bar = super.createButtonBar(parent);
+ this.getButton(Dialog.OK).setText("Enter");
+ this.getButton(Dialog.OK).setEnabled(false);
+ return bar;
+ }
+}

Back to the top