protected String getCaptionFor(IObjectWithProperties object) { final String propertyKey = object.getPropertiesObjectName(); if (object.isTranslatable()) { return this.propertiesView.getPropertyKeyTranslator().translate(propertyKey); } return propertyKey; }
private JPanel createPropertyPanel( IObjectWithProperties objectWithProperties, JPanel propertyPanel) { if (null == propertyPanel) { propertyPanel = new JPanel(); } if (null == objectWithProperties || null == objectWithProperties.getProperties()) { return propertyPanel; } Collection<? extends IObjectWithProperties> properties = objectWithProperties.getProperties(); int numProperties = properties.size(); // setup layout double[][] layoutSize = new double[2][]; layoutSize[0] = new double[] {TableLayout.FILL}; // columns layoutSize[1] = new double[numProperties]; // rows Arrays.fill(layoutSize[1], TableLayout.PREFERRED); // set all rows to preferred size propertyPanel.setLayout(new TableLayout(layoutSize)); int row = 0; for (IObjectWithProperties aProperty : properties) { JPanel aPropertyRow = null; // Property Component if (aProperty instanceof AbstractPropertyComponent) { aPropertyRow = createPropertyComponentPanel((AbstractPropertyComponent) aProperty); // Property Group } else if (aProperty instanceof PropertyGroup && null != aProperty.getPropertiesObjectName() && !aProperty.getPropertiesObjectName().isEmpty()) { aPropertyRow = createPropertyGroupPanel((PropertyGroup) aProperty); // Property: get component } else if (aProperty instanceof Property) { Property aPropertyLeaf = (Property) aProperty; // FIXME don't create/add any component if the component type is "none" if (aPropertyLeaf.getComponentType().equals(Property.COMPONENT_TYPE_NONE)) { aPropertyRow = new JPanel(); } else { aPropertyRow = createPropertyComponentPanel(propertiesView.getComponentFor((Property) aProperty)); } } // other: recursive handling if (null == aPropertyRow) { aPropertyRow = createPropertyPanel(aProperty, null); aPropertyRow.setBorder( new ColorBorder(PropertyCardsConfig.propertyTitleBgColor2.brighter(), 0, 0, 1, 0)); } propertyPanel.add(aPropertyRow, "0 " + row++); } return propertyPanel; }