...any reason for not doing this on branch 1_1_X as well? Regards.
ma...@apache.org wrote: >Author: massi >Date: Wed Apr 24 18:00:35 2013 >New Revision: 1471566 > >URL: http://svn.apache.org/r1471566 >Log: >Builder instead of tho constructors > >Modified: >syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java >syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/UserModalPage.java >syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourcesPanel.java >syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RolePanel.java > >Modified: >syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java >URL: >http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java?rev=1471566&r1=1471565&r2=1471566&view=diff >============================================================================== >--- >syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java >(original) >+++ >syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java >Wed Apr 24 18:00:35 2013 >@@ -73,7 +73,8 @@ public class EditUserModalPage extends U > >form.addOrReplace(new AccountInformationPanel("accountinformation", >userTO)); > >- form.addOrReplace(new ResourcesPanel("resources", userTO, >statusPanel)); >+ form.addOrReplace(new >ResourcesPanel.ResourcesPanelBuilder("resources").attributableTO(userTO).statusPanel( >+ statusPanel).build()); > >form.addOrReplace(new MembershipsPanel("memberships", userTO, false, >statusPanel, getPageReference())); > } > >Modified: >syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/UserModalPage.java >URL: >http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/UserModalPage.java?rev=1471566&r1=1471565&r2=1471566&view=diff >============================================================================== >--- >syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/UserModalPage.java >(original) >+++ >syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/UserModalPage.java >Wed Apr 24 18:00:35 2013 >@@ -134,7 +134,8 @@ public abstract class UserModalPage exte > //-------------------------------- > // Resources panel > //-------------------------------- >- form.add(new ResourcesPanel("resources", userTO, null)); >+ form.add(new ResourcesPanel.ResourcesPanelBuilder("resources") >+ .attributableTO(userTO).statusPanel(null).build()); > //-------------------------------- > > //-------------------------------- > >Modified: >syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourcesPanel.java >URL: >http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourcesPanel.java?rev=1471566&r1=1471565&r2=1471566&view=diff >============================================================================== >--- >syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourcesPanel.java >(original) >+++ >syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourcesPanel.java >Wed Apr 24 18:00:35 2013 >@@ -62,36 +62,58 @@ public class ResourcesPanel extends Pane > > private final List<String> allResources; > >- private ResourcesPanel(final String id, final >AbstractAttributableTO attributableTO) { >- super(id); >- this.attributableTO = attributableTO; >+ public static class ResourcesPanelBuilder { >+ >+ private String id; >+ >+ private Object to; >+ >+ private StatusPanel statusPanel; >+ >+ public ResourcesPanelBuilder(String id) { >+ this.id = id; >+ } >+ >+ public ResourcesPanelBuilder attributableTO(Object to) { >+ this.to = to; >+ return this; >+ } >+ >+ public ResourcesPanelBuilder statusPanel(StatusPanel >statusPanel) { >+ this.statusPanel = statusPanel; >+ return this; >+ } >+ >+ public ResourcesPanel build() { >+ return new ResourcesPanel(this); >+ } >+ } >+ >+ private ResourcesPanel(final ResourcesPanelBuilder builder) { >+ super(builder.id); >+ attributableTO = (AbstractAttributableTO) builder.to; >previousResources = new HashSet<String>(attributableTO.getResources()); > allResources = new ArrayList<String>(); > for (ResourceTO resourceTO : resourceRestClient.getAllResources()) { > allResources.add(resourceTO.getName()); > } > Collections.sort(allResources); >- } >- >- public ResourcesPanel(final String id, final UserTO userTO, final >StatusPanel statusPanel) { >- this(id, userTO); > >- final AjaxPalettePanel<String> resourcesPalette = new >AjaxRecordingPalettePanel<String>("resourcesPalette", >- new PropertyModel<List<String>>(userTO, "resources"), >- new ListModel<String>(allResources), statusPanel); >- add(resourcesPalette); >- } >- >- public ResourcesPanel(final String id, final RoleTO roleTO) { >- this(id, (AbstractAttributableTO) roleTO); >+ AjaxPalettePanel<String> resourcesPalette = null; > >- List<String> selectedResources = new >ArrayList<String>(roleTO.getResources()); >- Collections.sort(selectedResources); >+ if (attributableTO instanceof UserTO) { >+ resourcesPalette = new >AjaxRecordingPalettePanel<String>("resourcesPalette", >+ new PropertyModel<List<String>>(attributableTO, >"resources"), >+ new ListModel<String>(allResources), >builder.statusPanel); >+ } else if (attributableTO instanceof RoleTO) { >+ List<String> selectedResources = new >ArrayList<String>(((RoleTO) attributableTO).getResources()); >+ Collections.sort(selectedResources); > >- final AjaxPalettePanel<String> resourcesPalette = new >AjaxPalettePanel<String>("resourcesPalette", >- new PropertyModel<List<String>>(roleTO, "resources"), >- new ListModel<String>(allResources)); >+ resourcesPalette = new >AjaxPalettePanel<String>("resourcesPalette", >+ new PropertyModel<List<String>>(attributableTO, >"resources"), new ListModel<String>(allResources)); >+ } > add(resourcesPalette); >+ > } > >private class AjaxRecordingPalettePanel<T> extends AjaxPalettePanel<T> >{ > >Modified: >syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RolePanel.java >URL: >http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RolePanel.java?rev=1471566&r1=1471565&r2=1471566&view=diff >============================================================================== >--- >syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RolePanel.java >(original) >+++ >syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RolePanel.java >Wed Apr 24 18:00:35 2013 >@@ -119,7 +119,8 @@ public class RolePanel extends Panel { > // Resources container > //-------------------------------- > >- this.add(new ResourcesPanel("resources", >roleTO).setOutputMarkupId(true)); >+ this.add(new >ResourcesPanel.ResourcesPanelBuilder("resources").attributableTO(roleTO).build() >+ .setOutputMarkupId(true)); > //-------------------------------- > >ListModel<String> selectedEntitlements = new >ListModel<String>(roleTO.getEntitlements()); -- Francesco Chicchiriccò ASF Member, Apache Syncope PMC chair, Apache Cocoon PMC Member http://people.apache.org/~ilgrosso/