package com.hackerdude.swing.picklist.search;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
* This is a Generic Search Panel. It shows a generic, event-aware search
* dialog based on a series of search criteria. It does the search, displays
* the data using the supplied tablemodel and it allows the user to select
* an item from the table. It returns the index of the item that has been
* selected.
*/
public class GenericSearchPanel extends JPanel {
BorderLayout borderLayout1 = new BorderLayout();
JPanel pnlBottomPanel = new JPanel();
public CriteriaPanel criteriaPanel = new CriteriaPanel();
ResultsPanel resultsPanel = new ResultsPanel();
JLabel lblResultsMessage = new JLabel();
BorderLayout borderLayout2 = new BorderLayout();
public GenericSearchPanel() {
try {
jbInit();
}
catch(Exception ex) {
ex.printStackTrace();
}
}
void jbInit() throws Exception {
this.setLayout(borderLayout1);
lblResultsMessage.setText("Empty Results.");
lblResultsMessage.setForeground(btnOk.getForeground());
pnlBottomPanel.setLayout(borderLayout2);
pnlOkCancel.setLayout(flowLayout1);
pnlCustomActions.setLayout(borderLayout3);
pnlOkCancel.add(btnOk, null);
pnlOkCancel.add(btnCancel, null);
this.add(criteriaPanel, BorderLayout.NORTH);
this.add(resultsPanel, BorderLayout.CENTER);
this.add(pnlBottomPanel, BorderLayout.SOUTH);
pnlBottomPanel.add(lblResultsMessage, BorderLayout.WEST);
pnlBottomPanel.add(pnlOkCancel, BorderLayout.EAST);
pnlBottomPanel.add(pnlCustomActions, BorderLayout.CENTER);
pnlCustomActions.add(pnlGroupActions, BorderLayout.CENTER);
pnlCustomActions.add(pnlItemLevelActions, BorderLayout.WEST);
}
JPanel pnlOkCancel = new JPanel();
JButton btnCancel = new JButton();
FlowLayout flowLayout1 = new FlowLayout();
JButton btnOk = new JButton();
private JPanel pnlCustomActions = new JPanel();
private BorderLayout borderLayout3 = new BorderLayout();
private JPanel pnlGroupActions = new JPanel();
private JPanel pnlItemLevelActions = new JPanel();
public void setItemLevelActions(Action[] itemLevelActions) {
pnlItemLevelActions.removeAll();
for ( int i=0; i<itemLevelActions.length; i++ ) pnlItemLevelActions.add(new JButton(itemLevelActions[i]));
}
public void setGroupLevelActions(Action[] groupLevelActions) {
pnlGroupActions.removeAll();
for ( int i=0; i<groupLevelActions.length; i++ ) pnlGroupActions.add(new JButton(groupLevelActions[i]));
}
}