private MetaClass getMetaClass(ListComponent listComponent) { if (!(listComponent.getItems() instanceof EntityDataUnit)) { throw new IllegalStateException("ListComponent items is null or does not implement EntityDataUnit"); } MetaClass metaClass = ((EntityDataUnit) listComponent.getItems()).getEntityMetaClass(); if (metaClass == null) { throw new IllegalStateException("ListComponent is not bound to entity"); } return metaClass; }
protected CollectionDatasource getCollectionDatasourceFromOwner() { if (owner != null && owner.getItems() != null) { return owner.getDatasource(); } return null; }
/** * Returns the table's data container. */ protected CollectionContainer<T> getBrowseContainer() { DataUnit items = getTable().getItems(); if (items instanceof ContainerDataUnit) return ((ContainerDataUnit<T>) items).getContainer(); else throw new UnsupportedOperationException("Unsupported items: " + items); }
@Override protected boolean isPermitted() { if (target == null || !(target.getItems() instanceof EntityDataUnit)) { return false; } MetaClass metaClass = ((EntityDataUnit) target.getItems()).getEntityMetaClass(); if (metaClass == null) { return true; } boolean createPermitted = security.isEntityOpPermitted(metaClass, EntityOp.CREATE); if (!createPermitted) { return false; } return super.isPermitted(); }
@Override protected boolean isPermitted() { if (target == null ||!(target.getItems() instanceof EntityDataUnit)) { return false; } MetaClass metaClass = ((EntityDataUnit) target.getItems()).getEntityMetaClass(); if (metaClass == null) { return true; } boolean entityOpPermitted = security.isEntityOpPermitted(metaClass, EntityOp.READ); if (!entityOpPermitted) { return false; } return super.isPermitted(); }
protected boolean needExportAll() { if (target.getSelected().isEmpty()) { return true; } CollectionContainer container = ((ContainerDataUnit) target.getItems()).getContainer(); return container != null && container.getItems().size() <= 1; }
@Override protected boolean isPermitted() { if (target == null || !(target.getItems() instanceof EntityDataUnit)) { return false; } MetaClass metaClass = ((EntityDataUnit) target.getItems()).getEntityMetaClass(); if (metaClass == null) { return true; } boolean permitted = security.isScreenPermitted(BulkEditor.PERMISSION); if (!permitted) { return false; } return super.isPermitted(); }
@Override protected boolean isPermitted() { if (target == null || !(target.getItems() instanceof ContainerDataUnit)) { return false; } if (!checkRemovePermission()) { return false; } return super.isPermitted(); }
@SuppressWarnings("unchecked") @Override public void actionPerform(Component component) { // if standard behaviour if (!hasSubscriptions(ActionPerformedEvent.class)) { if (!(target.getItems() instanceof ContainerDataUnit)) { throw new IllegalStateException("ExcludeAction target items is null or does not implement ContainerDataUnit"); } ContainerDataUnit items = (ContainerDataUnit) target.getItems(); CollectionContainer container = items.getContainer(); if (container == null) { throw new IllegalStateException("ExcludeAction target is not bound to CollectionContainer"); } removeOperation.excludeSelected(target); } else { super.actionPerform(component); } } }
protected Adapter createAdapter(RowsCountTarget target) { if (target instanceof ListComponent) { DataUnit items = ((ListComponent) target).getItems(); if (items instanceof DatasourceDataUnit) { return createDatasourceAdapter(((DatasourceDataUnit) items).getDatasource()); } else if (items instanceof ContainerDataUnit) { return createLoaderAdapter(((ContainerDataUnit) items).getContainer()); } throw new IllegalStateException("Unsupported data unit type: " + items); } throw new UnsupportedOperationException("Unsupported RowsCountTarget: " + target); }
protected boolean isDataAvailable() { if (listComponent.getItems() instanceof ContainerDataUnit) { ContainerDataUnit unit = (ContainerDataUnit) listComponent.getItems(); CollectionContainer container = unit.getContainer(); return container instanceof HasLoader && unit.getState() == BindingState.ACTIVE && !container.getItems().isEmpty(); } else { CollectionDatasource ds = listComponent.getDatasource(); if (ds != null) return ds.getState() == Datasource.State.VALID && ds.size() > 0; } return false; }
@SuppressWarnings("unchecked") @Override public void actionPerform(Component component) { // if standard behaviour if (!hasSubscriptions(ActionPerformedEvent.class)) { if (!(target.getItems() instanceof EntityDataUnit)) { throw new IllegalStateException("CreateAction target items is null or does not implement EntityDataUnit"); } MetaClass metaClass = ((EntityDataUnit) target.getItems()).getEntityMetaClass(); if (metaClass == null) { throw new IllegalStateException("Target is not bound to entity"); } Screen editor = screenBuilders.editor(target) .newEntity() .build(); editor.show(); } else { super.actionPerform(component); } } }
@Override public void setRowsCountTarget(RowsCountTarget target) { checkNotNullArgument(target, "target is null"); if (!(target instanceof ListComponent)) { throw new UnsupportedOperationException("Unsupported RowsCountTarget: " + target); } this.target = target; if (((ListComponent) target).getItems() != null) { if (adapter != null) { adapter.unbind(); } adapter = createAdapter(target); } initButtonListeners(); }
protected void printSelected(Set selected) { MetaClass metaClass; if (listComponent.getItems() instanceof ContainerDataUnit) { ContainerDataUnit unit = (ContainerDataUnit) listComponent.getItems(); InstanceContainer container = unit.getContainer(); metaClass = container.getEntityMetaClass(); } else { CollectionDatasource ds = listComponent.getDatasource(); metaClass = ds.getMetaClass(); } Window window = ComponentsHelper.getWindowNN(listComponent); openRunReportScreen(window.getFrameOwner(), selected, metaClass); }
@SuppressWarnings("unchecked") protected <E extends Entity> CollectionContainer<E> getCollectionContainer(RemoveBuilder<E> builder) { CollectionContainer<E> container; if (builder.getContainer() != null) { container = builder.getContainer(); } else if (builder.getListComponent() != null) { DataUnit items = builder.getListComponent().getItems(); container = ((ContainerDataUnit) items).getContainer(); } else { throw new IllegalArgumentException("Neither container nor list component is specified"); } return container; }
@Override public void refreshState() { super.refreshState(); if (!(target.getItems() instanceof EntityDataUnit)) { return; } if (!captionInitialized) { MetaClass metaClass = ((EntityDataUnit) target.getItems()).getEntityMetaClass(); if (metaClass != null) { if (security.isEntityOpPermitted(metaClass, EntityOp.UPDATE)) { setCaption(messages.getMainMessage("actions.Edit")); } else { setCaption(messages.getMainMessage("actions.View")); } } } }
@Override protected boolean isPermitted() { if (target == null || !(target.getItems() instanceof ContainerDataUnit)) { return false; } ContainerDataUnit containerDataUnit = (ContainerDataUnit) target.getItems(); MetaClass metaClass = containerDataUnit.getEntityMetaClass(); if (metaClass == null) { return false; } if (containerDataUnit.getContainer() instanceof Nested) { Nested nestedContainer = (Nested) containerDataUnit.getContainer(); MetaClass masterMetaClass = nestedContainer.getMaster().getEntityMetaClass(); MetaProperty metaProperty = masterMetaClass.getPropertyNN(nestedContainer.getProperty()); boolean attrPermitted = security.isEntityAttrUpdatePermitted(masterMetaClass, metaProperty.getName()); if (!attrPermitted) { return false; } } return super.isPermitted(); }
/** * Creates a remove builder using list component, e.g. {@link Table} or {@link DataGrid}. * * @param listComponent list component * @param <E> type of entity */ public <E extends Entity> RemoveBuilder<E> builder(ListComponent<E> listComponent) { checkNotNullArgument(listComponent); checkNotNullArgument(listComponent.getFrame()); FrameOwner frameOwner = listComponent.getFrame().getFrameOwner(); Class<E> entityClass; DataUnit items = listComponent.getItems(); if (items instanceof ContainerDataUnit) { entityClass = ((ContainerDataUnit) items).getEntityMetaClass().getJavaClass(); } else { throw new IllegalStateException(String.format("Component %s is not bound to data", listComponent)); } return builder(entityClass, frameOwner) .withListComponent(listComponent); }
@Override protected boolean isPermitted() { if (target == null || !(target.getItems() instanceof ContainerDataUnit)) { return false; } ContainerDataUnit containerDataUnit = (ContainerDataUnit) target.getItems(); MetaClass metaClass = containerDataUnit.getEntityMetaClass(); if (metaClass == null) { return false; } if (containerDataUnit.getContainer() instanceof Nested) { Nested nestedContainer = (Nested) containerDataUnit.getContainer(); MetaClass masterMetaClass = nestedContainer.getMaster().getEntityMetaClass(); MetaProperty metaProperty = masterMetaClass.getPropertyNN(nestedContainer.getProperty()); boolean attrPermitted = security.isEntityAttrUpdatePermitted(masterMetaClass, metaProperty.getName()); if (!attrPermitted) { return false; } } return super.isPermitted(); }