
com.sun.messaging.jmq.admin.apps.console.ObjAdminHandler Maven / Gradle / Ivy
The newest version!
/*
* Copyright (c) 2000, 2017 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2020, 2022 Contributors to Eclipse Foundation. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
package com.sun.messaging.jmq.admin.apps.console;
import com.sun.messaging.InvalidPropertyException;
import com.sun.messaging.InvalidPropertyValueException;
import java.util.Enumeration;
import java.util.Properties;
import java.util.Vector;
import javax.naming.NameClassPair;
import javax.swing.JOptionPane;
import com.sun.messaging.jmq.admin.util.Globals;
import com.sun.messaging.jmq.admin.util.JMSObjFactory;
import com.sun.messaging.jmq.admin.resources.AdminConsoleResources;
import com.sun.messaging.jmq.admin.event.AdminEvent;
import com.sun.messaging.jmq.admin.event.AdminEventListener;
import com.sun.messaging.jmq.admin.apps.console.event.DialogEvent;
import com.sun.messaging.jmq.admin.apps.console.event.ObjAdminEvent;
import com.sun.messaging.jmq.admin.apps.console.event.ConsoleActionEvent;
import com.sun.messaging.jmq.admin.objstore.AuthenticationException;
import com.sun.messaging.jmq.admin.objstore.NameAlreadyExistsException;
import com.sun.messaging.jmq.admin.objstore.NameNotFoundException;
import com.sun.messaging.jmq.admin.objstore.ObjStore;
import com.sun.messaging.jmq.admin.objstore.ObjStoreAttrs;
import com.sun.messaging.jmq.admin.objstore.ObjStoreManager;
import com.sun.messaging.jmq.admin.objstore.ObjStoreException;
/**
* Handles the object administration tasks delegated by the AController class.
*
* @see AController
*/
public class ObjAdminHandler implements AdminEventListener {
private static String OBJSTORELIST_FILENAME = "objstorelist.properties";
private static AdminConsoleResources acr = Globals.getAdminConsoleResources();
private static String close[] = { acr.getString(acr.I_DIALOG_CLOSE) };
private AdminApp app;
private AController controller;
private ObjStoreAddDialog objStoreAddDialog = null;
private ObjStorePropsDialog objStorePropsDialog = null;
private ObjStorePasswdDialog objStorePasswdDialog = null;
private ObjStoreDestAddDialog objStoreDestAddDialog = null;
private ObjStoreDestPropsDialog objStoreDestPropsDialog = null;
private ObjStoreConFactoryAddDialog objStoreConFactoryAddDialog = null;
private ObjStoreConFactoryPropsDialog objStoreConFactoryPropsDialog = null;
/**
* Create/initialize the admin explorer GUI component.
*/
public ObjAdminHandler(AdminApp app, AController controller) {
this.app = app;
this.controller = controller;
}
public void init() {
loadObjStoreList();
}
/*
* BEGIN INTERFACE AdminEventListener
*/
@Override
public void adminEventDispatched(AdminEvent e) {
if (e instanceof DialogEvent) {
handleDialogEvents((DialogEvent) e);
} else if (e instanceof ObjAdminEvent) {
handleObjAdminEvents((ObjAdminEvent) e);
}
}
/*
* END INTERFACE AdminEventListener
*/
public void handleDialogEvents(DialogEvent de) {
ConsoleObj selObj = app.getSelectedObj();
int dialogType = de.getDialogType();
switch (dialogType) {
case DialogEvent.ADD_DIALOG:
if (selObj instanceof ObjStoreListCObj) {
if (objStoreAddDialog == null) {
objStoreAddDialog = new ObjStoreAddDialog(app.getFrame(), (ObjStoreListCObj) selObj);
objStoreAddDialog.addAdminEventListener(this);
objStoreAddDialog.setLocationRelativeTo(app.getFrame());
}
objStoreAddDialog.setVisible(true);
} else if (selObj instanceof ObjStoreDestListCObj) {
if (objStoreDestAddDialog == null) {
objStoreDestAddDialog = new ObjStoreDestAddDialog(app.getFrame());
objStoreDestAddDialog.addAdminEventListener(this);
objStoreDestAddDialog.setLocationRelativeTo(app.getFrame());
}
// This should't happen - menu item should be disabled.
ObjStore os = ((ObjStoreDestListCObj) selObj).getObjStore();
if (!os.isOpen()) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_OBJSTORE_NOT_CONNECTED, os.getID()),
acr.getString(acr.I_ADD_OBJSTORE_DEST) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_OBJSTORE_NOT_CONNECTED),
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, close, close[0]);
}
objStoreDestAddDialog.show((ObjStoreDestListCObj) selObj);
} else if (selObj instanceof ObjStoreConFactoryListCObj) {
if (objStoreConFactoryAddDialog == null) {
objStoreConFactoryAddDialog = new ObjStoreConFactoryAddDialog(app.getFrame());
objStoreConFactoryAddDialog.addAdminEventListener(this);
objStoreConFactoryAddDialog.setLocationRelativeTo(app.getFrame());
}
// This should't happen - menu item should be disabled.
ObjStore os = ((ObjStoreConFactoryListCObj) selObj).getObjStore();
if (!os.isOpen()) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_OBJSTORE_NOT_CONNECTED, os.getID()),
acr.getString(acr.I_ADD_OBJSTORE_CF) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_OBJSTORE_NOT_CONNECTED),
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return;
}
objStoreConFactoryAddDialog.show((ObjStoreConFactoryListCObj) selObj);
}
break;
case DialogEvent.DELETE_DIALOG:
if (selObj instanceof ObjStoreCObj) {
doDeleteObjStore(selObj);
} else if (selObj instanceof ObjStoreDestCObj) {
doDeleteDestination(selObj);
} else if (selObj instanceof ObjStoreConFactoryCObj) {
doDeleteConnFactory(selObj);
}
break;
case DialogEvent.PROPS_DIALOG:
if (selObj instanceof ObjStoreCObj) {
if (objStorePropsDialog == null) {
ObjStoreCObj osCObj = (ObjStoreCObj) selObj;
ObjStoreListCObj oslCObj = (ObjStoreListCObj) osCObj.getParent();
objStorePropsDialog = new ObjStorePropsDialog(app.getFrame(), oslCObj);
objStorePropsDialog.addAdminEventListener(this);
objStorePropsDialog.setLocationRelativeTo(app.getFrame());
}
objStorePropsDialog.show((ObjStoreCObj) selObj);
} else if (selObj instanceof ObjStoreDestCObj) {
if (objStoreDestPropsDialog == null) {
objStoreDestPropsDialog = new ObjStoreDestPropsDialog(app.getFrame());
objStoreDestPropsDialog.addAdminEventListener(this);
objStoreDestPropsDialog.setLocationRelativeTo(app.getFrame());
}
// This should't happen - menu item should be disabled.
ObjStore os = ((ObjStoreDestCObj) selObj).getObjStore();
if (!os.isOpen()) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_OBJSTORE_NOT_CONNECTED, os.getID()),
acr.getString(acr.I_OBJSTORE_DEST_PROPS) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_OBJSTORE_NOT_CONNECTED),
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return;
}
objStoreDestPropsDialog.show((ObjStoreDestCObj) selObj);
} else if (selObj instanceof ObjStoreConFactoryCObj) {
if (objStoreConFactoryPropsDialog == null) {
objStoreConFactoryPropsDialog = new ObjStoreConFactoryPropsDialog(app.getFrame());
objStoreConFactoryPropsDialog.addAdminEventListener(this);
objStoreConFactoryPropsDialog.setLocationRelativeTo(app.getFrame());
}
// This should't happen - menu item should be disabled.
ObjStore os = ((ObjStoreConFactoryCObj) selObj).getObjStore();
if (!os.isOpen()) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_OBJSTORE_NOT_CONNECTED, os.getID()),
acr.getString(acr.I_OBJSTORE_CF_PROPS) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_OBJSTORE_NOT_CONNECTED),
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return;
}
objStoreConFactoryPropsDialog.show((ObjStoreConFactoryCObj) selObj);
}
break;
case DialogEvent.CONNECT_DIALOG:
if (selObj instanceof ObjStoreCObj) {
doConnectObjStore(selObj);
}
break;
case DialogEvent.DISCONNECT_DIALOG:
if (selObj instanceof ObjStoreCObj) {
doDisconnectObjStore(selObj);
}
break;
case DialogEvent.HELP_DIALOG:
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.I_NO_HELP), acr.getString(acr.I_HELP_TEXT), JOptionPane.YES_NO_OPTION,
JOptionPane.INFORMATION_MESSAGE, null, close, close[0]);
break;
case DialogEvent.SHUTDOWN_DIALOG:
case DialogEvent.RESTART_DIALOG:
case DialogEvent.PAUSE_DIALOG:
case DialogEvent.RESUME_DIALOG:
/*
* No shutdown/restart/pause/resume for obj admin
*/
break;
}
}
public void handleObjAdminEvents(ObjAdminEvent oae) {
ConsoleObj selObj = app.getSelectedObj();
int type = oae.getType();
switch (type) {
case ObjAdminEvent.ADD_OBJSTORE:
doAddObjStore(oae);
break;
case ObjAdminEvent.UPDATE_OBJSTORE:
doUpdateObjStore(oae, selObj);
break;
case ObjAdminEvent.ADD_DESTINATION:
doAddDestination(oae, selObj);
break;
case ObjAdminEvent.UPDATE_DESTINATION:
doUpdateDestination(oae, selObj);
break;
case ObjAdminEvent.ADD_CONN_FACTORY:
doAddConnFactory(oae, selObj);
break;
case ObjAdminEvent.UPDATE_CONN_FACTORY:
doUpdateConnFactory(oae, selObj);
break;
case ObjAdminEvent.UPDATE_CREDENTIALS:
doUpdateCredentials(oae, selObj);
break;
}
}
private void doAddObjStore(ObjAdminEvent oae) {
ObjStoreAttrs osa = oae.getObjStoreAttrs();
ObjStoreManager osMgr = app.getObjStoreListCObj().getObjStoreManager();
boolean connect = oae.isConnectAttempt();
ConsoleObj osCObj = null;
/*
* Create store and connect (if requested).
*/
ObjStore os = createStore(osMgr, osa, connect);
/*
* If valid object store, then now try reading in any existing objects.
*/
if (os != null) {
osCObj = new ObjStoreCObj(os);
if (os.isOpen()) {
readObjStore(osCObj, os);
}
}
/*
* If os is still valid, then add it to the tree list.
*/
if (osCObj != null) {
app.getExplorer().addObjStore(osCObj);
app.getInspector().refresh();
app.getStatusArea().appendText(acr.getString(acr.S_OBJSTORE_ADD, osCObj.toString()));
}
/*
* Bring down the dialog if successful, otherwise keep it up.
*/
if (oae.isOKAction() && os != null) {
objStoreAddDialog.setVisible(false);
}
saveObjStoreList();
}
private void doUpdateObjStore(ObjAdminEvent oae, ConsoleObj selObj) {
ObjStoreAttrs osa = oae.getObjStoreAttrs();
ObjStoreManager osMgr = app.getObjStoreListCObj().getObjStoreManager();
boolean connect = oae.isConnectAttempt();
ObjStore prevOs = ((ObjStoreCObj) selObj).getObjStore();
String newName = oae.getObjStoreID();
/*
* Create/Update a new store and connect (if requested).
*/
ObjStore os = updateStore(prevOs, newName, osMgr, osa, connect);
/*
* If valid object store, then now try reading in any existing objects.
*/
if (os == null) {
// Don't do anything, just keep the old os.
return;
} else {
/*
* Read in the objects from the os.
*/
if (os.isOpen()) {
readObjStore(selObj, os);
}
}
/*
* If os is still valid, then update it cobj with the new obj store.
*/
((ObjStoreCObj) selObj).setObjStore(os);
/*
* We know that 0 is the dest list and 1 is the con factory list.
*/
ObjStoreDestListCObj destListCObj = (ObjStoreDestListCObj) selObj.getChildAt(0);
ObjStoreConFactoryListCObj cfListCObj = (ObjStoreConFactoryListCObj) selObj.getChildAt(1);
destListCObj.setObjStore(os);
cfListCObj.setObjStore(os);
app.getExplorer().nodeChanged(selObj);
app.getStatusArea().appendText(acr.getString(acr.S_OBJSTORE_UPDATE, selObj.toString()));
app.getInspector().selectedObjectUpdated();
// Update menu items, buttons.
controller.setActions(selObj);
/*
* If check box to connect is not checked, then remove all destination/connection factory objects from this object store
* node hierarchy
*/
if (!connect) {
clearStore(selObj);
}
/*
* Bring down the dialog if successful, otherwise keep it up.
*/
if (oae.isOKAction()) {
objStorePropsDialog.setVisible(false);
}
saveObjStoreList();
}
/*
* Read in the objects from the obj store and store them in the console object.
*/
private boolean readObjStore(ConsoleObj osCObj, ObjStore os) {
Vector v = null;
try {
v = os.list();
} catch (Exception e) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_OBJSTORE_LIST, os.getID(), e.toString()),
acr.getString(acr.I_OBJSTORE) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_OBJSTORE_LIST), JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE, null, close, close[0]);
// Close the obj store connection.
try {
os.close();
} catch (Exception ex) {
}
// No Changes
return false;
}
/*
* We know that 0 is the dest list and 1 is the con factory list.
*/
ObjStoreDestListCObj destListCObj = (ObjStoreDestListCObj) osCObj.getChildAt(0);
ObjStoreConFactoryListCObj cfListCObj = (ObjStoreConFactoryListCObj) osCObj.getChildAt(1);
/*
* We're re-reading it in so clear out whatever's there.
*/
ConsoleObj node;
for (Enumeration e = destListCObj.children(); e.hasMoreElements();) {
node = (ConsoleObj) e.nextElement();
app.getExplorer().removeFromParent(node);
e = destListCObj.children(); // Need to set e again after a remove
}
for (Enumeration e = cfListCObj.children(); e.hasMoreElements();) {
node = (ConsoleObj) e.nextElement();
app.getExplorer().removeFromParent(node);
e = cfListCObj.children(); // Need to set e again after a remove
}
/*
* Re-read the objects into the nodes.
*/
for (int i = 0; i < v.size(); i++) {
NameClassPair obj = (NameClassPair) v.get(i);
String lookupName = obj.getName();
Object object = null;
try {
object = os.retrieve(lookupName);
} catch (Exception e) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_RETRIEVE_OBJECT, lookupName, os.getID()),
acr.getString(acr.I_OBJSTORE) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_RETRIEVE_OBJECT),
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, close, close[0]);
continue;
}
if ((com.sun.messaging.Topic.class.getName().equals(obj.getClassName())) || (com.sun.messaging.Queue.class.getName().equals(obj.getClassName()))) {
ObjStoreDestCObj destCObj = new ObjStoreDestCObj((ObjStoreCObj) osCObj, lookupName, object);
app.getExplorer().addToParent(destListCObj, destCObj);
} else if ((com.sun.messaging.TopicConnectionFactory.class.getName().equals(obj.getClassName()))
|| (com.sun.messaging.QueueConnectionFactory.class.getName().equals(obj.getClassName()))
|| (com.sun.messaging.ConnectionFactory.class.getName().equals(obj.getClassName()))
|| (com.sun.messaging.XATopicConnectionFactory.class.getName().equals(obj.getClassName()))
|| (com.sun.messaging.XAQueueConnectionFactory.class.getName().equals(obj.getClassName()))
|| (com.sun.messaging.XAConnectionFactory.class.getName().equals(obj.getClassName()))) {
ObjStoreConFactoryCObj cfCObj = new ObjStoreConFactoryCObj((ObjStoreCObj) osCObj, lookupName, object);
app.getExplorer().addToParent(cfListCObj, cfCObj);
}
}
return true;
}
private void clearStore(ConsoleObj osCObj) {
/*
* We know that 0 is the dest list and 1 is the con factory list.
*/
ObjStoreDestListCObj destListCObj = (ObjStoreDestListCObj) osCObj.getChildAt(0);
ObjStoreConFactoryListCObj cfListCObj = (ObjStoreConFactoryListCObj) osCObj.getChildAt(1);
/*
* We're re-reading it in so clear out whatever's there.
*/
ConsoleObj node;
for (Enumeration e = destListCObj.children(); e.hasMoreElements();) {
node = (ConsoleObj) e.nextElement();
app.getExplorer().removeFromParent(node);
e = destListCObj.children(); // Need to set e again after a remove
}
for (Enumeration e = cfListCObj.children(); e.hasMoreElements();) {
node = (ConsoleObj) e.nextElement();
app.getExplorer().removeFromParent(node);
e = cfListCObj.children(); // Need to set e again after a remove
}
}
private ObjStore createStore(ObjStoreManager osMgr, ObjStoreAttrs osa, boolean attemptToConnect) {
ObjStore os = null;
if (osMgr == null || osa == null) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_OS_PROCESS),
acr.getString(acr.I_OBJSTORE) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_OS_PROCESS), JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return (null);
}
/*
* Create ObjStore
*/
try {
os = osMgr.createStore(osa);
} catch (Exception ex) {
JOptionPane.showOptionDialog(app.getFrame(), ex.toString(), acr.getString(acr.I_OBJSTORE), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE,
null, close, close[0]);
return null;
}
/*
* Now try connecting to it (if they want to try). Then read in the objects from the store.
*/
if (attemptToConnect) {
try {
if (os != null) {
os.open();
}
} catch (Exception e) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_INSUFFICIENT_INFO, e.toString()),
acr.getString(acr.I_OBJSTORE) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_INSUFFICIENT_INFO),
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, close, close[0]);
os = null;
// Delete it.
try {
osMgr.destroyStore(osa.getID());
} catch (Exception ex) {
}
}
}
return (os);
}
private ObjStore updateStore(ObjStore prevOs, String newName, ObjStoreManager osMgr, ObjStoreAttrs osa, boolean attemptToConnect) {
boolean created = false;
if (osMgr == null || osa == null) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_OS_PROCESS),
acr.getString(acr.I_OBJSTORE) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_OS_PROCESS), JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return (null);
}
/*
* Update ObjStore
*/
ObjStoreAttrs prevAttrs = prevOs.getObjStoreAttrs();
ObjStore os = osMgr.getStore(prevOs.getID());
if (os == null) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_OS_PROCESS),
acr.getString(acr.I_OBJSTORE) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_OS_PROCESS), JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE, null, close, close[0]);
}
//
// If we're changing the OS name, then we need to
// delete old os and create new one.
// Otherwise, just set new attrs on the os.
//
try {
if (newName != null && os != null && !newName.equals(os.getID())) {
os = osMgr.createStore(osa);
created = true;
} else if (os != null) {
os.setObjStoreAttrs(osa);
}
} catch (Exception ex) {
JOptionPane.showOptionDialog(app.getFrame(), ex.toString(), acr.getString(acr.I_OBJSTORE_PROPS), JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return null;
}
/*
* Now try connecting to it (if they want to try). Then read in the objects from the store.
*/
if (attemptToConnect) {
try {
if (os != null) {
os.open();
}
} catch (Exception e) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_INSUFFICIENT_INFO, e.toString()),
acr.getString(acr.I_OBJSTORE_PROPS) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_INSUFFICIENT_INFO),
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, close, close[0]);
// Don't update it, undo everything
try {
if (created) {
osMgr.destroyStore(osa.getID());
} else {
// Reset old attrs back
os.setObjStoreAttrs(prevAttrs);
}
} catch (Exception ex) {
}
return null;
}
}
//
// If successful in updating, now we can delete the old one.
//
if (os != null && created) {
try {
if (prevOs.isOpen()) {
prevOs.close();
}
osMgr.destroyStore(prevOs.getID());
if (!attemptToConnect && os.isOpen()) {
os.close();
}
} catch (Exception ex) {
}
}
//
// If the os is open and unchecked connect box, then close it.
//
if (os != null && !attemptToConnect && os.isOpen()) {
try {
os.close();
} catch (Exception ex) {
}
}
return (os);
}
private void doConnectObjStore(ConsoleObj selObj) {
ObjStore os = ((ObjStoreCObj) selObj).getObjStore();
if (os.isOpen()) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_OS_ALREADY_CONNECTED, selObj.toString()),
acr.getString(acr.I_CONNECT_OBJSTORE) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_OS_ALREADY_CONNECTED),
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return;
}
/*
* Retrieve the original ObjStoreAttrs that the user input. This DOES NOT read any jndi property files processed by jndi
* since this is done PRIOR to creating the initialContext.
*/
ObjStoreAttrs osa = os.getObjStoreAttrs();
Vector missingAuthInfo = os.checkAuthentication(osa);
int missingAuthInfoSize = missingAuthInfo.size();
if (missingAuthInfoSize > 0) {
if (objStorePasswdDialog == null && missingAuthInfoSize > 0) {
objStorePasswdDialog = new ObjStorePasswdDialog(app.getFrame());
objStorePasswdDialog.addAdminEventListener(this);
objStorePasswdDialog.setLocationRelativeTo(app.getFrame());
}
if (missingAuthInfoSize > 0) {
objStorePasswdDialog.show(os, missingAuthInfo);
}
} else {
boolean success = finishDoConnectObjStore(selObj, os);
if (success) {
app.getStatusArea().appendText(acr.getString(acr.S_OBJSTORE_CONNECT, selObj.toString()));
}
}
}
private boolean finishDoConnectObjStore(ConsoleObj selObj, ObjStore os) {
try {
os.open();
} catch (AuthenticationException ae) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_PASSWORD),
acr.getString(acr.I_CONNECT_OBJSTORE) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_PASSWORD), JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE, null, close, close[0]);
closeObjStore(os, selObj);
return false;
} catch (Exception e) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_OS_UNABLE_CONNECT, selObj.toString(), e.toString()),
acr.getString(acr.I_CONNECT_OBJSTORE) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_OS_UNABLE_CONNECT),
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, close, close[0]);
closeObjStore(os, selObj);
return false;
}
// Read in the objects.
boolean success = readObjStore(selObj, os);
if (success) {
app.getExplorer().nodeChanged(selObj);
app.getInspector().selectedObjectUpdated();
// XXX This causes selection to go away if selected in inspector
app.getInspector().refresh();
}
// Update menu items, buttons.
controller.setActions(selObj);
return true;
}
private void doDisconnectObjStore(ConsoleObj selObj) {
ObjStore os = ((ObjStoreCObj) selObj).getObjStore();
if (!os.isOpen()) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_OS_ALREADY_DISCONNECTED, selObj.toString()),
acr.getString(acr.I_DISCONNECT_OBJSTORE) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_OS_ALREADY_DISCONNECTED),
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return;
}
try {
os.close();
} catch (Exception e) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_OS_UNABLE_DISCONNECT, selObj.toString()),
acr.getString(acr.I_DISCONNECT_OBJSTORE) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_OS_UNABLE_DISCONNECT),
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return;
}
/*
* Remove all destination/connection factory objects from this object store node hierarchy
*/
clearStore(selObj);
app.getExplorer().nodeChanged(selObj);
app.getStatusArea().appendText(acr.getString(acr.S_OBJSTORE_DISCONNECT, selObj.toString()));
// XXX This causes selection to go away if selected in inspector
app.getInspector().refresh();
app.getInspector().selectedObjectUpdated();
// Update menu items, buttons.
controller.setActions(selObj);
}
private void doDeleteObjStore(ConsoleObj selObj) {
int result = JOptionPane.showConfirmDialog(app.getFrame(), acr.getString(acr.Q_OBJSTORE_DELETE, selObj.toString()),
acr.getString(acr.I_DELETE_OBJSTORE), JOptionPane.YES_NO_OPTION);
if (result == JOptionPane.NO_OPTION) {
return;
}
/*
* Disconnect and delete the object store.
*/
ObjStore os = ((ObjStoreCObj) selObj).getObjStore();
try {
os.close();
} catch (Exception e) {
}
ObjStoreManager osMgr = app.getObjStoreListCObj().getObjStoreManager();
try {
osMgr.destroyStore(os.getID());
} catch (Exception e) {
}
/*
* Remove the node from the tree.
*/
app.getExplorer().removeFromParent(selObj);
app.getStatusArea().appendText(acr.getString(acr.S_OBJSTORE_DELETE, os.getID()));
/*
* Clear selection if the selection is from the explorer. Otherwise, refresh the inspector.
*/
/*
* if (fromExplorer) controller.clearSelection(); else app.getInspector().refresh();
*/
controller.clearSelection();
saveObjStoreList();
}
private void doDeleteDestination(ConsoleObj selObj) {
ObjStore os = ((ObjStoreDestCObj) selObj).getObjStore();
int result = JOptionPane.showConfirmDialog(app.getFrame(), acr.getString(acr.Q_DEST_OBJ_DELETE, selObj.toString(), os.getID()),
acr.getString(acr.I_DELETE_OBJSTORE_DEST), JOptionPane.YES_NO_OPTION);
if (result == JOptionPane.NO_OPTION) {
return;
}
/*
* Disconnect and delete the object store.
*/
String lookupName = selObj.toString();
try {
os.delete(lookupName);
} catch (Exception e) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_DELETE_DEST_OBJ, selObj.toString(), e.toString()),
acr.getString(acr.I_DELETE_OBJSTORE_DEST) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_DELETE_DEST_OBJ),
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return;
}
app.getStatusArea().appendText(acr.getString(acr.S_OBJSTORE_DELETE_DEST, selObj.toString(), os.getID()));
ObjStoreDestListCObj destList = (ObjStoreDestListCObj) selObj.getParent();
app.getExplorer().removeFromParent(selObj);
// Force selection of ObjStoreDestListCObj
app.getExplorer().select((destList));
app.getInspector().refresh();
}
private void doDeleteConnFactory(ConsoleObj selObj) {
ObjStore os = ((ObjStoreConFactoryCObj) selObj).getObjStore();
int result = JOptionPane.showConfirmDialog(app.getFrame(), acr.getString(acr.Q_CF_OBJ_DELETE, selObj.toString(), os.getID()),
acr.getString(acr.I_DELETE_OBJSTORE_CF), JOptionPane.YES_NO_OPTION);
if (result == JOptionPane.NO_OPTION) {
return;
}
/*
* Disconnect and delete the object store.
*/
String lookupName = selObj.toString();
try {
os.delete(lookupName);
} catch (Exception e) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_DELETE_CF_OBJ, selObj.toString(), e.toString()),
acr.getString(acr.I_DELETE_OBJSTORE_CF) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_DELETE_CF_OBJ),
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return;
}
app.getStatusArea().appendText(acr.getString(acr.S_OBJSTORE_DELETE_CF, selObj.toString(), os.getID()));
ObjStoreConFactoryListCObj cfList = (ObjStoreConFactoryListCObj) selObj.getParent();
app.getExplorer().removeFromParent(selObj);
// Force selection of ObjStoreDestListCObj
app.getExplorer().select((cfList));
app.getInspector().refresh();
}
private void doUpdateDestination(ObjAdminEvent oae, ConsoleObj selObj) {
ObjStore os = oae.getObjStore();
String lookupName = oae.getLookupName();
boolean readOnly = oae.isReadOnly();
Object currentObj = ((ObjStoreDestCObj) selObj).getObject();
Object updatedObject = updateObject(currentObj, oae.getDestinationType(), oae.getObjProperties(), readOnly);
if (updatedObject == null) {
return;
}
try {
os.add(lookupName, updatedObject, true);
} catch (NameAlreadyExistsException naee) {
// Should never happen, since we pass true to add
} catch (Exception e) {
JOptionPane.showOptionDialog(app.getFrame(), e.toString(), acr.getString(acr.I_OBJSTORE_DEST_PROPS), JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return;
}
/*
* Now replace this updated object in the tree.
*/
((ObjStoreDestCObj) selObj).setObject(updatedObject);
// ConsoleObj parent = (ConsoleObj)selObj.getParent();
// app.getExplorer().removeFromParent(selObj);
// ObjStoreDestCObj destCObj = new ObjStoreDestCObj(os, lookupName, updatedObject);
// app.getExplorer().addToParent(parent, destCObj);
app.getStatusArea().appendText(acr.getString(acr.S_OBJSTORE_UPDATE_DEST, selObj.toString(), os.getID()));
app.getInspector().selectedObjectUpdated();
if (oae.isOKAction()) {
objStoreDestPropsDialog.setVisible(false);
}
}
private Object updateObject(Object object, int type, Properties objProps, boolean readOnly) {
Object updatedObject = null;
String titleId = acr.I_OBJSTORE;
String readOnlyValue = null;
if (readOnly) {
readOnlyValue = "true";
} else {
readOnlyValue = "false";
}
try {
if (type == ObjAdminEvent.QUEUE) {
titleId = acr.I_OBJSTORE_DEST_PROPS;
updatedObject = JMSObjFactory.updateQueue(object, objProps, readOnlyValue);
} else if (type == ObjAdminEvent.TOPIC) {
titleId = acr.I_OBJSTORE_DEST_PROPS;
updatedObject = JMSObjFactory.updateTopic(object, objProps, readOnlyValue);
} else if (type == ObjAdminEvent.QCF) {
titleId = acr.I_OBJSTORE_CF_PROPS;
updatedObject = JMSObjFactory.updateQueueConnectionFactory(object, objProps, readOnlyValue);
} else if (type == ObjAdminEvent.TCF) {
titleId = acr.I_OBJSTORE_CF_PROPS;
updatedObject = JMSObjFactory.updateTopicConnectionFactory(object, objProps, readOnlyValue);
} else if (type == ObjAdminEvent.CF) {
titleId = acr.I_OBJSTORE_CF_PROPS;
updatedObject = JMSObjFactory.updateConnectionFactory(object, objProps, readOnlyValue);
} else if (type == ObjAdminEvent.XAQCF) {
titleId = acr.I_OBJSTORE_CF_PROPS;
updatedObject = JMSObjFactory.updateXAQueueConnectionFactory(object, objProps, readOnlyValue);
} else if (type == ObjAdminEvent.XATCF) {
titleId = acr.I_OBJSTORE_CF_PROPS;
updatedObject = JMSObjFactory.updateXATopicConnectionFactory(object, objProps, readOnlyValue);
} else if (type == ObjAdminEvent.XACF) {
titleId = acr.I_OBJSTORE_CF_PROPS;
updatedObject = JMSObjFactory.updateXAConnectionFactory(object, objProps, readOnlyValue);
}
} catch (Exception e) {
handleExceptions(e, titleId);
return null;
}
return updatedObject;
}
private void doUpdateCredentials(ObjAdminEvent oae, ConsoleObj selObj) {
ObjStore os = oae.getObjStore();
boolean success = finishDoConnectObjStore(selObj, os);
if (success) {
app.getStatusArea().appendText(acr.getString(acr.S_OBJSTORE_CONNECT, selObj.toString()));
}
// Remove missing info that we just added.
ObjStoreAttrs osa = oae.getObjStoreAttrs();
Vector missingInfo = oae.getMissingAuthInfo();
for (int i = 0; i < missingInfo.size(); i++) {
String key = (String) missingInfo.elementAt(i);
osa.remove(key);
}
try {
os.setObjStoreAttrs(osa);
} catch (ObjStoreException ose) {
JOptionPane.showOptionDialog(app.getFrame(), ose.toString(), acr.getString(acr.I_OBJSTORE), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE,
null, close, close[0]);
}
// Dismiss window
if (success && oae.isOKAction()) {
objStorePasswdDialog.setVisible(false);
}
}
private void doUpdateConnFactory(ObjAdminEvent oae, ConsoleObj selObj) {
ObjStore os = oae.getObjStore();
String lookupName = oae.getLookupName();
boolean readOnly = oae.isReadOnly();
Object currentObj = ((ObjStoreConFactoryCObj) selObj).getObject();
Object updatedObject = updateObject(currentObj, oae.getFactoryType(), oae.getObjProperties(), readOnly);
if (updatedObject == null) {
return;
}
try {
os.add(lookupName, updatedObject, true);
} catch (NameAlreadyExistsException naee) {
// Should never happen, since we pass true to add
} catch (Exception e) {
JOptionPane.showOptionDialog(app.getFrame(), e.toString(), acr.getString(acr.I_OBJSTORE_CF_PROPS), JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return;
}
/*
* Now replace this updated object in the tree.
*/
((ObjStoreConFactoryCObj) selObj).setObject(updatedObject);
// ConsoleObj parent = (ConsoleObj)selObj.getParent();
// app.getExplorer().removeFromParent(selObj);
// ObjStoreConFactoryCObj conFactoryCObj = new ObjStoreConFactoryCObj (os, lookupName, updatedObject);
// app.getExplorer().addToParent(parent, conFactoryCObj);
app.getStatusArea().appendText(acr.getString(acr.S_OBJSTORE_UPDATE_CF, selObj.toString(), os.getID()));
app.getInspector().selectedObjectUpdated();
if (oae.isOKAction()) {
objStoreConFactoryPropsDialog.setVisible(false);
}
}
private void doAddDestination(ObjAdminEvent oae, ConsoleObj selObj) {
Object object = null;
ObjStore os = oae.getObjStore();
int destType = oae.getDestinationType();
String lookupName = oae.getLookupName();
Properties objProps = oae.getObjProperties();
boolean readOnly = oae.isReadOnly();
boolean overwrite = false;
if (os.isOpen()) {
Object newObj = null;
try {
if (destType == ObjAdminEvent.TOPIC) {
newObj = JMSObjFactory.createTopic(objProps);
} else if (destType == ObjAdminEvent.QUEUE) {
newObj = JMSObjFactory.createQueue(objProps);
}
} catch (Exception e) {
handleExceptions(e, acr.I_ADD_OBJSTORE_DEST);
return;
}
/*
* Set this newly created obj to read-only if specified.
*/
if (readOnly) {
JMSObjFactory.doReadOnlyForAdd(newObj, "true");
} else {
JMSObjFactory.doReadOnlyForAdd(newObj, "false");
}
//
// Check if it already exists so we can confirm with user to
// overwrite.
//
try {
object = os.retrieve(lookupName);
} catch (NameNotFoundException nnfe) {
// Make sure that this exception is NOT treated as an error for add
} catch (Exception ex) {
JOptionPane.showOptionDialog(app.getFrame(), ex.toString(), acr.getString(acr.I_ADD_OBJSTORE_DEST), JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return;
}
// Object already exists so confirm with user.
if (object != null) {
int result = JOptionPane.showConfirmDialog(app.getFrame(), acr.getString(acr.Q_LOOKUP_NAME_EXISTS, lookupName),
acr.getString(acr.I_ADD_OBJSTORE_DEST), JOptionPane.YES_NO_OPTION);
if (result == JOptionPane.NO_OPTION) {
return;
} else {
overwrite = true;
}
}
try {
os.add(lookupName, newObj, true);
} catch (Exception ex) {
JOptionPane.showOptionDialog(app.getFrame(), ex.toString(), acr.getString(acr.I_ADD_OBJSTORE_DEST), JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return;
}
/*
* If already exists, the delete old tree node before adding.
*/
if (overwrite) {
removeChild(selObj, lookupName);
removeChild((ConsoleObj) selObj.getParent().getChildAt(1), lookupName);
}
ObjStoreDestCObj destCObj = new ObjStoreDestCObj((ObjStoreCObj) selObj.getParent(), lookupName, newObj);
app.getExplorer().addToParent(selObj, destCObj);
app.getInspector().refresh();
app.getStatusArea().appendText(acr.getString(acr.S_OBJSTORE_ADD_DEST, lookupName, os.getID()));
if (oae.isOKAction()) {
objStoreDestAddDialog.setVisible(false);
}
}
}
private void doAddConnFactory(ObjAdminEvent oae, ConsoleObj selObj) {
Object object = null;
ObjStore os = oae.getObjStore();
int factoryType = oae.getFactoryType();
String lookupName = oae.getLookupName();
Properties objProps = oae.getObjProperties();
boolean readOnly = oae.isReadOnly();
boolean overwrite = false;
if (os.isOpen()) {
Object newObj = null;
try {
if (factoryType == ObjAdminEvent.QCF) {
newObj = JMSObjFactory.createQueueConnectionFactory(objProps);
} else if (factoryType == ObjAdminEvent.TCF) {
newObj = JMSObjFactory.createTopicConnectionFactory(objProps);
} else if (factoryType == ObjAdminEvent.CF) {
newObj = JMSObjFactory.createConnectionFactory(objProps);
} else if (factoryType == ObjAdminEvent.XAQCF) {
newObj = JMSObjFactory.createXAQueueConnectionFactory(objProps);
} else if (factoryType == ObjAdminEvent.XATCF) {
newObj = JMSObjFactory.createXATopicConnectionFactory(objProps);
} else if (factoryType == ObjAdminEvent.XACF) {
newObj = JMSObjFactory.createXAConnectionFactory(objProps);
}
} catch (Exception e) {
handleExceptions(e, acr.I_ADD_OBJSTORE_CF);
return;
}
/*
* Set this newly created obj to read-only if specified.
*/
if (readOnly) {
JMSObjFactory.doReadOnlyForAdd(newObj, "true");
} else {
JMSObjFactory.doReadOnlyForAdd(newObj, "false");
}
//
// Check if it already exists so we can confirm with user to
// overwrite.
//
try {
object = os.retrieve(lookupName);
} catch (NameNotFoundException nnfe) {
// Make sure that this exception is NOT treated as an error for add
} catch (Exception ex) {
JOptionPane.showOptionDialog(app.getFrame(), ex.toString(), acr.getString(acr.I_ADD_OBJSTORE_CF), JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return;
}
// Object already exists so confirm with user.
if (object != null) {
int result = JOptionPane.showConfirmDialog(app.getFrame(), acr.getString(acr.Q_LOOKUP_NAME_EXISTS, lookupName),
acr.getString(acr.I_ADD_OBJSTORE_CF), JOptionPane.YES_NO_OPTION);
if (result == JOptionPane.NO_OPTION) {
return;
} else {
overwrite = true;
}
}
try {
os.add(lookupName, newObj, true);
} catch (Exception ex) {
JOptionPane.showOptionDialog(app.getFrame(), ex.toString(), acr.getString(acr.I_ADD_OBJSTORE_CF), JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return;
}
/*
* If already exists, the delete old tree node before adding.
*/
if (overwrite) {
removeChild(selObj, lookupName);
removeChild((ConsoleObj) selObj.getParent().getChildAt(0), lookupName);
}
ObjStoreConFactoryCObj conFacCObj = new ObjStoreConFactoryCObj((ObjStoreCObj) selObj.getParent(), lookupName, newObj);
app.getExplorer().addToParent(selObj, conFacCObj);
app.getInspector().refresh();
app.getStatusArea().appendText(acr.getString(acr.S_OBJSTORE_ADD_CF, lookupName, os.getID()));
if (oae.isOKAction()) {
objStoreConFactoryAddDialog.setVisible(false);
}
}
}
/*
* Remove the child node with the given name.
*/
private void removeChild(ConsoleObj parent, String childName) {
for (Enumeration e = parent.children(); e.hasMoreElements();) {
ConsoleObj node = (ConsoleObj) e.nextElement();
if ((node.toString()).equals(childName)) {
app.getExplorer().removeFromParent(node);
e = parent.children();
}
}
}
/*
* Load objstore list from property file. See ConsoleObjStoreManager and ObjStoreListProperties for details on the
* actual file loading.
*/
private void loadObjStoreList() {
ConsoleObjStoreManager osMgr;
osMgr = (ConsoleObjStoreManager) app.getObjStoreListCObj().getObjStoreManager();
try {
osMgr.setFileName(OBJSTORELIST_FILENAME);
osMgr.readObjStoresFromFile();
} catch (Exception ex) {
String errStr = acr.getString(acr.E_LOAD_OBJSTORE_LIST, ex.getMessage());
/*
* Show popup to indicate that the loading failed.
*/
JOptionPane.showOptionDialog(app.getFrame(), errStr,
acr.getString(acr.I_LOAD_OBJSTORE_LIST) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_LOAD_OBJSTORE_LIST),
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, close, close[0]);
/*
* At this point, should we make sure the ConsoleObjStoreManager contains no obj stores ?
*/
}
Vector v = osMgr.getAllStores();
for (int i = 0; i < v.size(); i++) {
ObjStore os = (ObjStore) v.get(i);
ConsoleObj osCObj = new ObjStoreCObj(os);
if (os.isOpen()) {
readObjStore(osCObj, os);
}
app.getExplorer().addObjStore(osCObj);
}
app.getInspector().refresh();
}
/*
* Save objstore list to property file. See ConsoleObjStoreManager and ObjStoreListProperties for details on the actual
* file saving.
*/
private void saveObjStoreList() {
ConsoleObjStoreManager osMgr;
osMgr = (ConsoleObjStoreManager) app.getObjStoreListCObj().getObjStoreManager();
try {
osMgr.setFileName(OBJSTORELIST_FILENAME);
osMgr.writeObjStoresToFile();
} catch (Exception ex) {
String errStr = acr.getString(acr.E_SAVE_OBJSTORE_LIST, ex.getMessage());
// String titles[] = {acr.getString(acr.I_DIALOG_CLOSE),
// acr.getString(acr.I_DIALOG_DO_NOT_SHOW_AGAIN)};
/*
* Inform the user that the save failed with the option of not popping up this dialog again in the future.
*/
JOptionPane.showOptionDialog(app.getFrame(), errStr,
acr.getString(acr.I_OBJSTORE) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_SAVE_OBJSTORE_LIST),
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, close, close[0]);
}
}
public void handleConsoleActionEvents(ConsoleActionEvent cae) {
int type = cae.getType();
switch (type) {
case ConsoleActionEvent.REFRESH:
doRefresh();
break;
}
}
private void doRefresh() {
ConsoleObj selObj = app.getSelectedObj();
if (selObj instanceof ObjStoreCObj) {
doRefreshObjStore(selObj);
} else if (selObj instanceof ObjStoreDestListCObj) {
doRefreshObjStore(selObj);
} else if (selObj instanceof ObjStoreDestCObj) {
// doRefreshDestination(selObj);
ObjStoreDestCObj destCObj = (ObjStoreDestCObj) selObj;
ObjStoreCObj osCObj = destCObj.getObjStoreCObj();
doRefreshObjStore(osCObj.getObjStoreDestListCObj());
} else if (selObj instanceof ObjStoreConFactoryListCObj) {
doRefreshObjStore(selObj);
} else if (selObj instanceof ObjStoreConFactoryCObj) {
// doRefreshConnFactory(selObj);
ObjStoreConFactoryCObj cfCObj = (ObjStoreConFactoryCObj) selObj;
ObjStoreCObj osCObj = cfCObj.getObjStoreCObj();
doRefreshObjStore(osCObj.getObjStoreConFactoryListCObj());
}
}
/*
* private void doRefreshConnFactory(ConsoleObj selObj) {
*
* ObjStore os = ((ObjStoreConFactoryCObj)selObj).getObjStore(); String lookupName =
* ((ObjStoreConFactoryCObj)selObj).getLookupName(); Object object = null;
*
* try { object = os.retrieve(lookupName); } catch (Exception e) { JOptionPane.showOptionDialog(app.getFrame(),
* e.toString(), acr.getString(acr.I_OBJSTORE_REFRESH_CF), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null,
* close, close[0]); return; }
*
* // Now replace this updated object in the tree. ((ObjStoreConFactoryCObj)selObj).setObject(object);
*
* app.getStatusArea().appendText(acr.getString(acr.S_OS_CF_REFRESH, selObj.toString(), os.getID()));
* app.getInspector().selectedObjectUpdated();
*
* }
*/
/*
* private void doRefreshDestination(ConsoleObj selObj) {
*
* ObjStore os = ((ObjStoreDestCObj)selObj).getObjStore(); String lookupName =
* ((ObjStoreDestCObj)selObj).getLookupName(); Object object = null;
*
* try { object = os.retrieve(lookupName); } catch (Exception e) { JOptionPane.showOptionDialog(app.getFrame(),
* e.toString(), acr.getString(acr.I_OBJSTORE_REFRESH_DEST), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null,
* close, close[0]); return; }
*
* // Now replace this updated object in the tree. ((ObjStoreDestCObj)selObj).setObject(object);
*
* app.getStatusArea().appendText(acr.getString(acr.S_OS_DEST_REFRESH, selObj.toString(), os.getID()));
* app.getInspector().selectedObjectUpdated();
*
* }
*/
private void doRefreshObjStore(ConsoleObj selObj) {
ObjStore os = null;
ConsoleObj cObj = selObj;
if (selObj instanceof ObjStoreCObj) {
os = ((ObjStoreCObj) selObj).getObjStore();
cObj = selObj;
} else if (selObj instanceof ObjStoreDestListCObj) {
os = ((ObjStoreDestListCObj) selObj).getObjStore();
cObj = (ConsoleObj) selObj.getParent();
} else if (selObj instanceof ObjStoreConFactoryListCObj) {
os = ((ObjStoreConFactoryListCObj) selObj).getObjStore();
cObj = (ConsoleObj) selObj.getParent();
}
if (!os.isOpen()) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_OBJSTORE_NOT_CONNECTED, selObj.toString()),
acr.getString(acr.I_OBJSTORE_REFRESH) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_OBJSTORE_NOT_CONNECTED),
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return;
}
boolean success = finishDoConnectObjStore(cObj, os);
if (success) {
// Update menu items, buttons.
controller.setActions(selObj);
// XXX This causes selection in inspector to go away.
app.getInspector().refresh();
if (selObj instanceof ObjStoreCObj) {
app.getStatusArea().appendText(acr.getString(acr.S_OS_REFRESH, os.getID()));
} else if (selObj instanceof ObjStoreDestListCObj) {
app.getStatusArea().appendText(acr.getString(acr.S_OS_DESTLIST_REFRESH, os.getID()));
} else if (selObj instanceof ObjStoreConFactoryListCObj) {
app.getStatusArea().appendText(acr.getString(acr.S_OS_CFLIST_REFRESH, os.getID()));
}
}
}
private void handleExceptions(Exception e, String titleId) {
if (e instanceof InvalidPropertyException) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_INVALID_PROP_NAME, e.getMessage()),
acr.getString(titleId) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_INVALID_PROP_NAME), JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE, null, close, close[0]);
} else if (e instanceof InvalidPropertyValueException) {
JOptionPane.showOptionDialog(app.getFrame(), acr.getString(acr.E_INVALID_PROP_VALUE, e.getMessage()),
acr.getString(titleId) + ": " + acr.getString(acr.I_ERROR_CODE, AdminConsoleResources.E_INVALID_PROP_VALUE), JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE, null, close, close[0]);
} else {
JOptionPane.showOptionDialog(app.getFrame(), e.toString(), acr.getString(titleId), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null,
close, close[0]);
}
}
private void closeObjStore(ObjStore os, ConsoleObj selObj) {
if (os == null) {
return;
}
try {
// Close the obj store
// and update the explorer to X icon.
// and refresh the inspector.
if (os.isOpen()) {
os.close();
if (selObj instanceof ObjStoreCObj) {
clearStore(selObj);
app.getExplorer().nodeChanged(selObj);
app.getInspector().refresh();
// Update menu items, buttons.
controller.setActions(selObj);
}
}
} catch (Exception e) {
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy