Search in sources :

Example 6 with CellStyleGenerator

use of com.vaadin.v7.ui.Table.CellStyleGenerator in project opencms-core by alkacon.

the class CmsUserTable method init.

/**
 * initializes table.
 * @param showAll boolean
 */
protected void init(boolean showAll) {
    m_menu = new CmsContextMenu();
    m_menu.setAsTableContextMenu(this);
    m_container = new IndexedContainer();
    for (TableProperty prop : TableProperty.values()) {
        m_container.addContainerProperty(prop, prop.getType(), prop.getDefault());
        setColumnHeader(prop, prop.getName());
    }
    m_app.addUserContainerProperties(m_container);
    setContainerDataSource(m_container);
    setItemIconPropertyId(TableProperty.Icon);
    setRowHeaderMode(RowHeaderMode.ICON_ONLY);
    setColumnWidth(null, 40);
    setColumnWidth(TableProperty.STATUS, 100);
    setSelectable(true);
    setMultiSelect(true);
    setVisibleColumns(TableProperty.Name, TableProperty.OU);
    fillContainer(showAll);
    addItemClickListener(new ItemClickListener() {

        private static final long serialVersionUID = 4807195510202231174L;

        @SuppressWarnings("unchecked")
        public void itemClick(ItemClickEvent event) {
            changeValueIfNotMultiSelect(event.getItemId());
            if (event.getButton().equals(MouseButton.RIGHT) || (event.getPropertyId() == null)) {
                Set<String> userIds = new HashSet<String>();
                for (CmsUser user : (Set<CmsUser>) getValue()) {
                    userIds.add(user.getId().getStringValue());
                }
                m_menu.setEntries(getMenuEntries(), userIds);
                m_menu.openForTable(event, event.getItemId(), event.getPropertyId(), CmsUserTable.this);
            } else if (event.getButton().equals(MouseButton.LEFT) && TableProperty.Name.equals(event.getPropertyId())) {
                CmsUser user = ((Set<CmsUser>) getValue()).iterator().next();
                try {
                    openInfoDialog(user.getId());
                } catch (CmsException e) {
                    LOG.error("Error on opening user info dialog", e);
                }
            }
        }
    });
    setCellStyleGenerator(new CellStyleGenerator() {

        private static final long serialVersionUID = 4685652851810828147L;

        public String getStyle(Table source, Object itemId, Object propertyId) {
            if (TableProperty.STATUS.equals(propertyId)) {
                return getStatusStyleForItem(source.getItem(itemId), (CmsUser) itemId);
            }
            String css = " ";
            if (((Boolean) (source.getItem(itemId).getItemProperty(TableProperty.FROMOTHEROU).getValue())).booleanValue()) {
                css += OpenCmsTheme.EXPIRED;
            }
            if (TableProperty.Name.equals(propertyId)) {
                css += " " + OpenCmsTheme.HOVER_COLUMN;
            }
            if (((Boolean) source.getItem(itemId).getItemProperty(TableProperty.INDIRECT).getValue()).booleanValue()) {
                return css + " " + OpenCmsTheme.TABLE_CELL_DISABLED;
            }
            return css.length() == 1 ? null : css;
        }

        private String getStatusStyleForItem(Item item, CmsUser user) {
            if (((Boolean) item.getItemProperty(TableProperty.DISABLED).getValue()).booleanValue()) {
                return OpenCmsTheme.TABLE_COLUMN_BOX_GRAY;
            }
            if (OpenCms.getLoginManager().isUserTempDisabled(user.getName())) {
                return OpenCmsTheme.TABLE_COLUMN_BOX_RED;
            }
            if (((Boolean) item.getItemProperty(TableProperty.NEWUSER).getValue()).booleanValue()) {
                return OpenCmsTheme.TABLE_COLUMN_BOX_BLUE;
            }
            if (isUserPasswordReset(user)) {
                return OpenCmsTheme.TABLE_COLUMN_BOX_ORANGE;
            }
            return OpenCmsTheme.TABLE_COLUMN_BOX_GREEN;
        }
    });
    addGeneratedColumn(TableProperty.STATUS, new ColumnGenerator() {

        private static final long serialVersionUID = -2144476865774782965L;

        public Object generateCell(Table source, Object itemId, Object columnId) {
            return getStatus((CmsUser) itemId, ((Boolean) source.getItem(itemId).getItemProperty(TableProperty.DISABLED).getValue()).booleanValue(), ((Boolean) source.getItem(itemId).getItemProperty(TableProperty.NEWUSER).getValue()).booleanValue());
        }
    });
    addGeneratedColumn(TableProperty.LastLogin, new ColumnGenerator() {

        private static final long serialVersionUID = -6781906011584975559L;

        public Object generateCell(Table source, Object itemId, Object columnId) {
            long lastLogin = ((Long) source.getItem(itemId).getItemProperty(TableProperty.LastLogin).getValue()).longValue();
            return lastLogin == 0L ? CmsVaadinUtils.getMessageText(Messages.GUI_USERMANAGEMENT_USER_NEVER_LOGGED_IN_0) : CmsDateUtil.getDateTime(new Date(lastLogin), DateFormat.SHORT, A_CmsUI.get().getLocale());
        }
    });
    addGeneratedColumn(TableProperty.Created, new ColumnGenerator() {

        private static final long serialVersionUID = -6781906011584975559L;

        public Object generateCell(Table source, Object itemId, Object columnId) {
            long created = ((Long) source.getItem(itemId).getItemProperty(TableProperty.Created).getValue()).longValue();
            return created == 0L ? "" : CmsDateUtil.getDateTime(new Date(created), DateFormat.SHORT, A_CmsUI.get().getLocale());
        }
    });
    setItemDescriptionGenerator(new ItemDescriptionGenerator() {

        private static final long serialVersionUID = 7367011213487089661L;

        public String generateDescription(Component source, Object itemId, Object propertyId) {
            if (TableProperty.STATUS.equals(propertyId)) {
                return getStatusHelp((CmsUser) itemId, ((Boolean) ((Table) source).getItem(itemId).getItemProperty(TableProperty.DISABLED).getValue()).booleanValue(), ((Boolean) ((Table) source).getItem(itemId).getItemProperty(TableProperty.NEWUSER).getValue()).booleanValue());
            }
            return null;
        }
    });
    setVisibleColumns(TableProperty.STATUS, TableProperty.Name, TableProperty.FullName, TableProperty.OU, TableProperty.LastLogin, TableProperty.Created);
}
Also used : CmsContextMenu(org.opencms.ui.contextmenu.CmsContextMenu) ItemClickListener(com.vaadin.v7.event.ItemClickEvent.ItemClickListener) Set(java.util.Set) HashSet(java.util.HashSet) Table(com.vaadin.v7.ui.Table) IndexedContainer(com.vaadin.v7.data.util.IndexedContainer) CmsUser(org.opencms.file.CmsUser) ItemClickEvent(com.vaadin.v7.event.ItemClickEvent) Date(java.util.Date) Item(com.vaadin.v7.data.Item) CmsException(org.opencms.main.CmsException) CmsObject(org.opencms.file.CmsObject) Component(com.vaadin.ui.Component)

