Search in sources :

Example 1 with CubaUI

use of com.haulmont.cuba.web.widgets.CubaUI in project cuba by cuba-platform.

the class WebAbstractDataGrid method onItemClick.

protected void onItemClick(Grid.ItemClick<E> e) {
    CubaUI ui = (CubaUI) component.getUI();
    if (!ui.isAccessibleForUser(component)) {
        LoggerFactory.getLogger(WebDataGrid.class).debug("Ignore click attempt because DataGrid is inaccessible for user");
        return;
    }
    com.vaadin.shared.MouseEventDetails vMouseEventDetails = e.getMouseEventDetails();
    if (vMouseEventDetails.isDoubleClick() && e.getItem() != null && !WebAbstractDataGrid.this.isEditorEnabled()) {
        // note: for now Grid doesn't send double click if editor is enabled,
        // but it's better to handle it manually
        handleDoubleClickAction();
    }
    if (hasSubscriptions(ItemClickEvent.class)) {
        MouseEventDetails mouseEventDetails = WebWrapperUtils.toMouseEventDetails(vMouseEventDetails);
        E item = e.getItem();
        if (item == null) {
            // datasource, so we don't want to send such event because it's useless
            return;
        }
        Column<E> column = e.getColumn() != null ? getColumnById(e.getColumn().getId()) : null;
        ItemClickEvent<E> event = new ItemClickEvent<>(WebAbstractDataGrid.this, mouseEventDetails, item, item.getId(), column != null ? column.getId() : null);
        publish(ItemClickEvent.class, event);
    }
}
Also used : CubaUI(com.haulmont.cuba.web.widgets.CubaUI)

Example 2 with CubaUI

use of com.haulmont.cuba.web.widgets.CubaUI in project cuba by cuba-platform.

the class WebAbstractTable method initComponent.

