001: /*
002: * ChainBuilder ESB
003: * Visual Enterprise Integration
004: *
005: * Copyright (C) 2006 Bostech Corporation
006: *
007: * This program is free software; you can redistribute it and/or modify it
008: * under the terms of the GNU General Public License as published by the
009: * Free Software Foundation; either version 2 of the License, or (at your option)
010: * any later version.
011: *
012: * This program is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
014: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
015: * for more details.
016: *
017: * You should have received a copy of the GNU General Public License along with
018: * this program; if not, write to the Free Software Foundation, Inc.,
019: * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
020: *
021: *
022: * $Id$
023: */
024: package com.bostechcorp.cbesb.console.client.endpoint;
025:
026: import java.util.Vector;
027:
028: import com.bostechcorp.cbesb.console.client.ConsoleCallback;
029: import com.bostechcorp.cbesb.console.i18n.ConsoleMessages;
030: import com.bostechcorp.cbesb.console.pub.JmxAssemblyObj;
031: import com.bostechcorp.cbesb.console.pub.JmxComponentObj;
032: import com.google.gwt.core.client.GWT;
033: import com.google.gwt.user.client.Window;
034: import com.google.gwt.user.client.ui.ClickListener;
035: import com.google.gwt.user.client.ui.HTMLTable;
036: import com.google.gwt.user.client.ui.HorizontalPanel;
037: import com.google.gwt.user.client.ui.PushButton;
038: import com.google.gwt.user.client.ui.TreeItem;
039: import com.google.gwt.user.client.ui.Widget;
040:
041: public class EndpointStatisticsOne extends EndpointBaseOne {
042:
043: private HorizontalPanel toolsPanel = new HorizontalPanel();
044: protected ResetCallback resetCallback = new ResetCallback(this );
045:
046: public EndpointStatisticsOne() {
047: this .endpointView = new EndpointViewUser(this );
048: initWidgets();
049: }
050:
051: protected void initWidgets() {
052: endpointPanel.clear();
053: this .lastSaArray = this .itemArray;
054: this .lastExpandArray = this .expandArray;
055: this .lastSelLocation = this .curSelLocation;
056:
057: saListBox.setWidth("200px");
058: retrieveButton.setText(((ConsoleMessages) GWT
059: .create(ConsoleMessages.class)).retrieve());
060: retrieveButton.addClickListener(new ClickListener() {
061: public void onClick(Widget sender) {
062: showWaitingDialog();
063: getSANameList();
064: }
065: });
066: PushButton resetButton = new PushButton();
067: resetButton.setText(((ConsoleMessages) GWT
068: .create(ConsoleMessages.class)).Reset());
069: resetButton.addClickListener(new ClickListener() {
070: public void onClick(Widget sender) {
071: if (Window.confirm(((ConsoleMessages) GWT
072: .create(ConsoleMessages.class))
073: .resetStatisricsConfirm())) {
074: resetStatistics();
075: }
076: }
077: });
078: toolsPanel.add(saListBox);
079: toolsPanel.add(retrieveButton);
080: toolsPanel.add(resetButton);
081:
082: endpointPanel.add(toolsPanel);
083: endpointPanel.add(tree);
084: }
085:
086: public void resetStatistics() {
087: stopPollingFlag();
088: getJmxOperationAsyncFromModule().deleteEndpointStatistics(
089: currentSaName, resetCallback);
090: }
091:
092: protected void drawTree() {
093: tree.removeItems();
094: TreeItem selItem = null;
095: int len = 1;
096: this .itemArray = new String[1];
097: this .expandArray = new String[1];
098: int index = 0;
099:
100: String saName = currentAssembly.getName();
101: TreeItem saItem = tree.addItem(saName);
102: saItem
103: .setUserObject(new CbesbItem(saName, TYPE_ASSEMBLY,
104: index));
105: String saExpandState = getExpandState(saName);
106: this .itemArray[index] = saName;
107: this .expandArray[index++] = saExpandState;
108:
109: if (this .lastSelLocation != null
110: && this .lastSelLocation.equals(saName)) {
111: selItem = saItem;
112: }
113: Vector list = new Vector();
114:
115: for (int i = 0; i < currentAssembly.getComponentList().length; i++) {
116: JmxComponentObj component = currentAssembly
117: .getComponentList()[i];
118: // this.itemArray[index] = component.getName();
119: for (int j = 0; j < component.getEndpointList().length; j++) {
120: list.add(component.getEndpointList()[j]);
121: }
122: }
123:
124: HTMLTable table = buildHtmlStatisticsTable(list);
125: TreeItem epItem = saItem.addItem(table);
126: String epLocation = saName + "_ep";
127: epItem.setUserObject(new CbesbItem(epLocation, TYPE_ENDPOINT,
128: index));
129: if (this .lastSelLocation != null
130: && this .lastSelLocation.equals(epLocation)) {
131: selItem = epItem;
132: }
133: saItem.setState(saExpandState.equals("1"));
134:
135: if (selItem != null) {
136: tree.setSelectedItem(selItem);
137: }
138: tree.removeTreeListener(this );
139: tree.addTreeListener(this );
140: }
141:
142: protected void getAssemblyInfo() {
143: getJmxOperationAsyncFromModule().getSaStatObj(currentSaName,
144: refreshCallback);
145: }
146:
147: protected void doPolling() {
148: getPollingAsyncFromModule().pollingStatisticsChangeBySA(
149: currentSaName, pollingCallback);
150: }
151:
152: public ConsoleCallback getStatusOperCallback() {
153: return null;
154: }
155:
156: protected boolean isChanged(JmxAssemblyObj sa) {
157: return sa.isStatisticChanged();
158: }
159:
160: protected void getSANameList() {
161: stopPollingFlag();
162: getJmxOperationAsyncFromModule().getSAListForEndpointStat(
163: currentSaName, refreshCallback);
164: }
165:
166: }
|