Aggregations

Item (com.vaadin.v7.data.Item)6 Table (com.vaadin.v7.ui.Table)6 IndexedContainer (com.vaadin.v7.data.util.IndexedContainer)5 ItemClickEvent (com.vaadin.v7.event.ItemClickEvent)5 ItemClickListener (com.vaadin.v7.event.ItemClickEvent.ItemClickListener)5 CmsObject (org.opencms.file.CmsObject)5 CmsContextMenu (org.opencms.ui.contextmenu.CmsContextMenu)4 CmsException (org.opencms.main.CmsException)3 Component (com.vaadin.ui.Component)2 ArrayList (java.util.ArrayList)2 HashSet (java.util.HashSet)2 List (java.util.List)2 Set (java.util.Set)2 ClickEvent (com.vaadin.ui.Button.ClickEvent)1 ClickListener (com.vaadin.ui.Button.ClickListener)1 HorizontalSplitPanel (com.vaadin.ui.HorizontalSplitPanel)1 ValueChangeEvent (com.vaadin.v7.data.Property.ValueChangeEvent)1 ValueChangeListener (com.vaadin.v7.data.Property.ValueChangeListener)1 TextChangeEvent (com.vaadin.v7.event.FieldEvents.TextChangeEvent)1 TextChangeListener (com.vaadin.v7.event.FieldEvents.TextChangeListener)1