protected void initComponent(T component) {
    component.setMultiSelect(false);
    component.setValidationVisible(false);
    component.setShowBufferedSourceException(false);
    component.setCustomCellValueFormatter(this::formatCellValue);
    component.addValueChangeListener(this::tableSelectionChanged);
    component.setSpecificVariablesHandler(this::handleSpecificVariables);
    component.setIconProvider(this::getItemIcon);
    component.setBeforePaintListener(this::beforeComponentPaint);
    component.setSortAscendingLabel(messages.getMainMessage("tableSort.ascending"));
    component.setSortResetLabel(messages.getMainMessage("tableSort.reset"));
    component.setSortDescendingLabel(messages.getMainMessage("tableSort.descending"));
    component.setSelectAllLabel(messages.getMainMessage("tableColumnSelector.selectAll"));
    component.setDeselectAllLabel(messages.getMainMessage("tableColumnSelector.deselectAll"));
    int defaultRowHeaderWidth = 16;
    ThemeConstantsManager themeConstantsManager = beanLocator.get(ThemeConstantsManager.NAME, ThemeConstantsManager.class);
    ThemeConstants theme = themeConstantsManager.getConstants();
    if (theme != null) {
        defaultRowHeaderWidth = theme.getInt("cuba.web.Table.defaultRowHeaderWidth", 16);
    }
    component.setColumnWidth(ROW_HEADER_PROPERTY_ID, defaultRowHeaderWidth);
    contextMenuPopup.setParent(component);
    component.setContextMenuPopup(contextMenuPopup);
    shortcutsDelegate.setAllowEnterShortcut(false);
    component.addShortcutListener(new ShortcutListenerDelegate("tableEnter", KeyCode.ENTER, null).withHandler((sender, target) -> {
        T tableImpl = WebAbstractTable.this.component;
        CubaUI ui = (CubaUI) tableImpl.getUI();
        if (!ui.isAccessibleForUser(tableImpl)) {
            LoggerFactory.getLogger(WebAbstractTable.class).debug("Ignore click attempt because Table is inaccessible for user");
            return;
        }
        if (target == this.component) {
            if (enterPressAction != null) {
                enterPressAction.actionPerform(this);
            } else {
                handleClickAction();
            }
        }
    }));
    component.addShortcutListener(new ShortcutListenerDelegate("tableSelectAll", KeyCode.A, new int[] { com.vaadin.event.ShortcutAction.ModifierKey.CTRL }).withHandler((sender, target) -> {
        if (target == this.component) {
            selectAll();
        }
    }));
    component.addItemClickListener(event -> {
        if (event.isDoubleClick() && event.getItem() != null) {
            T tableImpl = WebAbstractTable.this.component;
            CubaUI ui = (CubaUI) tableImpl.getUI();
            if (!ui.isAccessibleForUser(tableImpl)) {
                LoggerFactory.getLogger(WebAbstractTable.class).debug("Ignore click attempt because Table is inaccessible for user");
                return;
            }
            handleClickAction();
        }
    });
    component.setAfterUnregisterComponentHandler(this::onAfterUnregisterComponent);
    component.setBeforeRefreshRowCacheHandler(this::onBeforeRefreshRowCache);
    component.setSelectable(true);
    component.setTableFieldFactory(createFieldFactory());
    component.setColumnCollapsingAllowed(true);
    component.setColumnReorderingAllowed(true);
    setEditable(false);
    componentComposition = new TableComposition();
    componentComposition.setTable(component);
    componentComposition.setPrimaryStyleName("c-table-composition");
    componentComposition.addComponent(component);
    component.setCellStyleGenerator(createStyleGenerator());
    component.addColumnCollapseListener(this::handleColumnCollapsed);
    // force default sizes
    componentComposition.setHeightUndefined();
    componentComposition.setWidthUndefined();
    setClientCaching();
    initEmptyState();
}
Also used : com.haulmont.cuba.web.gui.components.table(com.haulmont.cuba.web.gui.components.table) AggregationContainer(com.haulmont.cuba.web.widgets.data.AggregationContainer) Datasource(com.haulmont.cuba.gui.data.Datasource) DynamicAttributesTools(com.haulmont.cuba.core.app.dynamicattributes.DynamicAttributesTools) DsBuilder(com.haulmont.cuba.gui.data.DsBuilder) PresentationsImpl(com.haulmont.cuba.gui.presentations.PresentationsImpl) BiFunction(java.util.function.BiFunction) LoggerFactory(org.slf4j.LoggerFactory) DatatypeRegistry(com.haulmont.chile.core.datatypes.DatatypeRegistry) InstallTargetHandler(com.haulmont.cuba.gui.screen.InstallTargetHandler) StringUtils(org.apache.commons.lang3.StringUtils) KeyValueMetaClass(com.haulmont.cuba.core.app.keyvalue.KeyValueMetaClass) DatasourceImplementation(com.haulmont.cuba.gui.data.impl.DatasourceImplementation) com.haulmont.cuba.gui.model(com.haulmont.cuba.gui.model) IconResolver(com.haulmont.cuba.web.gui.icons.IconResolver) HasValueSource(com.haulmont.cuba.gui.components.data.HasValueSource) ScreenContext(com.haulmont.cuba.gui.screen.ScreenContext) Window(com.haulmont.cuba.gui.components.Window) LocaleHelper(com.haulmont.cuba.core.entity.LocaleHelper) CategoryAttribute(com.haulmont.cuba.core.entity.CategoryAttribute) AppUI(com.haulmont.cuba.web.AppUI) BaseAction(com.haulmont.cuba.gui.components.actions.BaseAction) ParseException(java.text.ParseException) Preconditions.checkNotNullArgument(com.haulmont.bali.util.Preconditions.checkNotNullArgument) ColumnHeaderMode(com.vaadin.v7.ui.Table.ColumnHeaderMode) Method(java.lang.reflect.Method) com.haulmont.cuba.gui.components(com.haulmont.cuba.gui.components) Property(com.vaadin.v7.data.Property) Presentations(com.haulmont.cuba.gui.presentations.Presentations) ConverterUtil(com.vaadin.v7.data.util.converter.ConverterUtil) ThemeConstantsManager(com.haulmont.cuba.gui.theme.ThemeConstantsManager) ContainerDataUnit(com.haulmont.cuba.gui.components.data.meta.ContainerDataUnit) Presentation(com.haulmont.cuba.security.entity.Presentation) Collectors(java.util.stream.Collectors) InvocationTargetException(java.lang.reflect.InvocationTargetException) EntityOp(com.haulmont.cuba.security.entity.EntityOp) com.haulmont.chile.core.model(com.haulmont.chile.core.model) BindingState(com.haulmont.cuba.gui.components.data.BindingState) WebConfig(com.haulmont.cuba.web.WebConfig) ThemeConstants(com.haulmont.cuba.gui.theme.ThemeConstants) TablePresentations(com.haulmont.cuba.web.gui.components.presentations.TablePresentations) ClientConfig(com.haulmont.cuba.client.ClientConfig) AbstractSelect(com.vaadin.v7.ui.AbstractSelect) AggregationInputValueChangeContext(com.haulmont.cuba.web.widgets.CubaEnhancedTable.AggregationInputValueChangeContext) ShowInfoAction(com.haulmont.cuba.gui.components.sys.ShowInfoAction) UiTestIds(com.haulmont.cuba.gui.sys.UiTestIds) CubaButton(com.haulmont.cuba.web.widgets.CubaButton) Document(org.dom4j.Document) java.util(java.util) LookupSelectionChangeNotifier(com.haulmont.cuba.gui.components.LookupComponent.LookupSelectionChangeNotifier) KeyValueContainerImpl(com.haulmont.cuba.gui.model.impl.KeyValueContainerImpl) CubaValueChangeEvent(com.haulmont.cuba.web.widgets.compatibility.CubaValueChangeEvent) ValueConversionException(com.haulmont.chile.core.datatypes.ValueConversionException) DocumentHelper(org.dom4j.DocumentHelper) DynamicAttributesUtils(com.haulmont.cuba.core.app.dynamicattributes.DynamicAttributesUtils) DatasourceTableItems(com.haulmont.cuba.gui.components.data.table.DatasourceTableItems) BooleanUtils(org.apache.commons.lang3.BooleanUtils) Converter(com.vaadin.v7.data.util.converter.Converter) Function(java.util.function.Function) CollectionUtils(org.apache.commons.collections4.CollectionUtils) InitializingBean(org.springframework.beans.factory.InitializingBean) com.haulmont.cuba.core.global(com.haulmont.cuba.core.global) Inject(javax.inject.Inject) Strings(com.google.common.base.Strings) Datatype(com.haulmont.chile.core.datatypes.Datatype) Subscription(com.haulmont.bali.events.Subscription) Resource(com.vaadin.server.Resource) KeyCode(com.vaadin.event.ShortcutAction.KeyCode) Nullable(javax.annotation.Nullable) PersistenceManagerClient(com.haulmont.cuba.client.sys.PersistenceManagerClient) CubaEnhancedTable(com.haulmont.cuba.web.widgets.CubaEnhancedTable) Logger(org.slf4j.Logger) EntityTableItems(com.haulmont.cuba.gui.components.data.meta.EntityTableItems) FrameOwner(com.haulmont.cuba.gui.screen.FrameOwner) EmptyDataUnit(com.haulmont.cuba.gui.components.data.meta.EmptyDataUnit) Aggregation(com.haulmont.cuba.gui.data.aggregation.Aggregation) Sizeable(com.vaadin.server.Sizeable) Preconditions(com.haulmont.bali.util.Preconditions) Consumer(java.util.function.Consumer) ColumnManager(com.haulmont.cuba.gui.components.columnmanager.ColumnManager) VaadinSession(com.vaadin.server.VaadinSession) DatasourceDataUnit(com.haulmont.cuba.gui.components.data.meta.DatasourceDataUnit) ShortcutListenerDelegate(com.haulmont.cuba.web.gui.components.util.ShortcutListenerDelegate) AggregatableTableItems(com.haulmont.cuba.gui.components.data.AggregatableTableItems) TableItems(com.haulmont.cuba.gui.components.data.TableItems) Notifications(com.haulmont.cuba.gui.Notifications) Element(org.dom4j.Element) CubaUI(com.haulmont.cuba.web.widgets.CubaUI) CollectionDatasource(com.haulmont.cuba.gui.data.CollectionDatasource) Aggregations(com.haulmont.cuba.gui.data.aggregation.Aggregations) Entity(com.haulmont.cuba.core.entity.Entity) UiControllerUtils(com.haulmont.cuba.gui.screen.UiControllerUtils) Component(com.vaadin.ui.Component) com.vaadin.ui(com.vaadin.ui) ThemeConstants(com.haulmont.cuba.gui.theme.ThemeConstants) ThemeConstantsManager(com.haulmont.cuba.gui.theme.ThemeConstantsManager) ShortcutListenerDelegate(com.haulmont.cuba.web.gui.components.util.ShortcutListenerDelegate) CubaUI(com.haulmont.cuba.web.widgets.CubaUI)

