/*
* Bitronix Transaction Manager
*
* Copyright (c) 2010, Bitronix Software.
*
* This copyrighted material is made available to anyone wishing to use, modify,
* copy, or redistribute it subject to the terms and conditions of the GNU
* Lesser General Public License, as published by the Free Software Foundation.
*
* This program 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 Lesser General Public License
* for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this distribution; if not, write to:
* Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor
* Boston, MA 02110-1301 USA
*/
package bitronix.tm.gui;
import bitronix.tm.TransactionManagerServices;
import bitronix.tm.utils.PropertyUtils;
import bitronix.tm.resource.ResourceLoader;
import bitronix.tm.resource.common.ResourceBean;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Iterator;
import java.util.Map;
/**
*
* @author lorban
*/
public class ResourcesPanel extends JPanel {
private JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
private JTree resourcesTree = new JTree();
private JScrollPane resourcesTreeScrollpane = new JScrollPane(resourcesTree);
private JTextArea activeResource = new JTextArea();
public ResourcesPanel() {
setLayout(new GridLayout(1, 1));
resourcesTree.setModel(new ResourcesTreeModel());
resourcesTree.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
JTree tree = (JTree) evt.getSource();
int selectedRow = tree.getSelectionRows()[0] -1;
ResourceLoader resourceLoader = TransactionManagerServices.getResourceLoader();
Iterator it = resourceLoader.getResources().entrySet().iterator();
ResourceBean resource = null;
for (int i=0; i<selectedRow+1 ;i++) {
Map.Entry entry = (Map.Entry) it.next();
resource = (ResourceBean) entry.getValue();
}
if (resource != null) {
try {
Map properties = PropertyUtils.getProperties(resource);
StringBuffer sb = new StringBuffer();
Iterator it2 = properties.entrySet().iterator();
while (it2.hasNext()) {
Map.Entry entry = (Map.Entry) it2.next();
String name = (String) entry.getKey();
Object valueObject = entry.getValue();
String value = valueObject == null ? null : valueObject.toString();
sb.append(name);
sb.append('=');
sb.append(value);
if (it2.hasNext())
sb.append('\n');
}
activeResource.setText(sb.toString());
} catch (Exception ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(null, "error querying resource loader", "Error", JOptionPane.ERROR_MESSAGE);
}
}
else
activeResource.setText("");
}
});
splitPane.add(resourcesTreeScrollpane);
splitPane.add(activeResource);
add(splitPane);
}
}