private void checkListenerRegistrationForConnector(IValueConnector connector) { if (connector != null) { // we can add the listener many times since the backing store listener // collection is a Set. connector.addConnectorValueChangeListener(connectorsListener); if (connector instanceof ICompositeValueConnector) { for (String childConnectorId : ((ICompositeValueConnector) connector) .getChildConnectorKeys()) { checkListenerRegistrationForConnector(((ICompositeValueConnector) connector) .getChildConnector(childConnectorId)); } } } }
/** * Handle workspace navigator selection. * * @param workspaceName * the workspace name * @param selectedConnector * the selected connector */ protected void handleWorkspaceNavigatorSelection(String workspaceName, ICompositeValueConnector selectedConnector) { if (selectedConnector != null && selectedConnector.getConnectorValue() instanceof Module) { Module selectedModule = selectedConnector.getConnectorValue(); displayModule(workspaceName, selectedModule); // We do not reset displayed module on navigator selection anymore. // This is because when a node is selected in the tree at different // level, // the module connector selection is a 2-step process : // 1. deselection // 2. selection // The problem is that you never have from and to modules // simultaneously, // thus preventing complex algorithms in onEnter/onLeave actions. // } else { // displayModule(workspaceName, null); } }
private void bindChildRowConnector(int row) { ICompositeValueConnector rowConnector = (ICompositeValueConnector) collectionConnector .getChildConnector(row); if (rowConnector != null && !rowConnector.getValueChangeListeners().contains(rowListener)) { rowConnector.addValueChangeListener(rowListener); for (String columnConnectorKey : columnConnectorKeys) { IValueConnector cellConnector = rowConnector .getChildConnector(columnConnectorKey); if (cellConnector instanceof IRenderableCompositeValueConnector && ((IRenderableCompositeValueConnector) cellConnector) .getRenderingConnector() != null) { ((IRenderableCompositeValueConnector) cellConnector) .getRenderingConnector().addValueChangeListener(cellListener); } else { cellConnector.addValueChangeListener(cellListener); cellConnector.addPropertyChangeListener(cellListener); } } } }
private Coordinates computeCoordinates(IValueConnector connector) { IValueConnector cellConnector = connector; ICompositeValueConnector rowConnector = cellConnector.getParentConnector(); while (rowConnector != null && rowConnector.getParentConnector() != collectionConnector) { cellConnector = rowConnector; rowConnector = rowConnector.getParentConnector(); } int col = -1; int row = -1; if (rowConnector != null) { row = computeRow(rowConnector); for (String key : columnConnectorKeys) { if (rowConnector.getChildConnector(key) == cellConnector) { break; } col++; } } return new Coordinates(row, col); }
/** * {@inheritDoc} */ @Override public boolean isCellEditable(Object node, int columnIndex) { if (node instanceof ICompositeValueConnector && !(node instanceof ICollectionConnector)) { ((ICompositeValueConnector) node).getChildConnector(columnConnectorKeys .get(columnIndex)); } return false; }
private IView<JComponent> createNestingView( INestingViewDescriptor viewDescriptor, IActionHandler actionHandler, Locale locale) { ICompositeValueConnector connector = connectorFactory .createCompositeValueConnector(viewDescriptor.getModelDescriptor() .getName(), null); JPanel viewComponent = createJPanel(); BorderLayout layout = new BorderLayout(); viewComponent.setLayout(layout); IView<JComponent> view = constructView(viewComponent, viewDescriptor, connector); IView<JComponent> nestedView = createView(viewDescriptor .getNestedViewDescriptor(), actionHandler, locale); connector.addChildConnector(nestedView.getConnector()); viewComponent.add(nestedView.getPeer(), BorderLayout.CENTER); return view; }
/** * Fills the context with the filter reference descriptor. * <p> * {@inheritDoc} */ @Override public boolean execute(IActionHandler actionHandler, Map<String, Object> context) { IModelValueConnector filterModelConnector = (IModelValueConnector) getModuleConnector( context).getChildConnector("filter"); context.put(ActionContextConstants.QUERY_MODEL_CONNECTOR, filterModelConnector); context.put(ActionContextConstants.COMPONENT_REF_DESCRIPTOR, filterModelConnector.getModelDescriptor()); BeanCollectionModule beanCollectionModule = (BeanCollectionModule) getModuleConnector( context).getConnectorValue(); beanCollectionModule.setModuleObjects(null); return super.execute(actionHandler, context); }
rowConnectorPrototype.addChildConnector(propertyName, columnConnector); columnClasses.add(rowDescriptor.getPropertyDescriptor(columnId).getModelType()); List<String> columnConnectorKeys = new ArrayList<>(rowConnectorPrototype.getChildConnectorKeys()); IValueConnector backgroundConnector = rowConnectorPrototype.getChildConnector(dynamicBackgroundProperty); if (backgroundConnector == null) { backgroundConnector = getConnectorFactory().createValueConnector(dynamicBackgroundProperty); rowConnectorPrototype.addChildConnector(dynamicBackgroundProperty, backgroundConnector); IValueConnector backgroundConnector = rowConnectorPrototype.getChildConnector(dynamicForegroundProperty); if (backgroundConnector == null) { backgroundConnector = getConnectorFactory().createValueConnector(dynamicForegroundProperty); rowConnectorPrototype.addChildConnector(dynamicForegroundProperty, backgroundConnector); IValueConnector backgroundConnector = rowConnectorPrototype.getChildConnector(dynamicFontProperty); if (backgroundConnector == null) { backgroundConnector = getConnectorFactory().createValueConnector(dynamicFontProperty); rowConnectorPrototype.addChildConnector(dynamicFontProperty, backgroundConnector);
IValueConnector labelConnector = connector.getChildConnector(dynamicLabelProperty); if (labelConnector == null) { labelConnector = getConnectorFactory().createValueConnector(dynamicLabelProperty); connector.addChildConnector(dynamicLabelProperty, labelConnector); IValueConnector tooltipConnector = connector.getChildConnector(dynamicToolTipProperty); if (tooltipConnector == null) { tooltipConnector = getConnectorFactory().createValueConnector(dynamicToolTipProperty); connector.addChildConnector(dynamicToolTipProperty, tooltipConnector);
private void bindChildRowConnector(int row) { ICompositeValueConnector rowConnector = (ICompositeValueConnector) collectionConnector .getChildConnector(row); rowConnector .addConnectorValueChangeListener(getChildRowConnectorListener(row)); for (int col = 0; col < columnConnectorKeys.size(); col++) { IValueConnector cellConnector = rowConnector .getChildConnector(columnConnectorKeys.get(col)); if (cellConnector instanceof IRenderableCompositeValueConnector && ((IRenderableCompositeValueConnector) cellConnector) .getRenderingConnector() != null) { ((IRenderableCompositeValueConnector) cellConnector) .getRenderingConnector().addConnectorValueChangeListener( getChildCellConnectorListener(row, col)); } else { CellConnectorListener listener = getChildCellConnectorListener(row, col); cellConnector.addConnectorValueChangeListener(listener); cellConnector.addPropertyChangeListener(listener); } } }
IValueConnector columnConnector = createColumnConnector( columnViewDescriptor, rowDescriptor, actionHandler); rowConnectorPrototype.addChildConnector(columnConnector); columnClasses.add(rowDescriptor.getPropertyDescriptor(columnId) .getModelType()); rowConnectorPrototype.getChildConnectorKeys());
private void bindChildRowConnector(int row) { ICompositeValueConnector rowConnector = (ICompositeValueConnector) collectionConnector .getChildConnector(row); rowConnector .addValueChangeListener(getChildRowConnectorListener(row)); for (int col = 0; col < columnConnectorKeys.size(); col++) { IValueConnector cellConnector = rowConnector .getChildConnector(columnConnectorKeys.get(col)); if (cellConnector instanceof IRenderableCompositeValueConnector && ((IRenderableCompositeValueConnector) cellConnector) .getRenderingConnector() != null) { ((IRenderableCompositeValueConnector) cellConnector) .getRenderingConnector().addValueChangeListener( getChildCellConnectorListener(row, col)); } else { CellConnectorListener listener = getChildCellConnectorListener(row, col); cellConnector.addValueChangeListener(listener); cellConnector.addPropertyChangeListener(listener); } } }
/** * {@inheritDoc} */ @Override protected IView<RComponent> createMapView(IMapViewDescriptor viewDescriptor, IActionHandler actionHandler, Locale locale) { RMap viewComponent = createRMap(viewDescriptor); viewComponent.setDefaultZoom(viewDescriptor.getDefaultZoom()); JSONObject mapPreferences = getMapPreferences(viewDescriptor, actionHandler); if (mapPreferences != null && mapPreferences.has(IMapViewDescriptor.ZOOM)) { try { viewComponent.setDefaultZoom(mapPreferences.getInt(IMapViewDescriptor.ZOOM)); } catch (JSONException e) { LOG.warn("Could not restore default map zoom"); } } String connectorId = ModelRefPropertyConnector.THIS_PROPERTY; if (viewDescriptor.getModelDescriptor() instanceof IPropertyDescriptor) { connectorId = viewDescriptor.getModelDescriptor().getName(); } ICompositeValueConnector connector = getConnectorFactory().createCompositeValueConnector(connectorId, null); connector.addChildConnector(getConnectorFactory().createValueConnector(viewDescriptor.getMapContentProperty())); connector.setExceptionHandler(actionHandler); IView<RComponent> view = constructView(viewComponent, viewDescriptor, connector); return view; }
/** * Selects indices on the module view collection connector based on the * <code>ActionContextConstants.SELECTED_INDICES</code> context value. * <p> * {@inheritDoc} */ @Override public boolean execute(IActionHandler actionHandler, Map<String, Object> context) { ICompositeValueConnector moduleConnector = getModuleConnector(context); ICollectionConnector parentModuleCollectionConnector = ((ICollectionConnectorProvider) moduleConnector .getParentConnector().getParentConnector()).getCollectionConnector(); parentModuleCollectionConnector.setSelectedIndices(new int[0]); int[] connectorSelection = (int[]) context .get(ActionContextConstants.SELECTED_INDICES); if (moduleConnector instanceof ICollectionConnectorProvider) { ICollectionConnector collectionConnector = ((ICollectionConnectorProvider) moduleConnector) .getCollectionConnector(); collectionConnector.setSelectedIndices(connectorSelection); } return super.execute(actionHandler, context); } }
private IValueConnector getConnectorAt(int rowIndex, int columnIndex) { return ((ICompositeValueConnector) collectionConnector .getChildConnector(rowIndex)).getChildConnector(columnConnectorKeys .get(columnIndex)); }
private IView<ULCComponent> createNestingView( INestingViewDescriptor viewDescriptor, IActionHandler actionHandler, Locale locale) { ICompositeValueConnector connector = connectorFactory .createCompositeValueConnector(viewDescriptor.getModelDescriptor() .getName(), null); ULCBorderLayoutPane viewComponent = createBorderLayoutPane(); IView<ULCComponent> view = constructView(viewComponent, viewDescriptor, connector); IView<ULCComponent> nestedView = createView(viewDescriptor .getNestedViewDescriptor(), actionHandler, locale); connector.addChildConnector(nestedView.getConnector()); viewComponent.add(nestedView.getPeer(), ULCBorderLayoutPane.CENTER); return view; }
/** * {@inheritDoc} */ @Override public boolean execute(IActionHandler actionHandler, Map<String, Object> context) { if (queryAction != null) { FilterableBeanCollectionModule module = (FilterableBeanCollectionModule) getModuleConnector( context).getConnectorValue(); IValueConnector filterConnector = getModuleConnector(context) .getChildConnector("filter"); context .put(ActionContextConstants.QUERY_MODEL_CONNECTOR, filterConnector); IQueryComponent filter = (IQueryComponent) module.getFilter(); if (actionHandler.execute(queryAction, context)) { module.setModuleObjects(filter.getQueriedComponents()); filter.setQueriedComponents(null); } } return super.execute(actionHandler, context); }
propertyDescriptor); if (dynamicToolTipProperty != null) { IValueConnector toolTipConnector = rowConnectorPrototype.getChildConnector(dynamicToolTipProperty); if (toolTipConnector == null) { toolTipConnector = getConnectorFactory().createValueConnector(dynamicToolTipProperty); rowConnectorPrototype.addChildConnector(dynamicToolTipProperty, toolTipConnector); IValueConnector backgroundConnector = rowConnectorPrototype.getChildConnector(dynamicBackgroundProperty); if (backgroundConnector == null) { backgroundConnector = getConnectorFactory().createValueConnector(dynamicBackgroundProperty); rowConnectorPrototype.addChildConnector(dynamicBackgroundProperty, backgroundConnector); IValueConnector foregroundConnector = rowConnectorPrototype.getChildConnector(dynamicForegroundProperty); if (foregroundConnector == null) { foregroundConnector = getConnectorFactory().createValueConnector(dynamicForegroundProperty); rowConnectorPrototype.addChildConnector(dynamicForegroundProperty, foregroundConnector); IValueConnector fontConnector = rowConnectorPrototype.getChildConnector(dynamicFontProperty); if (fontConnector == null) { fontConnector = getConnectorFactory().createValueConnector(dynamicFontProperty); rowConnectorPrototype.addChildConnector(dynamicFontProperty, fontConnector);
private void bindChildRowConnector(int row) { ICompositeValueConnector rowConnector = (ICompositeValueConnector) collectionConnector .getChildConnector(row); if (rowConnector != null) { rowConnector .addConnectorValueChangeListener(getChildRowConnectorListener(row)); for (int col = 0; col < columnConnectorKeys.size(); col++) { IValueConnector cellConnector = rowConnector .getChildConnector(columnConnectorKeys.get(col)); if (cellConnector instanceof IRenderableCompositeValueConnector && ((IRenderableCompositeValueConnector) cellConnector) .getRenderingConnector() != null) { ((IRenderableCompositeValueConnector) cellConnector) .getRenderingConnector().addConnectorValueChangeListener( getChildCellConnectorListener(row, col)); } else { CellConnectorListener listener = getChildCellConnectorListener(row, col); cellConnector.addConnectorValueChangeListener(listener); cellConnector.addPropertyChangeListener(listener); } } } }
/** * Extracts the main collection connector from a connector hierarchy. * * @param rootConnector * the root connector. * @return the the main collection connector. */ public static ICollectionConnector extractMainCollectionConnector( IValueConnector rootConnector) { if (rootConnector instanceof ICollectionConnector) { return (ICollectionConnector) rootConnector; } if (rootConnector instanceof ICompositeValueConnector) { for (String childName : ((ICompositeValueConnector) rootConnector) .getChildConnectorKeys()) { IValueConnector childCollectionConnector = extractMainCollectionConnector(((ICompositeValueConnector) rootConnector) .getChildConnector(childName)); if (childCollectionConnector != null) { return (ICollectionConnector) childCollectionConnector; } } } return null; } }