Example 3 with CubaUI

use of com.haulmont.cuba.web.widgets.CubaUI in project cuba by cuba-platform.

the class MenuShortcutAction method handleAction.

@Override
public void handleAction(Object sender, Object target) {
    Component menuImpl = menuItem.getMenu().unwrap(Component.class);
    CubaUI ui = (CubaUI) menuImpl.getUI();
    if (ui.isAccessibleForUser(menuImpl)) {
        menuItem.getCommand().accept(menuItem);
    } else {
        LoggerFactory.getLogger(MenuShortcutAction.class).debug("Ignoring shortcut action because menu is inaccessible for user");
    }
}
Also used : CubaUI(com.haulmont.cuba.web.widgets.CubaUI) Component(com.vaadin.ui.Component)

Example 4 with CubaUI

use of com.haulmont.cuba.web.widgets.CubaUI in project cuba by cuba-platform.

the class WebDialogWindow method onCloseShortcutTriggered.

protected void onCloseShortcutTriggered(@SuppressWarnings("unused") Object sender, @SuppressWarnings("unused") Object target) {
    if (this.isCloseable()) {
        com.vaadin.ui.Component component = getComponent();
        CubaUI ui = (CubaUI) component.getUI();
        if (!ui.isAccessibleForUser(component)) {
            LoggerFactory.getLogger(WebWindow.class).debug("Ignore shortcut action because Window is inaccessible for user");
            return;
        }
        BeforeCloseEvent event = new BeforeCloseEvent(this, CloseOriginType.SHORTCUT);
        fireBeforeClose(event);
        if (!event.isClosePrevented()) {
            getFrameOwner().close(new StandardCloseAction(Window.CLOSE_ACTION_ID));
        }
    }
}
Also used : StandardCloseAction(com.haulmont.cuba.gui.screen.StandardCloseAction) CubaUI(com.haulmont.cuba.web.widgets.CubaUI) Component(com.vaadin.ui.Component) WebWindow(com.haulmont.cuba.web.gui.WebWindow)

