private synchronized void initProperties() { if (properties == null) { properties = new PreviewProperties(); //Properties from renderers for (Renderer renderer : getManagedEnabledRenderers()) { PreviewProperty[] props = renderer.getProperties(); for (PreviewProperty p : props) { properties.addProperty(p); } } //Default preset properties.applyPreset(new DefaultPreset()); //Defaut values properties.putValue(PreviewProperty.VISIBILITY_RATIO, 1f); } }
/** * Removes unnecessary properties from not enabled renderers */ private void reloadProperties() { if(properties == null){ initProperties(); }else{ PreviewProperties newProperties = new PreviewProperties();//Ensure that the properties object doesn't change //Properties from renderers for (Renderer renderer : getManagedEnabledRenderers()) { PreviewProperty[] props = renderer.getProperties(); for (PreviewProperty p : props) { newProperties.addProperty(p); if (properties.hasProperty(p.getName())) { newProperties.putValue(p.getName(), properties.getValue(p.getName()));//Keep old values } } } //Remove old properties (this keeps simple values) for (PreviewProperty p : properties.getProperties()) { properties.removeProperty(p); } //Set new properties for (PreviewProperty property : newProperties.getProperties()) { properties.addProperty(property); } } }