// private final static Log log =
// LogFactory.getLog(UserTableComposite.class);
+ private static final long serialVersionUID = -7385959046279360420L;
+
private TableViewer usersViewer;
private Text filterTxt;
private final static String FILTER_HELP_MSG = "Type filter criterion "
public TableViewer getTableViewer() {
return usersViewer;
}
+
+ /** Returns filter String or null*/
+ protected String getFilterString() {
+ return hasFilter ? filterTxt.getText() : null;
+ }
+
+
private TableViewer createTableViewer(final Composite parent) {
int style = SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL;
TableViewerColumn column;
int offset = 0;
- // if (hasSelectionColumn) {
if (hasSelectionColumn) {
offset = 1;
column = ViewerUtils.createTableViewerColumn(viewer, "", SWT.NONE,
25);
- // column.setEditingSupport(new SelectedEditingSupport(viewer));
column.setLabelProvider(new ColumnLabelProvider() {
+ private static final long serialVersionUID = 1L;
+
@Override
public String getText(Object element) {
return null;
}
});
SelectionAdapter selectionAdapter = new SelectionAdapter() {
+ private static final long serialVersionUID = 1L;
+
boolean allSelected = false;
@Override
return viewer;
}
- // private class SelectedEditingSupport extends EditingSupport {
- // private final TableViewer viewer;
- //
- // public SelectedEditingSupport(TableViewer viewer) {
- // super(viewer);
- // this.viewer = viewer;
- // }
- //
- // @Override
- // protected CellEditor getCellEditor(Object element) {
- // return new CheckboxCellEditor(viewer.getTable());
- // }
- //
- // @Override
- // protected boolean canEdit(Object element) {
- // return true;
- // }
- //
- // @Override
- // protected Object getValue(Object element) {
- // return selectedItems.contains(element);
- // }
- //
- // @Override
- // protected void setValue(Object element, Object value) {
- // if ((Boolean) value && !selectedItems.contains(element))
- // selectedItems.add((Node) element);
- // else if (!(Boolean) value && selectedItems.contains(element))
- // selectedItems.remove((Node) element);
- // viewer.update(element, null);
- // }
- // }
-
private class CLProvider extends SimpleJcrNodeLabelProvider {
+ private static final long serialVersionUID = 1L;
+
public CLProvider(String propertyName) {
super(propertyName);
}
}
private class UsersContentProvider implements IStructuredContentProvider {
+ private static final long serialVersionUID = 1L;
public Object[] getElements(Object inputElement) {
return (Object[]) inputElement;
filterTxt.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
| GridData.HORIZONTAL_ALIGN_FILL));
filterTxt.addModifyListener(new ModifyListener() {
+ private static final long serialVersionUID = 1L;
public void modifyText(ModifyEvent event) {
refreshFilteredList();
/**
* Refresh the user list: caller might overwrite in order to display a
- * subset of all users
+ * subset of all users, typically to remove current user from the list
*/
protected void refreshFilteredList() {
- // if (hasSelectionColumn)
- // selectedItems.clear();
-
List<Node> nodes;
try {
nodes = JcrUtils.nodeIteratorToList(listFilteredElements(session,
}
}
- // /**
- // * Enable a children class to directly set an array of users to the
- // viewer,
- // * when such a behaviour cannot be achieved by overwriting the
- // * refreshFilteredList() method
- // */
- // protected void setFilteredList(Object[] nodes) {
- // // if (hasSelectionColumn)
- // // selectedItems.clear();
- // usersViewer.setInput(nodes);
- // }
-
/**
* Build repository request : caller might overwrite in order to display a
* subset of all users
Selector source = factory.selector(ArgeoTypes.ARGEO_USER_PROFILE,
ArgeoTypes.ARGEO_USER_PROFILE);
- // // Create a dynamic operand for each property on which we want to
- // filter
- // DynamicOperand userIdDO = factory.propertyValue(
- // source.getSelectorName(), ARGEO_USER_ID);
- // DynamicOperand fullNameDO = factory.propertyValue(
- // source.getSelectorName(), Property.JCR_TITLE);
- // DynamicOperand mailDO =
- // factory.propertyValue(source.getSelectorName(),
- // ARGEO_PRIMARY_EMAIL);
-
- // Default Constraint: no source artifacts
+ // Dynamically build constraint depending on the filter String
Constraint defaultC = null;
- // Build constraints based the textArea content
if (filter != null && !"".equals(filter.trim())) {
- // Parse the String
String[] strs = filter.trim().split(" ");
for (String token : strs) {
StaticOperand so = factory.literal(session.getValueFactory()
password2 = EclipseUiUtils.createGridLP(composite, "Repeat password",
this);
setControl(composite);
+
+ // Initialize buttons
+ setPageComplete(false);
+ getContainer().updateButtons();
}
@Override
public void modifyText(ModifyEvent event) {
String message = checkComplete();
- if (message != null)
+ if (message != null) {
setMessage(message, WizardPage.ERROR);
- else {
+ setPageComplete(false);
+ } else {
setMessage("Complete", WizardPage.INFORMATION);
setPageComplete(true);
}
+ getContainer().updateButtons();
}
/** @return error message or null if complete */
protected String checkComplete() {
-// if (!username.getText().matches(UserAdminService.USERNAME_PATTERN))
-// return "Wrong user name format, should be lower case, between 3 and 64 characters with only '_' an '@' as acceptable special character.";
+ // if (!username.getText().matches(UserAdminService.USERNAME_PATTERN))
+ // return
+ // "Wrong user name format, should be lower case, between 3 and 64 characters with only '_' an '@' as acceptable special character.";
+
+ if (username.getText().trim().equals(""))
+ return "User name must not be empty";
+
try {
UserDetails userDetails = userAdminService
.loadUserByUsername(username.getText());
import java.util.Map;
import javax.jcr.Node;
+import javax.jcr.NodeIterator;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.version.VersionManager;
// Pages definition
/** Displays a combo box that enables user to choose which action to perform */
private class ChooseCommandWizardPage extends WizardPage {
+ private static final long serialVersionUID = 1L;
+
private Combo chooseCommandCmb;
private Button trueChk;
private Text valueTxt;
true));
chooseCommandCmb.addSelectionListener(new SelectionListener() {
+ private static final long serialVersionUID = 1L;
+
@Override
public void widgetSelected(SelectionEvent e) {
if (getCommand().equals(CMD_UPDATE_PASSWORD))
*/
private class ChooseUsersWizardPage extends WizardPage implements
IPageChangedListener {
+ private static final long serialVersionUID = 1L;
private UserTableComposite userTableCmp;
private Composite container;
private Session session;
public void createControl(Composite parent) {
container = new Composite(parent, SWT.NONE);
container.setLayout(new FillLayout());
- userTableCmp = new UserTableComposite(container, SWT.NO_FOCUS,
- session);
+ userTableCmp = new MyUserTableCmp(container, SWT.NO_FOCUS, session);
userTableCmp.populate(true, true);
setControl(container);
protected List<Node> getSelectedUsers() {
return userTableCmp.getSelectedUsers();
}
+
+ private class MyUserTableCmp extends UserTableComposite {
+
+ private static final long serialVersionUID = 1L;
+
+ public MyUserTableCmp(Composite parent, int style, Session session) {
+ super(parent, style, session);
+ }
+
+ @Override
+ protected void refreshFilteredList() {
+ List<Node> nodes = new ArrayList<Node>();
+ try {
+ NodeIterator ni = listFilteredElements(session,
+ getFilterString());
+
+ users: while (ni.hasNext()) {
+ Node currNode = ni.nextNode();
+ String username = currNode.hasProperty(ARGEO_USER_ID) ? currNode
+ .getProperty(ARGEO_USER_ID).getString() : "";
+ if (username.equals(session.getUserID()))
+ continue users;
+ else
+ nodes.add(currNode);
+ }
+ getTableViewer().setInput(nodes.toArray());
+ } catch (RepositoryException e) {
+ throw new ArgeoException("Unable to list users", e);
+ }
+ }
+ }
}
/**
*/
private class ValidateAndLaunchWizardPage extends WizardPage implements
IPageChangedListener {
+ private static final long serialVersionUID = 1L;
private UserTableComposite userTableCmp;
private Session session;