001: /**
002: * Copyright 2005 Sun Microsystems, Inc. All
003: * rights reserved. Use of this product is subject
004: * to license terms. Federal Acquisitions:
005: * Commercial Software -- Government Users
006: * Subject to Standard License Terms and
007: * Conditions.
008: *
009: * Sun, Sun Microsystems, the Sun logo, and Sun ONE
010: * are trademarks or registered trademarks of Sun Microsystems,
011: * Inc. in the United States and other countries.
012: */package com.sun.portal.admin.console.search;
013:
014: import java.util.*;
015: import java.util.logging.Level;
016: import java.io.*;
017:
018: import javax.faces.context.FacesContext;
019: import javax.faces.el.ValueBinding;
020: import javax.servlet.http.HttpServletRequest;
021: import javax.management.*;
022:
023: import com.sun.data.provider.*;
024: import com.sun.data.provider.impl.ListDataProvider;
025: import com.sun.data.provider.impl.ObjectListDataProvider;
026:
027: import com.sun.web.ui.model.*;
028: import com.sun.web.ui.event.*;
029: import com.sun.web.ui.component.*;
030:
031: import com.sun.portal.admin.common.util.AdminClientUtil;
032: import com.sun.portal.admin.console.common.PSBaseBean;
033:
034: public class RobotFiltersBean extends PSBaseBean {
035:
036: private DataProvider filters = null;
037: private String filtername = "No Name";
038:
039: private TableRowGroup tableRowGroup = null;
040: private TableSelectPhaseListener tspl = null;
041:
042: public static final FieldKey FILTERID = new FieldKey("filterid");
043:
044: public RobotFiltersBean() {
045:
046: tspl = new TableSelectPhaseListener();
047: filters = generateRobotFilters();
048: }
049:
050: /*
051: * Button Actions
052: */
053: public String create() {
054: return "gotoCreateRobotFilter";
055: }
056:
057: public String delete() {
058: ArrayList ids = new ArrayList();
059: ObjectListDataProvider oldp = (ObjectListDataProvider) filters;
060: List l = oldp.getList();
061: RowKey[] rowKeys = tableRowGroup.getRenderedRowKeys();
062: for (int i = 0; i < rowKeys.length; i++) {
063: RowKey rowKey = rowKeys[i];
064: if (tspl.isSelected(rowKey)) {
065: RobotFilterBean rfb = (RobotFilterBean) l.get(Integer
066: .parseInt(rowKey.getRowId()));
067: ids.add(rfb.id);
068: }
069: }
070:
071: try {
072: LinkedList path = new LinkedList();
073: path.addFirst(AdminClientUtil.DEFAULT_DOMAIN);
074: path
075: .addFirst((String) getSessionAttribute("search.server.selected"));
076: path.addFirst("robot");
077: ObjectName on = AdminClientUtil.getResourceMBeanObjectName(
078: AdminClientUtil.SEARCH_ROBOT_MBEAN_TYPE, path);
079:
080: Object[] params = { ids };
081: String[] signature = { "java.util.ArrayList" };
082: getMBeanServerConnection().invoke(on, "deleteFilters",
083: params, signature);
084: } catch (Exception e) {
085: log(
086: Level.SEVERE,
087: "RobotFiltersBean.delete() failed to delete robot Filters",
088: e);
089: }
090:
091: tspl.clear();
092: filters = generateRobotFilters();
093: return "gotoRobotFiltersHome";
094: }
095:
096: public String enable() {
097: ArrayList ids = new ArrayList();
098: ObjectListDataProvider oldp = (ObjectListDataProvider) filters;
099: List l = oldp.getList();
100: RowKey[] rowKeys = tableRowGroup.getRenderedRowKeys();
101: for (int i = 0; i < rowKeys.length; i++) {
102: RowKey rowKey = rowKeys[i];
103: if (tspl.isSelected(rowKey)) {
104: RobotFilterBean rfb = (RobotFilterBean) l.get(Integer
105: .parseInt(rowKey.getRowId()));
106: ids.add(rfb.id);
107: }
108: }
109:
110: try {
111: LinkedList path = new LinkedList();
112: path.addFirst(AdminClientUtil.DEFAULT_DOMAIN);
113: path
114: .addFirst((String) getSessionAttribute("search.server.selected"));
115: path.addFirst("robot");
116: ObjectName on = AdminClientUtil.getResourceMBeanObjectName(
117: AdminClientUtil.SEARCH_ROBOT_MBEAN_TYPE, path);
118:
119: Object[] params = { ids };
120: String[] signature = { "java.util.ArrayList" };
121: getMBeanServerConnection().invoke(on, "enableFilters",
122: params, signature);
123: } catch (Exception e) {
124: log(
125: Level.SEVERE,
126: "RobotFiltersBean.enable() failed to enable robot Filters",
127: e);
128: }
129:
130: tspl.clear();
131: filters = generateRobotFilters();
132: return "gotoRobotFiltersHome";
133: }
134:
135: public String disable() {
136: ArrayList ids = new ArrayList();
137: ObjectListDataProvider oldp = (ObjectListDataProvider) filters;
138: List l = oldp.getList();
139: RowKey[] rowKeys = tableRowGroup.getRenderedRowKeys();
140: for (int i = 0; i < rowKeys.length; i++) {
141: RowKey rowKey = rowKeys[i];
142: if (tspl.isSelected(rowKey)) {
143: RobotFilterBean rfb = (RobotFilterBean) l.get(Integer
144: .parseInt(rowKey.getRowId()));
145: ids.add(rfb.id);
146: }
147: }
148:
149: try {
150: LinkedList path = new LinkedList();
151: path.addFirst(AdminClientUtil.DEFAULT_DOMAIN);
152: path
153: .addFirst((String) getSessionAttribute("search.server.selected"));
154: path.addFirst("robot");
155: ObjectName on = AdminClientUtil.getResourceMBeanObjectName(
156: AdminClientUtil.SEARCH_ROBOT_MBEAN_TYPE, path);
157:
158: Object[] params = { ids };
159: String[] signature = { "java.util.ArrayList" };
160: getMBeanServerConnection().invoke(on, "disableFilters",
161: params, signature);
162: } catch (Exception e) {
163: log(
164: Level.SEVERE,
165: "RobotFiltersBean.disable() failed to disable robot Filters",
166: e);
167: }
168:
169: tspl.clear();
170: filters = generateRobotFilters();
171: return "gotoRobotFiltersHome";
172: }
173:
174: public String edit() {
175: ObjectListDataProvider oldp = (ObjectListDataProvider) filters;
176: List l = oldp.getList();
177: String id = null;
178: RowKey[] rowKeys = tableRowGroup.getRenderedRowKeys();
179: for (int i = 0; i < rowKeys.length; i++) {
180: RowKey rowKey = rowKeys[i];
181: if (tspl.isSelected(rowKey)) {
182: RobotFilterBean rfb = (RobotFilterBean) l.get(Integer
183: .parseInt(rowKey.getRowId()));
184: id = rfb.id;
185: setSessionAttribute("robot.filter.selected", id);
186: break;
187: }
188: }
189: if (id != null) {
190: tspl.clear();
191: return "gotoEditRobotFilter";
192: } else {
193: tspl.clear();
194: return "gotoRobotFiltersHome";
195: }
196:
197: }
198:
199: public String gotoEditFilter() {
200: HttpServletRequest hsr = (HttpServletRequest) FacesContext
201: .getCurrentInstance().getExternalContext().getRequest();
202: String id = (String) hsr.getParameter("robot.filter.selected");
203: setSessionAttribute("robot.filter.selected", id);
204: return "gotoEditRobotFilter";
205: }
206:
207: /*
208: * Methods to Get and Set Bean elements
209: */
210: public DataProvider getFilters() {
211: return filters;
212: }
213:
214: public void setFilters(DataProvider filters) {
215: this .filters = filters;
216: }
217:
218: public TableRowGroup getTableRowGroup() {
219: return tableRowGroup;
220: }
221:
222: public void setTableRowGroup(TableRowGroup tableRowGroup) {
223: this .tableRowGroup = tableRowGroup;
224: }
225:
226: public Object getSelected() {
227: return tspl.getSelected(getTableRow());
228: }
229:
230: public void setSelected(Object object) {
231: tspl.setSelected(getTableRow(), object);
232: }
233:
234: /*
235: * Private Methods
236: */
237: private String getLocalizedString(String key) {
238: return super .getLocalizedString("search", key);
239: }
240:
241: private ArrayList getStringList(String s) {
242:
243: ArrayList s_list = new ArrayList();
244: StringTokenizer st = new StringTokenizer(s, ",");
245: while (st.hasMoreTokens()) {
246: String label = st.nextToken();
247: s_list.add(label);
248: }
249: return s_list;
250: }
251:
252: private RowKey getTableRow() {
253: FacesContext context = FacesContext.getCurrentInstance();
254: ValueBinding vb = context.getApplication().createValueBinding(
255: "#{filter.tableRow}");
256: return (RowKey) vb.getValue(context);
257: }
258:
259: private DataProvider generateRobotFilters() {
260:
261: ArrayList filterlist = null;
262:
263: try {
264: LinkedList path = new LinkedList();
265: path.addFirst(AdminClientUtil.DEFAULT_DOMAIN);
266: path
267: .addFirst((String) getSessionAttribute("search.server.selected"));
268: path.addFirst("robot");
269: ObjectName on = AdminClientUtil.getResourceMBeanObjectName(
270: AdminClientUtil.SEARCH_ROBOT_MBEAN_TYPE, path);
271:
272: Object[] params = { "" };
273: String[] signature = { "java.lang.String" };
274:
275: filterlist = (ArrayList) getMBeanServerConnection().invoke(
276: on, "listFilters", params, signature);
277:
278: } catch (Exception e) {
279: log(
280: Level.SEVERE,
281: "RobotFiltersBean.generateRobotFilters() failed to get robot Filters",
282: e);
283: }
284:
285: ArrayList al = new ArrayList();
286:
287: if (filterlist != null) {
288: HashMap fr = null;
289: String filterID;
290:
291: for (int i = 0; i < filterlist.size(); i++) {
292: fr = (HashMap) filterlist.get(i);
293: filterID = (String) fr.get("FilterId");
294: if (fr != null) {
295: al.add(new RobotFilterBean(filterID, fr));
296: }
297: }
298: }
299:
300: return new ObjectListDataProvider(al);
301: }
302:
303: }
|