git-svn-id: https://svn.code.sf.net/p/flaim/code/trunk@1010 0109f412-320b-0410-ab79-c3e0c5ffbbe6
210 lines
5.4 KiB
Java
210 lines
5.4 KiB
Java
//------------------------------------------------------------------------------
|
|
// Desc: Collection Selector
|
|
// Tabs: 3
|
|
//
|
|
// Copyright (c) 2003-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 xedit.*;
|
|
import xflaim.*;
|
|
import java.awt.*;
|
|
import java.awt.event.*;
|
|
import javax.swing.*;
|
|
import java.util.*;
|
|
|
|
/**
|
|
* The CollectionSelector is used to popup a dialog window that gives the
|
|
* use a choice of collections to choose. The Collection parameter passed
|
|
* into the constructor will be initialized to hold the collection the user
|
|
* has chosen when this object exits. All of the work is done inthe constructor.
|
|
* To use this class/object, simply create a new instance of it and check the
|
|
* Collection object that was passed into the constructor.
|
|
*/
|
|
public class CollectionSelector extends JDialog implements ActionListener
|
|
{
|
|
private JComboBox m_cbCollection;
|
|
private JButton m_btnOkay;
|
|
private JButton m_btnCancel;
|
|
private Collection m_Collection;
|
|
|
|
public CollectionSelector(
|
|
Frame owner,
|
|
DbSystem dbSystem,
|
|
Db jDb,
|
|
Collection collection)
|
|
{
|
|
super(owner, "Select Collection", true);
|
|
|
|
Container CP; // The content pane for this dialog
|
|
GridBagLayout gridbag;
|
|
GridBagConstraints constraints = new GridBagConstraints();
|
|
Vector vCollections;
|
|
DataVector SearchKey = null;
|
|
DataVector FoundKey = null;
|
|
// 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_Collection = collection;
|
|
|
|
// Add the combobox.
|
|
vCollections = new Vector();
|
|
vCollections.add(new Collection("Default Data ", xflaim.Collections.DATA));
|
|
vCollections.add(new Collection("Dictionary ", xflaim.Collections.DICTIONARY));
|
|
|
|
// Now get all of the user defined collections from the database
|
|
try
|
|
{
|
|
boolean bFirst = true;
|
|
int iFlags;
|
|
|
|
SearchKey = dbSystem.createJDataVector();
|
|
FoundKey = dbSystem.createJDataVector();
|
|
|
|
// Setup the search key.
|
|
jDb.keyRetrieve(FlmDictIndex.NAME_INDEX,
|
|
SearchKey,
|
|
KeyRetrieveFlags.FO_FIRST,
|
|
SearchKey);
|
|
|
|
SearchKey.setLong(0, ReserveID.ELM_COLLECTION_TAG);
|
|
SearchKey.setString(1, "a");
|
|
|
|
for (;;)
|
|
{
|
|
if (bFirst)
|
|
{
|
|
bFirst = false;
|
|
iFlags = KeyRetrieveFlags.FO_INCL;
|
|
jDb.keyRetrieve(FlmDictIndex.NAME_INDEX, SearchKey, iFlags, FoundKey);
|
|
|
|
}
|
|
else
|
|
{
|
|
iFlags = KeyRetrieveFlags.FO_EXCL;
|
|
jDb.keyRetrieve(FlmDictIndex.NAME_INDEX, FoundKey, iFlags, FoundKey);
|
|
|
|
}
|
|
|
|
if (FoundKey == null)
|
|
{
|
|
break;
|
|
}
|
|
|
|
if (FoundKey.getLong(0) != ReserveID.ELM_COLLECTION_TAG)
|
|
{
|
|
break;
|
|
}
|
|
String sName = FoundKey.getString(1);
|
|
int iNumber = (int)FoundKey.getLong(3);
|
|
vCollections.add(new Collection(sName, iNumber));
|
|
|
|
}
|
|
}
|
|
catch (XFlaimException e)
|
|
{
|
|
// Leave it for now.
|
|
System.out.println(e.getMessage());
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m_cbCollection = new JComboBox( vCollections);
|
|
m_cbCollection.setSelectedIndex(0);
|
|
m_cbCollection.addActionListener(this);
|
|
|
|
UITools.buildConstraints(constraints, 0, 0, 2, 1, 0, 0);
|
|
|
|
gridbag.setConstraints( m_cbCollection, constraints);
|
|
|
|
CP.add( m_cbCollection);
|
|
|
|
// 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_cbCollection || obj == m_btnOkay)
|
|
{
|
|
Collection coll = (Collection)m_cbCollection.getSelectedItem();
|
|
m_Collection.m_iNumber = coll.m_iNumber;
|
|
m_Collection.m_sName = new String(coll.m_sName);
|
|
if (obj == m_btnOkay)
|
|
{
|
|
setVisible(false);
|
|
dispose();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
setVisible(false);
|
|
dispose();
|
|
}
|
|
}
|
|
|
|
}
|