001: /*
002: * This file is part of the WfMOpen project.
003: * Copyright (C) 2001-2005 Danet GmbH (www.danet.de), BU BTS.
004: * All rights reserved.
005: *
006: * This program is free software; you can redistribute it and/or modify
007: * it under the terms of the GNU General Public License as published by
008: * the Free Software Foundation; either version 2 of the License, or
009: * (at your option) any later version.
010: *
011: * This program is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
014: * GNU General Public License for more details.
015: *
016: * You should have received a copy of the GNU General Public License
017: * along with this program; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
019: *
020: * $Id: ResourceWrapper.java,v 1.5 2006/10/04 09:27:54 drmlipp Exp $
021: *
022: * $Log: ResourceWrapper.java,v $
023: * Revision 1.5 2006/10/04 09:27:54 drmlipp
024: * Using resource type information for display.
025: *
026: * Revision 1.4 2006/09/29 12:32:11 drmlipp
027: * Consistently using WfMOpen as projct name now.
028: *
029: * Revision 1.3 2006/09/14 20:24:12 mlipp
030: * Improved.
031: *
032: * Revision 1.2 2006/09/13 13:55:16 drmlipp
033: * Proceeding with assignments display.
034: *
035: * Revision 1.1 2006/09/13 11:02:03 drmlipp
036: * Started assignments display.
037: *
038: */
039: package de.danet.an.workflow.clients.mgmtportlets.process;
040:
041: import java.io.Serializable;
042: import java.rmi.RemoteException;
043: import java.util.Locale;
044: import java.util.ResourceBundle;
045:
046: import javax.faces.context.FacesContext;
047:
048: import de.danet.an.util.jsf.JSFUtil;
049: import de.danet.an.workflow.api.GroupResource;
050: import de.danet.an.workflow.api.RoleResource;
051: import de.danet.an.workflow.api.UserResource;
052: import de.danet.an.workflow.omgcore.WfResource;
053:
054: /**
055: * This class provides a wrapper around <code>WfResource</code> objects.
056: *
057: * @author Michael Lipp
058: *
059: */
060: public class ResourceWrapper implements Serializable {
061:
062: private String key;
063: private String name;
064: private String localizedType;
065: private boolean typed;
066:
067: /**
068: * Create a new instance with all attributes initialized
069: * to defaults or the given values.
070: *
071: * @param resource
072: * @param resTypeMap resource bundle for looking up translations
073: * of type names.
074: */
075: public ResourceWrapper(WfResource resource,
076: ResourceBundle resTypeMap) throws RemoteException {
077: super ();
078: key = resource.resourceKey();
079: name = resource.resourceName();
080: typed = true;
081: if (resource instanceof UserResource) {
082: localizedType = resTypeMap.getString(UserResource.class
083: .getName());
084: } else if (resource instanceof RoleResource) {
085: localizedType = resTypeMap.getString(RoleResource.class
086: .getName());
087: } else if (resource instanceof GroupResource) {
088: localizedType = resTypeMap.getString(GroupResource.class
089: .getName());
090: } else {
091: localizedType = resTypeMap
092: .getString("resource.type.unknown");
093: typed = false;
094: }
095: }
096:
097: /**
098: * Create a new instance with all attributes initialized
099: * to defaults or the given values. This constructor will use
100: * the default resource bundle for looking up translations
101: * of type names.
102: *
103: * @param resource
104: */
105: public ResourceWrapper(WfResource resource) throws RemoteException {
106: this (
107: resource,
108: ResourceBundle
109: .getBundle(
110: "de.danet.an.workflow.clients.mgmtportlets.process.L10n",
111: JSFUtil.activeLocale(),
112: ResourceWrapper.class.getClassLoader()));
113: }
114:
115: /**
116: * Return the process management bean.
117: * @return the result
118: */
119: protected ProcessMgmt processMgmt() {
120: FacesContext fc = FacesContext.getCurrentInstance();
121: return (ProcessMgmt) fc.getApplication().getVariableResolver()
122: .resolveVariable(fc, "processMgmt");
123: }
124:
125: /**
126: * @return Returns the key.
127: */
128: public String getKey() {
129: return key;
130: }
131:
132: /**
133: * @return Returns the name.
134: */
135: public String getName() {
136: return name;
137: }
138:
139: /**
140: * @return Returns the typed.
141: */
142: public boolean isTyped() {
143: return typed;
144: }
145:
146: /**
147: * @return Returns the localizedType.
148: */
149: public String getLocalizedType() {
150: return localizedType;
151: }
152:
153: /**
154: * Select the resource
155: */
156: public String showAssignments() {
157: processMgmt().setSelectedResourceKey(key);
158: return null;
159: }
160:
161: /**
162: * Check if resource is selected.
163: * @return result
164: */
165: public boolean isSelected() {
166: return processMgmt().getSelectedResourceKey() != null
167: && processMgmt().getSelectedResourceKey().equals(key);
168: }
169: }
|