All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jive3.DeviceEventPanel Maven / Gradle / Ivy

The newest version!
package jive3;

import fr.esrf.tangoatk.widget.util.ATKConstant;

import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.MouseListener;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.ActionEvent;
import java.util.Vector;

import jive.JiveUtils;

public class DeviceEventPanel extends JPanel implements MouseListener,ActionListener {

  private JTabbedPane tabPane;
  private JTable      changeTable;
  private DefaultTableModel changeModel;
  private JTable      archTable;
  private DefaultTableModel archModel;
  private JTable      perTable;
  private DefaultTableModel perModel;
  private JButton     refreshButton;
  private JButton     applyButton;
  private JTable      selectedTable;
  private int[]       selectedRows;

  private JPopupMenu  tableMenu;
  private JMenuItem   resetMenuItem;
  private JMenuItem   resetLMenuItem;
  private JMenuItem   resetULMenuItem;
  private JMenuItem   resetCULMenuItem;
  private JMenuItem   setAbsMenuItem;
  private JMenuItem   setRelMenuItem;
  private JMenuItem   setPeriodMenuItem;


  private TaskEventNode[]   source = null;

  DeviceEventPanel()  {

    setLayout(new BorderLayout());

    // -- Change event table -------------------------------
    changeModel = new DefaultTableModel() {

      public Class getColumnClass(int columnIndex) {
          return String.class;
      }
      public boolean isCellEditable(int row, int column) {
          return (column!=0) && (!JiveUtils.readOnly);
      }

      public void setValueAt(Object aValue, int row, int column) {
        if(!aValue.equals(getValueAt(row,column))) {
          super.setValueAt(aValue,row,column);
          int nb = source.length;
          int k = 0;

          // Confirmation dialog
          if (source.length > 1) {

            String name = (String)changeModel.getValueAt(row,0);
            Vector propChange = new Vector();
            switch(column) {
              case 1:
                propChange.add("abs_change");
                break;
              case 2:
                propChange.add("rel_change");
                break;
            }
            propChange.add((String)aValue);

            if (!MultiChangeConfirmDlg.confirmChange(propChange, source.length," for attribute " + name)) {
              refreshValue();
              return;
            }

          }

          switch(column) {
            case 1:
              if(nb>1) ProgressFrame.displayProgress("Updating event config");
              for(int i=0;i1) ProgressFrame.displayProgress("Updating event config");
              for(int i=0;i 1) {

            String name = (String)archModel.getValueAt(row,0);
            Vector propChange = new Vector();
            switch(column) {
              case 1:
                propChange.add("arch_abs_change");
                break;
              case 2:
                propChange.add("arch_rel_change");
                break;
              case 3:
                propChange.add("arch_period");
                break;
            }
            propChange.add((String)aValue);

            if (!MultiChangeConfirmDlg.confirmChange(propChange, source.length," for attribute " + name)) {
              refreshValue();
              return;
            }

          }

          switch(column) {
            case 1:
              if(nb>1) ProgressFrame.displayProgress("Updating event config");
              for(int i=0;i1) ProgressFrame.displayProgress("Updating event config");
              for(int i=0;i1) ProgressFrame.displayProgress("Updating event config");
              for(int i=0;i 1) {

            String name = (String)perModel.getValueAt(row,0);
            Vector propChange = new Vector();
            switch(column) {
              case 1:
                propChange.add("period");
                break;
            }
            propChange.add((String)aValue);

            if (!MultiChangeConfirmDlg.confirmChange(propChange, source.length," for attribute " + name)) {
              refreshValue();
              return;
            }

          }

          switch(column) {
            case 1:
              if(nb>1) ProgressFrame.displayProgress("Updating event config");
              for(int i=0;i1 ) {
        String message = "You are going to reset event configuration for " + source.length + " device(s) and " + selectedRows.length + " attribute(s).\nDo you want to proceed ?";
        int result = JOptionPane.showConfirmDialog(this,message,"Confirmation",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE);
        if( result==JOptionPane.NO_OPTION )
          return;
      }

      if(nb>1) ProgressFrame.displayProgress("Reseting event config");

      if(selectedTable == changeTable) {

        for(int j=0;j1 ) {
        String message = "You are going to reset event configuration to library value for " + source.length + " device(s) and " + selectedRows.length + " attribute(s).\nDo you want to proceed ?";
        int result = JOptionPane.showConfirmDialog(this,message,"Confirmation",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE);
        if( result==JOptionPane.NO_OPTION )
          return;
      }

      if(nb>1) ProgressFrame.displayProgress("Reseting event config");

      if(selectedTable == changeTable) {

        for(int j=0;j1 ) {
        String message = "You are going to reset event configuration to code/library value for " + source.length + " device(s) and " + selectedRows.length + " attribute(s).\nDo you want to proceed ?";
        int result = JOptionPane.showConfirmDialog(this,message,"Confirmation",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE);
        if( result==JOptionPane.NO_OPTION )
          return;
      }

      if(nb>1) ProgressFrame.displayProgress("Reseting event config");

      if(selectedTable == changeTable) {

        for(int j=0;j1 ) {
        String message = "You are going to reset event configuration to class/code/library value for " + source.length + " device(s) and " + selectedRows.length + " attribute(s).\nDo you want to proceed ?";
        int result = JOptionPane.showConfirmDialog(this,message,"Confirmation",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE);
        if( result==JOptionPane.NO_OPTION )
          return;
      }

      if(nb>1) ProgressFrame.displayProgress("Reseting event config");

      if(selectedTable == changeTable) {

        for(int j=0;j 1) {
        Vector propChange = new Vector();
        if(selectedTable == changeTable) {
          propChange.add("abs_change");
        } else {
          propChange.add("arch_abs_change");
        }
        propChange.add(abs);
        if (!MultiChangeConfirmDlg.confirmChange(propChange, source.length," and " + selectedRows.length + " attribute(s)")) {
          return;
        }
      }

      if(nb>1) ProgressFrame.displayProgress("Updating abs change");

      if(selectedTable == changeTable) {

        for(int j=0;j 1) {
        Vector propChange = new Vector();
        if(selectedTable == changeTable) {
          propChange.add("rel_change");
        } else {
          propChange.add("arch_rel_change");
        }
        propChange.add(rel);
        if (!MultiChangeConfirmDlg.confirmChange(propChange, source.length," and " + selectedRows.length + " attribute(s)")) {
          return;
        }
      }

      if(nb>1) ProgressFrame.displayProgress("Updating rel change");

      if(selectedTable == changeTable) {

        for(int j=0;j 1) {
        Vector propChange = new Vector();
        if(selectedTable == archTable) {
          propChange.add("arch_period");
        } else {
          propChange.add("period");
        }
        propChange.add(per);
        if (!MultiChangeConfirmDlg.confirmChange(propChange, source.length," and " + selectedRows.length + " attribute(s)")) {
          return;
        }
      }

      if(nb>1) ProgressFrame.displayProgress("Updating period");

      if(selectedTable == archTable) {

        for(int j=0;j=h && y<=h+selectedTable.getRowHeight(i));
      if(!found) {
        h+=selectedTable.getRowHeight(i);
        i++;
      }
    }

    if(found) {
      return i;
    } else {
      return -1;
    }

  }

  // ---------------------------------------------------------------

  private void refreshValue() {

    if (source != null) {

      //for(int i=0;i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy