Package org.apache.oodt.cas.filemgr.browser.controller

Source Code of org.apache.oodt.cas.filemgr.browser.controller.WindowListener

/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements.  See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.apache.oodt.cas.filemgr.browser.controller;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JOptionPane;

import org.apache.oodt.cas.filemgr.browser.model.CasDB;
import org.apache.oodt.cas.filemgr.browser.view.MainWindow;
import org.apache.oodt.cas.filemgr.browser.view.prompts.ConnectPrompt;
import org.apache.oodt.cas.filemgr.browser.view.prompts.QueryBuilderPrompt;
import org.apache.oodt.cas.filemgr.browser.view.prompts.SortPrompt;

public class WindowListener implements ActionListener {

  private MainWindow window;
  private ConnectPrompt prompt;
  private SortPrompt sort;
  private QueryBuilderPrompt query;

  private CasDB db;

  public WindowListener(MainWindow m) {
    window = m;
    db = new CasDB();
  }

  public void actionPerformed(ActionEvent arg0) {
    if (arg0.getActionCommand().equals("About")) {
      String aboutInfo = "OODT Catalog and Archive Server File Manger Browser.\n"
          + "Copyright (c) 2010, Apache Software Foundation.";
      JOptionPane.showMessageDialog(window, aboutInfo);
    } else if (arg0.getActionCommand().equals("Query Language")) {
      String aboutQueryLanguage = "The CAS File Manager Browser uses the Lucene Query Language.\n"
          + "More Information can be found at:\n"
          + "http://lucene.apache.org/java/docs/queryparsersyntax.html";
      JOptionPane.showMessageDialog(window, aboutQueryLanguage);
    } else if (arg0.getActionCommand().equals("Exit")) {
      String exitWarning = "Are you sure you want to exit the CAS File Manager Browser?\n"
          + "All unexported queries will be lost.";
      int returnVal = JOptionPane.showConfirmDialog(window, exitWarning,
          "Exit", JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE);
      if (returnVal == JOptionPane.OK_OPTION) {
        System.exit(0);
      }
    } else if (arg0.getActionCommand().equals("Connect...")) {
      // this is from the main menu
      window.bar.changeConnectStatus();
      prompt = new ConnectPrompt(this);
      prompt.pack();
      prompt.setVisible(true);
    } else if (arg0.getActionCommand().equals("Disconnect")) {
      String disconnectWarning = "Are you sure you want to disconnect from this File Manager?\n"
          + "All unexported queries will be lost.";
      int returnVal = JOptionPane.showConfirmDialog(window, disconnectWarning,
          "Disconnect", JOptionPane.OK_CANCEL_OPTION,
          JOptionPane.WARNING_MESSAGE);
      if (returnVal == JOptionPane.OK_OPTION) {
        window.bar.changeConnectStatus();
        db.disconnect();
        window.mPane.tPane.setBlank();
        window.qPane.updateTypes(new String[] { "" });
        window.bPane.changeStatus("Disconnected");
      }
    } else if (arg0.getActionCommand().equals("Cancel")) {
      if (((JButton) arg0.getSource()).getName().equals("ConnectCancel")) {
        prompt.dispose();
        window.bar.changeConnectStatus();
      } else if (((JButton) arg0.getSource()).getName().equals("SortCancel")) {
        sort.dispose();
      }
    } else if (arg0.getActionCommand().equals("Connect")) {
      // this is from the connect prompt
      boolean connected = db.connect(prompt.getCASUrl());
      if (connected) {
        window.qPane.updateTypes(db.getAvailableTypes());
        window.bPane.changeStatus("Connected to " + prompt.getCASUrl());
      } else {
        window.bar.changeConnectStatus();
        String errorConnectingString = "Error Connecting to CAS File Manager at this following address:"
            + prompt.getCASUrl();
        JOptionPane.showMessageDialog(window, errorConnectingString, "Error",
            JOptionPane.ERROR_MESSAGE);
      }
      prompt.dispose();
    } else if (arg0.getActionCommand().equals("Sort")) {
      sort = new SortPrompt(window, this);
      sort.pack();
      sort.setVisible(true);
    } else if (arg0.getActionCommand().equals("Query Builder")) {
      if (db.isConnected()) {
        query = new QueryBuilderPrompt(db, this);
        query.pack();
        query.setVisible(true);
      } else {
        String errorQueryString = "You must connect to a CAS File Manager before using the Query Builder.";
        JOptionPane.showMessageDialog(window, errorQueryString, "Disconnected",
            JOptionPane.WARNING_MESSAGE);
      }
    } else if (arg0.getActionCommand().equals("OK")) {
      window.mPane.tPane.sortRows(sort.getSortIndex(), sort.getSortType());
      sort.dispose();
    } else if (arg0.getActionCommand().equals("Search")) {
      if (((JButton) arg0.getSource()).getName().equals("AdvancedQuery")) {
        if (db.isConnected()) {
          window.bPane.changeStatus("Querying the CAS...");
          boolean result = db.issueQuery(query.getQuery(), query
              .getProductType());
          if (result) {
            window.mPane.tPane.newTable(db.results.getData());
            window.bPane.changeStatus("Query: " + query.getQueryString()
                + " returned " + db.results.getNumRecords() + " records.");
          } else {
            window.mPane.tPane.setBlank();
            window.bPane.changeStatus("Query failed.");
            window.qPane.clearQuery();
          }
        }
        query.dispose();
      } else {
        if (db.isConnected()) {
          window.bPane.changeStatus("Querying the CAS...");
          String query = window.qPane.getQuery();
          boolean result = db.createQuery(query, window.qPane.getType());
          if (result) {
            window.mPane.tPane.newTable(db.results.getData());
            window.bPane.changeStatus("Query: " + query + " returned "
                + db.results.getNumRecords() + " records.");
          } else {
            window.mPane.tPane.setBlank();
            window.bPane.changeStatus("Query failed.");
            window.qPane.clearQuery();
          }
        }
      }
    } else if (arg0.getActionCommand().equals("Clear Query")) {
      String clearWarning = "Are you sure you want to clear the current Query?\n"
          + "All unexported queries will be lost.";
      int returnVal = JOptionPane.showConfirmDialog(window, clearWarning,
          "Clear", JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE);
      if (returnVal == JOptionPane.OK_OPTION) {
        window.mPane.tPane.setBlank();
        window.bPane.changeStatus("Query cleared.");
      }
    }
  }

}
TOP

Related Classes of org.apache.oodt.cas.filemgr.browser.controller.WindowListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.