package org.jacorb.poa.gui.poa; /* * JacORB - a free Java ORB * * Copyright (C) 1997-2014 Gerald Brose / The JacORB Team. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ import java.awt.Color; import java.awt.Label; import org.jacorb.poa.gui.POAMonitorController; import org.jacorb.poa.gui.beans.DoubleListDialog; import org.jacorb.poa.gui.beans.FillLevelBar; import org.jacorb.poa.gui.beans.MessageDialog; import org.jacorb.poa.util.POAUtil; import org.jacorb.poa.util.StringPair; /** * Implements the org.jacorb.poa.gui.POAView interface * * @author Reimo Tiedemann, FU Berlin * @version 1.01, 06/11/99, RT */ public class POAFrame extends java.awt.Frame implements org.jacorb.poa.gui.beans.CloseButtonPanelController, DetailsButtonController, ObjectListItemController, QueueListItemController, org.jacorb.poa.gui.POAMonitorView, java.awt.event.WindowListener { private POAMonitorController controller = null; private static Color aomBarColor = new java.awt.Color(196,196,0); private static Color queueBarColor = new java.awt.Color(0,128,128); private static Color activeRequestsBarColor1 = new java.awt.Color(0,128,0); private static Color activeRequestsBarColor2 = new java.awt.Color(128,0,0); private static Color threadPoolBarColor = new java.awt.Color(0,128,0); private String poaName = ""; private FillLevelBar aomBar = null; private FillLevelBar queueBar = null; private FillLevelBar activeRequestsBar = null; private FillLevelBar threadPoolBar = null; private Label stateLabel = null; private Label threadLabel = null; private Label lifespanLabel = null; private Label idUniquenessLabel = null; private Label idAssignmentLabel = null; private Label servantRetentionLabel = null; private Label requestProcessingLabel = null; private Label implicitActivationLabel = null; private java.awt.FontMetrics fontMetrics1 = null; private org.jacorb.poa.gui.beans.CloseButtonPanel ivjButtonPanel = null; private org.jacorb.poa.gui.beans.ConsolePanel ivjConsolePanel = null; private java.awt.Panel ivjContentsPane = null; private POAStatePanel ivjPOAStatePanel = null; public void _actionCloseButtonPressed() { if (controller != null) { controller.actionCloseView(); } } public void _actionDeactivateObject(String oidStr) { if (controller != null) { controller.actionDeactivateObject(oidStr); } } public void _actionDetailsButtonPressed(String source) { if (source.equals("aom")) { _showAOMDialog(); } else if (source.equals("queue")) { _showQueueDialog(); } else { System.err.println("details unknown source: "+source); } } /** * connEtoC1: (POAFrame.window.windowClosing(java.awt.event.WindowEvent) --> POAFrame.dispose()V) * @param arg1 java.awt.event.WindowEvent */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private void connEtoC1(java.awt.event.WindowEvent arg1) { try { // user code begin {1} // user code end this._actionCloseButtonPressed(); // user code begin {2} // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {3} // user code end handleException(ivjExc); } } public void _destroy() { dispose(); } private java.awt.FontMetrics _fontMetrics1() { if (fontMetrics1 == null) { fontMetrics1 = getPOAStatePanel()._getPolicyPanel()._getThreadLabel().getGraphics().getFontMetrics(); } return fontMetrics1; } private FillLevelBar _getActiveRequestsBar() { if (activeRequestsBar == null) { activeRequestsBar = getPOAStatePanel()._getTMPanel()._getActiveRequestsBar(); } return activeRequestsBar; } private FillLevelBar _getAOMBar() { if (aomBar == null) { aomBar = getPOAStatePanel()._getAOMPanel()._getAOMBar(); } return aomBar; } /** * Return the ButtonPanel property value. * @return org.jacorb.poa.gui.beans.CloseButtonPanel */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private org.jacorb.poa.gui.beans.CloseButtonPanel getButtonPanel() { if (ivjButtonPanel == null) { try { ivjButtonPanel = new org.jacorb.poa.gui.beans.CloseButtonPanel(); ivjButtonPanel.setName("ButtonPanel"); // user code begin {1} // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {2} // user code end handleException(ivjExc); } }; return ivjButtonPanel; } /** * Return the ConsolePanel property value. * @return org.jacorb.poa.gui.beans.ConsolePanel */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private org.jacorb.poa.gui.beans.ConsolePanel getConsolePanel() { if (ivjConsolePanel == null) { try { ivjConsolePanel = new org.jacorb.poa.gui.beans.ConsolePanel(); ivjConsolePanel.setName("ConsolePanel"); // user code begin {1} // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {2} // user code end handleException(ivjExc); } }; return ivjConsolePanel; } /** * Return the ContentsPane property value. * @return java.awt.Panel */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private java.awt.Panel getContentsPane() { if (ivjContentsPane == null) { try { ivjContentsPane = new java.awt.Panel(); ivjContentsPane.setName("ContentsPane"); ivjContentsPane.setLayout(new java.awt.BorderLayout()); ivjContentsPane.setBackground(java.awt.SystemColor.control); getContentsPane().add(getButtonPanel(), "South"); getContentsPane().add(getConsolePanel(), "Center"); getContentsPane().add(getPOAStatePanel(), "North"); // user code begin {1} // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {2} // user code end handleException(ivjExc); } }; return ivjContentsPane; } private Label _getIdAssignmentLabel() { if (idAssignmentLabel == null) { idAssignmentLabel = getPOAStatePanel()._getPolicyPanel()._getIdAssignmentLabel(); } return idAssignmentLabel; } private Label _getIdUniquenessLabel() { if (idUniquenessLabel == null) { idUniquenessLabel = getPOAStatePanel()._getPolicyPanel()._getIdUniquenessLabel(); } return idUniquenessLabel; } private Label _getImplicitActivationLabel() { if (implicitActivationLabel == null) { implicitActivationLabel = getPOAStatePanel()._getPolicyPanel()._getImplicitActivationLabel(); } return implicitActivationLabel; } private Label _getLifespanLabel() { if (lifespanLabel == null) { lifespanLabel = getPOAStatePanel()._getPolicyPanel()._getLifespanLabel(); } return lifespanLabel; } /** * Return the POAStatePanel property value. * @return org.jacorb.poa.gui.poa.POAStatePanel */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private POAStatePanel getPOAStatePanel() { if (ivjPOAStatePanel == null) { try { ivjPOAStatePanel = new org.jacorb.poa.gui.poa.POAStatePanel(); ivjPOAStatePanel.setName("POAStatePanel"); // user code begin {1} // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {2} // user code end handleException(ivjExc); } }; return ivjPOAStatePanel; } private FillLevelBar _getQueueBar() { if (queueBar == null) { queueBar = getPOAStatePanel()._getQueuePanel()._getQueueBar(); } return queueBar; } private Label _getRequestProcessingLabel() { if (requestProcessingLabel == null) { requestProcessingLabel = getPOAStatePanel()._getPolicyPanel()._getRequestProcessingLabel(); } return requestProcessingLabel; } private Label _getServantRetentionLabel() { if (servantRetentionLabel == null) { servantRetentionLabel = getPOAStatePanel()._getPolicyPanel()._getServantRetentionLabel(); } return servantRetentionLabel; } private Label _getStateLabel() { if (stateLabel == null) { stateLabel = getPOAStatePanel()._getStatePanel()._getStateLabel(); } return stateLabel; } private Label _getThreadLabel() { if (threadLabel == null) { threadLabel = getPOAStatePanel()._getPolicyPanel()._getThreadLabel(); } return threadLabel; } private FillLevelBar _getThreadPoolBar() { if (threadPoolBar == null) { threadPoolBar = getPOAStatePanel()._getTMPanel()._getThreadPoolBar(); } return threadPoolBar; } /** * Called whenever the part throws an exception. * @param exception java.lang.Throwable */ private void handleException(Throwable exception) { /* Uncomment the following lines to print uncaught exceptions to stdout */ // System.out.println("--------- UNCAUGHT EXCEPTION ---------"); // exception.printStackTrace(System.out); } public void _initActiveRequestsBar(int avg, int max) { _getActiveRequestsBar().init(0, avg, max, activeRequestsBarColor1, activeRequestsBarColor2, true, false); } public void _initAOMBar(int max, boolean isVariable) { _getAOMBar().init(0, 0, max, aomBarColor, null, false, isVariable); } /** * Initializes connections */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private void initConnections() { // user code begin {1} // user code end this.addWindowListener(this); } /** * Initialize the class. */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private void initialize() { // user code begin {1} // user code end setName("POAFrame"); setLayout(new java.awt.BorderLayout()); setSize(698, 310); setTitle("POA Monitor"); add(getContentsPane(), "Center"); initConnections(); // user code begin {2} getButtonPanel()._init(this, "Close"); getPOAStatePanel()._getAOMPanel()._init(this); getPOAStatePanel()._getQueuePanel()._init(this); // user code end } public void _initQueueBar(int max, boolean isVariable) { _getQueueBar().init(0, 0, max, queueBarColor, null, false, isVariable); } public void _initThreadPoolBar(int max) { _getThreadPoolBar().init(0, 0, max, threadPoolBarColor, null, false, false); } public void _inspectRequest(String oidStr) { new MessageDialog(this, "Message", "This function is not yet implemented!").setVisible(true); } public void _inspectServantClass(String oidStr) { new MessageDialog(this, "Message", "This function is not yet implemented!").setVisible(true); } public POAFrame(POAMonitorController _controller) { super(); controller = _controller; initialize(); } /** * POAFrame constructor comment. * @param title java.lang.String */ public POAFrame(String title) { super(title); } /** * main entrypoint - starts the part when it is run as an application * @param args java.lang.String[] */ public static void main(java.lang.String[] args) { try { POAFrame aPOAFrame; aPOAFrame = new POAFrame(); try { Class aCloserClass = Class.forName("com.ibm.uvm.abt.edit.WindowCloser"); Class parmTypes[] = { java.awt.Window.class }; Object parms[] = { aPOAFrame }; java.lang.reflect.Constructor aCtor = aCloserClass.getConstructor(parmTypes); aCtor.newInstance(parms); } catch (java.lang.Throwable exc) {}; aPOAFrame.setVisible(true); } catch (Throwable exception) { System.err.println("Exception occurred in main() of java.awt.Frame"); exception.printStackTrace(System.out); } } public void _printMessage(String str) { getConsolePanel()._printMessage(str); } public void _removeRequest(String ridStr) { if (controller != null) { controller.actionRemoveRequestFromQueue(ridStr); } } public void _setMaxThreadPoolBar(int value) { _getThreadPoolBar().setMaxValue(value); } public void _setName(String str) { poaName = str; setTitle(poaName+" Monitor ("+_getStateLabel().getText()+")"); } public void _setPolicyIdAssignment(String str) { _getIdAssignmentLabel().setText(" "+str); } public void _setPolicyIdUniqueness(String str) { _getIdUniquenessLabel().setText(" "+str); } public void _setPolicyImplicitActivation(String str) { _getImplicitActivationLabel().setText(" "+str); } public void _setPolicyLifespan(String str) { _getLifespanLabel().setText(" "+str); } public void _setPolicyRequestProcessing(String str) { _getRequestProcessingLabel().setText(" "+str); } public void _setPolicyServantRetention(String str) { _getServantRetentionLabel().setText(" "+str); } public void _setPolicyThread(String str) { _getThreadLabel().setText(" "+str); } public void _setState(String str) { _getStateLabel().setText(str); setTitle(poaName+" Monitor ("+str+")"); } public void _setValueActiveRequestsBar(int value) { _getActiveRequestsBar().setCurrentValue(value); } public void _setValueAOMBar(int value) { _getAOMBar().setCurrentValue(value); } public void _setValueQueueBar(int value) { _getQueueBar().setCurrentValue(value); } public void _setValueThreadPoolBar(int value) { _getThreadPoolBar().setCurrentValue(value); } public void _setVisible(boolean visible) { setVisible(visible); } private void _showAOMDialog() { if (controller == null) return; StringPair[] data = controller.actionRetrieveAOMContent(); DoubleListDialog showDialog = new DoubleListDialog(this, "Active Object Map Snapshot"); showDialog._setHeaderLabel1("Object ID"); showDialog._setHeaderLabel2("Servant Class"); if (data != null) { ObjectListItem[] items = new ObjectListItem[data.length]; String helpStr; int firstMax = 100; int secondMax = 100; int helpInt; for (int i=0; i<data.length; i++) { items[i] = new ObjectListItem(); items[i]._init(this, data[i].first); helpStr = POAUtil.convert(data[i].first.getBytes()); items[i]._getFirstLabel().setText(helpStr); items[i]._getSecondLabel().setText(data[i].second); helpInt = _fontMetrics1().stringWidth(items[i]._getFirstLabel().getText()); if (helpInt > firstMax) firstMax = helpInt; helpInt = _fontMetrics1().stringWidth(items[i]._getSecondLabel().getText()); if (helpInt > secondMax) secondMax = helpInt; } showDialog._setSize(firstMax+20, secondMax+20); for (int i=0; i<data.length; i++) { items[i]._setWidth(firstMax+20, secondMax+20); showDialog._addItem(items[i]); } } showDialog.setVisible(true); } private void _showQueueDialog() { if (controller == null) return; StringPair[] data = controller.actionRetrieveQueueContent(); DoubleListDialog showDialog = new DoubleListDialog(this, "Queue Snapshot"); showDialog._setHeaderLabel1("Request ID"); showDialog._setHeaderLabel2("Object ID"); if (data != null) { QueueListItem[] items = new QueueListItem[data.length]; String helpStr; int firstMax = 100; int secondMax = 100; int helpInt; for (int i=0; i<data.length; i++) { items[i] = new QueueListItem(); items[i]._init(this, data[i].first); items[i]._getFirstLabel().setText(data[i].first); helpStr = POAUtil.convert(data[i].second.getBytes()); items[i]._getSecondLabel().setText(helpStr); helpInt = _fontMetrics1().stringWidth(items[i]._getFirstLabel().getText()); if (helpInt > firstMax) firstMax = helpInt; helpInt = _fontMetrics1().stringWidth(items[i]._getSecondLabel().getText()); if (helpInt > secondMax) secondMax = helpInt; } showDialog._setSize(firstMax+20, secondMax+20); for (int i=0; i<data.length; i++) { items[i]._setWidth(firstMax+20, secondMax+20); showDialog._addItem(items[i]); } } showDialog.setVisible(true); } /** * Constructor */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ public POAFrame() { super(); initialize(); } /** * Method to handle events for the WindowListener interface. * @param e java.awt.event.WindowEvent */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ public void windowActivated(java.awt.event.WindowEvent e) { // user code begin {1} // user code end // user code begin {2} // user code end } /** * Method to handle events for the WindowListener interface. * @param e java.awt.event.WindowEvent */ public void windowClosed(java.awt.event.WindowEvent e) { // user code begin {1} // user code end // user code begin {2} // user code end } /** * Method to handle events for the WindowListener interface. * @param e java.awt.event.WindowEvent */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ public void windowClosing(java.awt.event.WindowEvent e) { // user code begin {1} // user code end if ((e.getSource() == this) ) { connEtoC1(e); } // user code begin {2} // user code end } /** * Method to handle events for the WindowListener interface. * @param e java.awt.event.WindowEvent */ public void windowDeactivated(java.awt.event.WindowEvent e) { } /** * Method to handle events for the WindowListener interface. * @param e java.awt.event.WindowEvent */ public void windowDeiconified(java.awt.event.WindowEvent e) { } /** * Method to handle events for the WindowListener interface. * @param e java.awt.event.WindowEvent */ public void windowIconified(java.awt.event.WindowEvent e) { } /** * Method to handle events for the WindowListener interface. * @param e java.awt.event.WindowEvent */ public void windowOpened(java.awt.event.WindowEvent e) { } }