package is.idega.idegaweb.marathon; import is.idega.idegaweb.marathon.presentation.Charities; import is.idega.idegaweb.marathon.presentation.CharitiesRunYear; import is.idega.idegaweb.marathon.presentation.RunDistanceEditor; import is.idega.idegaweb.marathon.presentation.RunEditor; import is.idega.idegaweb.marathon.presentation.RunYearEditor; import java.util.ArrayList; import java.util.Collection; import com.idega.core.view.DefaultViewNode; import com.idega.core.view.ViewManager; import com.idega.core.view.ViewNode; import com.idega.idegaweb.IWBundle; import com.idega.idegaweb.IWMainApplication; import com.idega.workspace.view.WorkspaceApplicationNode; import com.idega.workspace.view.WorkspaceClassViewNode; public class MarathonViewManager { private ViewNode marathonViewNode; private IWMainApplication iwma; public static MarathonViewManager getInstance(IWMainApplication iwma) { MarathonViewManager instance = (MarathonViewManager) iwma.getAttribute("marathonviewmanager"); if(instance==null){ instance = new MarathonViewManager(); instance.iwma=iwma; iwma.setAttribute("marathonviewmanager",instance); } return instance; } public ViewManager getViewManager(){ return ViewManager.getInstance(this.iwma); } public ViewNode getMarathonViewNode(){ IWBundle iwb = this.iwma.getBundle("is.idega.idegaweb.marathon"); if(this.marathonViewNode==null){ this.marathonViewNode = initalizeMarathonNode(iwb); } return this.marathonViewNode; } private ViewNode initalizeMarathonNode(IWBundle iwb) { ViewManager viewManager = ViewManager.getInstance(this.iwma); ViewNode workspace = viewManager.getWorkspaceRoot(); Collection roles = new ArrayList(); roles.add("marathon_admin"); DefaultViewNode marathonNode = new WorkspaceApplicationNode("marathon",workspace,roles); marathonNode.setName("#{localizedStrings['is.idega.idegaweb.marathon']['Marathon']}"); DefaultViewNode setupNode = new WorkspaceClassViewNode("setup",marathonNode); setupNode.setName("#{localizedStrings['is.idega.idegaweb.marathon']['Setup']}"); WorkspaceClassViewNode runs = new WorkspaceClassViewNode("runs",setupNode); runs.setName("#{localizedStrings['is.idega.idegaweb.marathon']['Runs']}"); runs.setComponentClass(RunEditor.class); WorkspaceClassViewNode years = new WorkspaceClassViewNode("runYears",setupNode); years.setName("#{localizedStrings['is.idega.idegaweb.marathon']['Years']}"); years.setComponentClass(RunYearEditor.class); WorkspaceClassViewNode distances = new WorkspaceClassViewNode("runDistances",setupNode); distances.setName("#{localizedStrings['is.idega.idegaweb.marathon']['Distances']}"); distances.setComponentClass(RunDistanceEditor.class); WorkspaceClassViewNode charities = new WorkspaceClassViewNode("charities",setupNode); charities.setName("#{localizedStrings['is.idega.idegaweb.marathon']['Charities']}"); charities.setComponentClass(Charities.class); WorkspaceClassViewNode runCharities = new WorkspaceClassViewNode("runCharities",setupNode); runCharities.setName("#{localizedStrings['is.idega.idegaweb.marathon']['RunCharities']}"); runCharities.setComponentClass(CharitiesRunYear.class); return marathonNode; } }