Issue #448 clean up group code

Former-commit-id: aad6d7178694bfe9b42171729b4185e65429a515
This commit is contained in:
Matt Nash 2012-05-01 16:14:22 -05:00
parent 4b8f81dbcb
commit 8791b7329a
5 changed files with 596 additions and 702 deletions

View file

@ -126,6 +126,9 @@ public class CollaborationUtils {
if (file.exists()) {
UserIdWrapper ids = (UserIdWrapper) JAXB.unmarshal(file.getFile(),
UserIdWrapper.class);
if (ids.getUserIds() == null) {
return new UserId[0];
}
return ids.getUserIds();
}
return new UserId[0];

View file

@ -25,18 +25,17 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ITableColorProvider;
import org.eclipse.jface.viewers.ITableFontProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Display;
import com.raytheon.uf.viz.collaboration.comm.identity.IPresence.Type;
import com.raytheon.uf.viz.collaboration.comm.identity.IVenueSession;
import com.raytheon.uf.viz.collaboration.comm.identity.info.IVenueInfo;
import com.raytheon.uf.viz.collaboration.comm.identity.roster.IRosterEntry;
import com.raytheon.uf.viz.collaboration.comm.identity.roster.IRosterGroup;
import com.raytheon.uf.viz.collaboration.comm.provider.user.UserId;
@ -59,8 +58,7 @@ import com.raytheon.uf.viz.collaboration.data.SessionGroupContainer;
* @author rferrel
* @version 1.0
*/
public class UsersTreeLabelProvider implements ITableLabelProvider,
ITableFontProvider, ITableColorProvider {
public class UsersTreeLabelProvider extends ColumnLabelProvider {
private List<ILabelProviderListener> listeners;
private Map<String, Image> imageMap;
@ -73,32 +71,7 @@ public class UsersTreeLabelProvider implements ITableLabelProvider,
}
@Override
public void addListener(ILabelProviderListener listener) {
listeners.add(listener);
}
@Override
public void dispose() {
for (String key : imageMap.keySet()) {
imageMap.get(key).dispose();
}
if (boldFont != null && !boldFont.isDisposed()) {
boldFont.dispose();
}
}
@Override
public boolean isLabelProperty(Object element, String property) {
return false;
}
@Override
public void removeListener(ILabelProviderListener listener) {
listeners.remove(listener);
}
@Override
public Image getColumnImage(Object element, int index) {
public Image getImage(Object element) {
if (Activator.getDefault() == null) {
return null;
}
@ -131,7 +104,7 @@ public class UsersTreeLabelProvider implements ITableLabelProvider,
}
@Override
public String getColumnText(Object element, int index) {
public String getText(Object element) {
if (element instanceof IRosterEntry) {
IRosterEntry entry = (IRosterEntry) element;
if (entry.getUser().getAlias() == null
@ -157,41 +130,8 @@ public class UsersTreeLabelProvider implements ITableLabelProvider,
return null;
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.jface.viewers.ITableColorProvider#getForeground(java.lang
* .Object, int)
*/
@Override
public Color getForeground(Object element, int columnIndex) {
// TODO Auto-generated method stub
return null;
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.jface.viewers.ITableColorProvider#getBackground(java.lang
* .Object, int)
*/
@Override
public Color getBackground(Object element, int columnIndex) {
// TODO Auto-generated method stub
return null;
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.jface.viewers.ITableFontProvider#getFont(java.lang.Object,
* int)
*/
@Override
public Font getFont(Object element, int columnIndex) {
public Font getFont(Object element) {
if (element instanceof IRosterGroup
|| element instanceof SessionGroupContainer) {
// for this case do nothing, as it is not the top level of
@ -205,4 +145,79 @@ public class UsersTreeLabelProvider implements ITableLabelProvider,
}
return null;
}
/**
* Gets the tooltip text on the tree that this is a label provider for
*/
@Override
public String getToolTipText(Object element) {
StringBuilder builder = new StringBuilder();
if (element instanceof IRosterEntry) {
IRosterEntry user = (IRosterEntry) element;
builder.append("ID: ").append(user.getUser().getFQName());
builder.append("\nStatus: ");
if (user.getPresence().getType() == Type.UNAVAILABLE) {
builder.append("Offline");
} else {
builder.append(user.getPresence().getMode().getMode());
// builder.append("Type: ").append(user.getType())
// .append("\n");
String message = user.getPresence().getStatusMessage();
if (message != null && message.length() > 0) {
builder.append("\n");
builder.append("Message: \"").append(
user.getPresence().getStatusMessage() + "\"");
}
}
return builder.toString();
}
// builds the tooltip text for the session group
// portion of the view
else if (element instanceof IVenueSession) {
IVenueSession sessGroup = (IVenueSession) element;
IVenueInfo info = sessGroup.getVenue().getInfo();
builder.append("ID: ").append(info.getVenueID());
builder.append("\nName: ").append(info.getVenueDescription())
.append("\n");
builder.append("Subject: ").append(info.getVenueSubject())
.append("\n");
builder.append("Participants: ").append(info.getParticipantCount());
return builder.toString();
} else {
return null;
}
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.jface.viewers.CellLabelProvider#getToolTipShift(java.lang
* .Object)
*/
@Override
public Point getToolTipShift(Object object) {
return new Point(5, 5);
}
@Override
public void addListener(ILabelProviderListener listener) {
listeners.add(listener);
}
@Override
public void removeListener(ILabelProviderListener listener) {
listeners.remove(listener);
}
@Override
public void dispose() {
for (String key : imageMap.keySet()) {
imageMap.get(key).dispose();
}
if (boldFont != null && !boldFont.isDisposed()) {
boldFont.dispose();
}
}
}

View file

@ -29,7 +29,6 @@ import org.eclipse.jface.preference.IPersistentPreferenceStore;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
@ -103,6 +102,38 @@ public class LoginDialog extends CaveSWTDialog {
this.prefStore = Activator.getDefault().getPreferenceStore();
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.viz.ui.dialogs.CaveSWTDialogBase#initializeComponents(org
* .eclipse.swt.widgets.Shell)
*/
@Override
protected void initializeComponents(Shell shell) {
shell.setLayout(new GridLayout(1, false));
createDialogArea(shell);
createButtonBar(shell);
}
/*
* (non-Javadoc)
*
* @see com.raytheon.viz.ui.dialogs.CaveSWTDialog#preOpened()
*/
@Override
protected void preOpened() {
super.preOpened();
userTF.setText(prefStore.getString(CollabPrefConstants.P_USERNAME));
serverTF.setText(prefStore.getString(CollabPrefConstants.P_SERVER));
statusCombo.select(statusCombo.indexOf(prefStore
.getString(CollabPrefConstants.P_STATUS)));
messageTF.setText(prefStore.getString(CollabPrefConstants.P_MESSAGE));
userTF.selectAll();
userTF.setFocus();
}
/**
* @param parent
* @return
@ -135,7 +166,7 @@ public class LoginDialog extends CaveSWTDialog {
gd.minimumWidth = 45;
serverButton.setLayoutData(gd);
serverButton.setToolTipText("Change Server");
serverButton.addSelectionListener(new SelectionListener() {
serverButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
@ -143,6 +174,10 @@ public class LoginDialog extends CaveSWTDialog {
serverButton.setText("Edit");
serverButton.setToolTipText("Change Server");
serverTF.setEditable(false);
messageTF.setEnabled(true);
passwordTF.setEnabled(true);
statusCombo.setEnabled(true);
userTF.setEnabled(true);
serverTF.setBackground(serverTF.getParent().getBackground());
String server = serverTF.getText().trim();
serverTF.setText(server);
@ -157,14 +192,14 @@ public class LoginDialog extends CaveSWTDialog {
serverTF.setBackground(null);
serverTF.selectAll();
serverTF.setFocus();
messageTF.setEnabled(false);
passwordTF.setEnabled(false);
statusCombo.setEnabled(false);
userTF.setEnabled(false);
serverTF.getParent().setTabList(withServerList);
logOnButton.setEnabled(false);
}
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
label = new Label(body, SWT.NONE);
@ -202,20 +237,6 @@ public class LoginDialog extends CaveSWTDialog {
return body;
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.viz.ui.dialogs.CaveSWTDialogBase#initializeComponents(org
* .eclipse.swt.widgets.Shell)
*/
@Override
protected void initializeComponents(Shell shell) {
shell.setLayout(new GridLayout(1, false));
createDialogArea(shell);
createButtonBar(shell);
}
/**
* @param parent
*/
@ -231,24 +252,6 @@ public class LoginDialog extends CaveSWTDialog {
IDialogConstants.CANCEL_LABEL, false);
}
/*
* (non-Javadoc)
*
* @see com.raytheon.viz.ui.dialogs.CaveSWTDialog#preOpened()
*/
@Override
protected void preOpened() {
super.preOpened();
userTF.setText(prefStore.getString(CollabPrefConstants.P_USERNAME));
serverTF.setText(prefStore.getString(CollabPrefConstants.P_SERVER));
statusCombo.select(statusCombo.indexOf(prefStore
.getString(CollabPrefConstants.P_STATUS)));
messageTF.setText(prefStore.getString(CollabPrefConstants.P_MESSAGE));
userTF.selectAll();
userTF.setFocus();
}
/**
* Creates a new button with the given id.
* <p>

View file

@ -159,26 +159,26 @@ public class PopupNotifier {
shell.setVisible(true);
activeShells.add(shell);
startTimer();
startTimer(shell);
}
}
/**
* @wbp.parser.entryPoint
*/
private static void startTimer() {
private static void startTimer(final Shell currShell) {
Timer timer = new Timer("Remove notification");
TimerTask task = new TimerTask() {
@Override
public void run() {
try {
if (shell == null || shell.isDisposed()) {
if (currShell == null || currShell.isDisposed()) {
return;
}
VizApp.runAsync(new Runnable() {
public void run() {
shell.dispose();
currShell.dispose();
};
});
} catch (Exception e) {