Files
mars-flaim/xflaim/java/util/xedit/AttributeSelector.java
ahodgkinson 12a621dc04 Changed license to LGPL.
git-svn-id: https://svn.code.sf.net/p/flaim/code/trunk@1010 0109f412-320b-0410-ab79-c3e0c5ffbbe6
2007-01-23 11:22:22 +00:00

191 lines
4.6 KiB
Java

//------------------------------------------------------------------------------
// Desc: Attribute Selector
// Tabs: 3
//
// Copyright (c) 2004-2007 Novell, Inc. All Rights Reserved.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; version 2.1
// of the License.
//
// 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 Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, contact Novell, Inc.
//
// To contact Novell about this file by physical or electronic mail,
// you may find current contact information at www.novell.com.
//
// $Id$
//------------------------------------------------------------------------------
package xedit;
import xflaim.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
/**
* To change the template for this generated type comment go to
* Window->Preferences->Java->Code Generation->Code and Comments
*/
public class AttributeSelector extends JDialog implements ActionListener
{
private JComboBox m_cbAttribute;
private JButton m_btnOkay;
private JButton m_btnCancel;
private Attribute m_Attribute;
/**
* @param owner
* @throws java.awt.HeadlessException
*/
public AttributeSelector(
Frame owner,
DOMNode jRefNode,
Attribute attribute)
{
super(owner, "Select Attribute", true);
Container CP; // The content pane for this dialog
GridBagLayout gridbag;
GridBagConstraints constraints = new GridBagConstraints();
Vector vAttributes;
// Coordinates for location this window in the center of its parent.
Point p;
Dimension d;
int x;
int y;
setDefaultCloseOperation( DISPOSE_ON_CLOSE);
CP = getContentPane();
gridbag = new GridBagLayout();
CP.setLayout( gridbag);
m_Attribute = attribute;
// Add the combobox.
vAttributes = new Vector();
// Now get all of the attributes from the node
try
{
boolean bFirst = true;
DOMNode jAttr = null;
for (;;)
{
if (bFirst)
{
bFirst = false;
jAttr = jRefNode.getFirstAttribute(jAttr);
}
else
{
try
{
jAttr = jAttr.getNextSibling(jAttr);
}
catch (XFlaimException ee)
{
if (ee.getRCode() == RCODE.NE_XFLM_DOM_NODE_NOT_FOUND)
{
break;
}
else
{
// Leave it for now.
System.out.println(ee.getMessage());
}
}
}
String sDesc = "<" + jAttr.getLocalName() + ">";
long lNodeId = jAttr.getNodeId();
vAttributes.add(new Attribute(sDesc, lNodeId));
}
}
catch (XFlaimException e)
{
// Leave it for now.
System.out.println(e.getMessage());
}
m_cbAttribute = new JComboBox( vAttributes);
m_cbAttribute.setSelectedIndex(0);
m_cbAttribute.addActionListener(this);
UITools.buildConstraints(constraints, 0, 0, 2, 1, 0, 0);
gridbag.setConstraints( m_cbAttribute, constraints);
CP.add( m_cbAttribute);
// Add the Okay button
m_btnOkay = new JButton("Okay");
m_btnOkay.setDefaultCapable(true);
m_btnOkay.addActionListener(this);
UITools.buildConstraints(constraints, 0, 1, 1, 1, 60, 100);
gridbag.setConstraints( m_btnOkay, constraints);
CP.add( m_btnOkay);
// Add the Cancel button
m_btnCancel = new JButton("Cancel");
m_btnCancel.addActionListener(this);
UITools.buildConstraints(constraints, 1, 1, 1, 1, 40, 0);
gridbag.setConstraints( m_btnCancel, constraints);
CP.add( m_btnCancel);
setSize(200, 100);
p = owner.getLocationOnScreen();
d = owner.getSize();
x = (d.width - 200) / 2;
y = (d.height - 100) / 2;
setLocation(Math.max(0, p.x + x), Math.max(0, p.y + y));
setVisible( true);
}
/* (non-Javadoc)
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed(ActionEvent e)
{
Object obj = (Object)e.getSource();
if (obj == m_cbAttribute || obj == m_btnOkay)
{
Attribute attr = (Attribute)m_cbAttribute.getSelectedItem();
m_Attribute.m_lNodeId = attr.m_lNodeId;
m_Attribute.m_sDesc = new String(attr.m_sDesc);
if (obj == m_btnOkay)
{
setVisible(false);
dispose();
}
}
else
{
m_Attribute.m_lNodeId = -1; // Make sure the caller knows we cancelled
setVisible(false);
dispose();
}
}
}