Example 5 with CubaUI

use of com.haulmont.cuba.web.widgets.CubaUI in project cuba by cuba-platform.

the class WebDialogWindow method onCloseButtonClick.

protected void onCloseButtonClick(CubaWindow.PreCloseEvent preCloseEvent) {
    preCloseEvent.setPreventClose(true);
    com.vaadin.ui.Component component = getComponent();
    CubaUI ui = (CubaUI) component.getUI();
    if (!ui.isAccessibleForUser(component)) {
        LoggerFactory.getLogger(WebWindow.class).debug("Ignore close button click because Window is inaccessible for user");
        return;
    }
    BeforeCloseEvent event = new BeforeCloseEvent(this, CloseOriginType.CLOSE_BUTTON);
    fireBeforeClose(event);
    if (!event.isClosePrevented()) {
        // user has clicked on X
        getFrameOwner().close(new StandardCloseAction(Window.CLOSE_ACTION_ID));
    }
}
Also used : StandardCloseAction(com.haulmont.cuba.gui.screen.StandardCloseAction) CubaUI(com.haulmont.cuba.web.widgets.CubaUI) Component(com.vaadin.ui.Component) WebWindow(com.haulmont.cuba.web.gui.WebWindow)

Aggregations

CubaUI (com.haulmont.cuba.web.widgets.CubaUI)5 Component (com.vaadin.ui.Component)4 StandardCloseAction (com.haulmont.cuba.gui.screen.StandardCloseAction)2 WebWindow (com.haulmont.cuba.web.gui.WebWindow)2 Strings (com.google.common.base.Strings)1 Subscription (com.haulmont.bali.events.Subscription)1 Preconditions (com.haulmont.bali.util.Preconditions)1 Preconditions.checkNotNullArgument (com.haulmont.bali.util.Preconditions.checkNotNullArgument)1 Datatype (com.haulmont.chile.core.datatypes.Datatype)1 DatatypeRegistry (com.haulmont.chile.core.datatypes.DatatypeRegistry)1 ValueConversionException (com.haulmont.chile.core.datatypes.ValueConversionException)1 com.haulmont.chile.core.model (com.haulmont.chile.core.model)1 ClientConfig (com.haulmont.cuba.client.ClientConfig)1 PersistenceManagerClient (com.haulmont.cuba.client.sys.PersistenceManagerClient)1 DynamicAttributesTools (com.haulmont.cuba.core.app.dynamicattributes.DynamicAttributesTools)1 DynamicAttributesUtils (com.haulmont.cuba.core.app.dynamicattributes.DynamicAttributesUtils)1 KeyValueMetaClass (com.haulmont.cuba.core.app.keyvalue.KeyValueMetaClass)1 CategoryAttribute (com.haulmont.cuba.core.entity.CategoryAttribute)1 Entity (com.haulmont.cuba.core.entity.Entity)1 LocaleHelper (com.haulmont.cuba.core.entity.LocaleHelper)1