/*******************************************************************************
* Copyright (c) 2010 Stefan A. Tzeggai.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v2.1
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
* Contributors:
* Stefan A. Tzeggai - initial API and implementation
******************************************************************************/
package org.geopublishing.atlasViewer.swing;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Frame;
import java.awt.HeadlessException;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeSelectionModel;
import org.apache.log4j.Logger;
import org.geopublishing.atlasViewer.AtlasConfig;
public class GroupsDialog extends JDialog {
private Logger log = Logger.getLogger(GroupsDialog.class);
private AtlasConfig ac;
private JPanel myContentPane;
private JScrollPane groupTree;
private Frame ownerFrame;
private JTree tree;
public GroupsDialog(Frame owner, AtlasConfig ac) throws HeadlessException {
super(owner);
ownerFrame = owner;
this.ac = ac;
initialize();
log.debug("GroupsDialog created.");
}
private void initialize() {
getContentPane().add(getMyContentPane());
setModal(true);
pack();
}
private Component getMyContentPane() {
if (myContentPane == null) {
myContentPane = new JPanel();
myContentPane.setLayout(new BorderLayout());
myContentPane.add(getGroupTree());
}
return myContentPane;
}
private JScrollPane getGroupTree() {
if (groupTree == null) {
groupTree = new JScrollPane(getJTree());
}
return groupTree;
}
private JTree getJTree() {
if (tree == null) {
tree = new JTree();
tree.setModel(new DefaultTreeModel(ac.getRootGroup()));
// Only allow single selections
tree.getSelectionModel().setSelectionMode(
TreeSelectionModel.SINGLE_TREE_SELECTION);
}
return tree;
}
}