Issue #448 clean up group code
Former-commit-id: aad6d7178694bfe9b42171729b4185e65429a515
This commit is contained in:
parent
4b8f81dbcb
commit
8791b7329a
5 changed files with 596 additions and 702 deletions
File diff suppressed because it is too large
Load diff
|
@ -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];
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Add table
Reference in a new issue