summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/gui/EntityFinder.java
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2014-05-07 17:33:57 +0200
committerAndrew Branson <andrew.branson@cern.ch>2014-05-07 17:33:57 +0200
commit21230edbafdd30fcf0c43d1dc64ccbf4ca5e06a8 (patch)
treeb2908dbea534ca8d96a81ab922501769d4b70c4d /src/main/java/com/c2kernel/gui/EntityFinder.java
parent75bf1278296d33a7d9b6c01660a2f21e2d40d995 (diff)
Agent now extends Item, so they can have workflows. All traces of the
old 'Entity' superclasses should be removed, including proxies and paths. Very large change, breaks API compatibility with CRISTAL 2.x.
Diffstat (limited to 'src/main/java/com/c2kernel/gui/EntityFinder.java')
-rw-r--r--src/main/java/com/c2kernel/gui/EntityFinder.java222
1 files changed, 0 insertions, 222 deletions
diff --git a/src/main/java/com/c2kernel/gui/EntityFinder.java b/src/main/java/com/c2kernel/gui/EntityFinder.java
deleted file mode 100644
index 1423055..0000000
--- a/src/main/java/com/c2kernel/gui/EntityFinder.java
+++ /dev/null
@@ -1,222 +0,0 @@
-package com.c2kernel.gui;
-
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
-import java.io.IOException;
-import java.util.Enumeration;
-import java.util.StringTokenizer;
-
-import javax.swing.Box;
-import javax.swing.BoxLayout;
-import javax.swing.ImageIcon;
-import javax.swing.JButton;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JTextField;
-import javax.swing.JToggleButton;
-
-import com.c2kernel.lookup.DomainPath;
-import com.c2kernel.lookup.LDAPLookup;
-import com.c2kernel.lookup.Path;
-import com.c2kernel.process.Gateway;
-import com.c2kernel.utils.Language;
-import com.c2kernel.utils.Logger;
-
-public class EntityFinder extends Box implements Runnable {
- JTextField inputField;
- JButton findButton;
- JButton findNextButton;
- GridBagLayout gridbag = new GridBagLayout();
- LDAPLookup lookup = Gateway.getLDAPLookup();
- DomainKeyConsumer defaultConsumer = null;
- DomainKeyConsumer currentConsumer = null;
- Enumeration<?> matches;
- Path rootNode = MainFrame.userNode.getPath();
-
- static protected ImageIcon mFindIcon = null;
- static protected ImageIcon mNextIcon = null;
- static {
- try
- {
- mNextIcon =ImageLoader.findImage("next.png");
- mFindIcon =ImageLoader.findImage("find.png");
- }
- catch (Exception e)
- {
- Logger.error("Couldn't load images: " + e);
- }
- }
-
- public EntityFinder() {
- super(BoxLayout.X_AXIS);
- initPanel();
- }
-
- public void pushNewKey(String key) {
- inputField.setText(key);
- runSearch();
- }
-
- public void setDefaultConsumer(DomainKeyConsumer newConsumer) {
- defaultConsumer = newConsumer;
- currentConsumer = newConsumer;
- }
-
- public void setConsumer(DomainKeyConsumer newConsumer, String label) {
- currentConsumer = newConsumer;
- findButton.setText(label);
- }
-
- public void clearConsumer(DomainKeyConsumer oldConsumer) {
- if (currentConsumer == oldConsumer) {
- currentConsumer = defaultConsumer;
- findButton.setText("");
- }
- }
-
- private void initPanel() {
-
- JLabel search = new JLabel(" "+Language.translate("Search")+":");
- add(search);
- add(Box.createHorizontalStrut(7));
-
- inputField = new JTextField(20);
- add(inputField);
- add(Box.createHorizontalStrut(5));
- inputField.addActionListener( new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- pushNewKey(inputField.getText());
- }
- });
-
- findButton = new JButton(mFindIcon);//(Language.translate("Find"));
- findButton.setMargin(new Insets(2, 5, 2, 5));
- findButton.addActionListener( new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- pushNewKey(inputField.getText());
- }
- });
- add(findButton);
- add(Box.createHorizontalStrut(5));
-
- findNextButton = new JButton(mNextIcon);//(Language.translate("Next"));
- findNextButton.setMargin(new Insets(2, 5, 2, 5));
- findNextButton.addActionListener( new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- nextMatch();
- }
- });
- findNextButton.setEnabled(false);
- add(findNextButton);
- add(Box.createHorizontalStrut(15));
-
- // create plugins
- Logger.msg(6, "ItemFinder() - creating plugins");
- String requiredListeners = Gateway.getProperties().getProperty("DomainKeyListeners");
- if (requiredListeners != null) {
- StringTokenizer tok = new StringTokenizer(requiredListeners, ",");
- while (tok.hasMoreTokens()) {
- String listenerName = tok.nextToken();
- Logger.msg(6, "ItemFinder() - creating a " + listenerName);
- try {
- Class<?> listenerClass = Class.forName(listenerName);
- DomainKeyListener newListener = (DomainKeyListener)listenerClass.newInstance();
- newListener.init(); newListener.setConsumer(this);
- JToggleButton listenerButton = new JToggleButton(newListener.getIcon(), false);
- listenerButton.addItemListener(new ListenerButtonListener(newListener, listenerButton));
- listenerButton.setMargin(new Insets(0, 2, 0, 2));
- listenerButton.setToolTipText("Enable "+newListener.getDescription());
- add(listenerButton);
- add(Box.createHorizontalStrut(7));
- } catch (Exception e) {
- Logger.error("ItemFinder() - could not create a "+listenerName+": "+e);
- }
- }
- add(Box.createHorizontalGlue());
- }
- }
-
- private void runSearch() {
- Thread searcher = new Thread(this);
- searcher.start();
- }
-
- @Override
- public void run() {
- Thread.currentThread().setName("Entity Search");
- String searchTerm = inputField.getText();
- if (searchTerm.length() == 0) return; // don't allow null searches
-
- findButton.setEnabled(false); findNextButton.setEnabled(false);
- MainFrame.progress.startBouncing("Searching. Please Wait");
- findNextButton.setEnabled(false);
- String term = inputField.getText();
-// The following block does property searching when the field contains a colon, but that returns EntityPaths, which the tree can't handle
-// int colonPos = term.indexOf(':');
-// if (colonPos > 0)
-// matches = lookup.search(rootNode,term.substring(0, colonPos), term.substring(colonPos+1));
-// else
- matches = lookup.search(rootNode,term);
- if (!matches.hasMoreElements()) {
- MainFrame.progress.stopBouncing("No results");
- currentConsumer.push(searchTerm); // for subscribers who don't care if it exists
- findButton.setEnabled(true);
- return;
- }
- MainFrame.progress.stopBouncing("Selecting first match.");
- nextMatch();
-
- }
-
- void nextMatch() {
- findButton.setEnabled(false); findNextButton.setEnabled(false);
- DomainPath nextMatch = (DomainPath)matches.nextElement();
- try
- {
- currentConsumer.push(nextMatch);
- }
- catch (NullPointerException e)
- {
- //case the item searched is not found !
- }
- findButton.setEnabled(true);
- findNextButton.setToolTipText("Click to show next match");
- if (matches.hasMoreElements()) findNextButton.setEnabled(true);
- }
-
- private class ListenerButtonListener implements ItemListener {
- private final DomainKeyListener listener;
- private final JToggleButton listenerButton;
-
- public ListenerButtonListener(DomainKeyListener newListener, JToggleButton listenerButton) {
- this.listener = newListener;
- this.listenerButton = listenerButton;
- }
-
- @Override
- public void itemStateChanged(ItemEvent e) {
- if (e.getStateChange() == ItemEvent.SELECTED) {
- // Switch on
- try {
- if (!(listener.enable())) listenerButton.doClick(); // allow plugins to disable themselves
- } catch (IOException ex) {
- JOptionPane.showMessageDialog(null, ex.getMessage(), "Error initialising "+listener.getDescription(), JOptionPane.ERROR_MESSAGE);
- listenerButton.doClick();
- }
- listenerButton.setToolTipText("Disable "+listener.getDescription());
- } else {
- // Switch off
- listener.disable();
- listenerButton.setToolTipText("Enable "+listener.getDescription());
- }
- }
- }
-
-}