⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wfpanellist.java

📁 一个用java写的地震分析软件(无源码)
💻 JAVA
字号:
package org.trinet.jiggle;

import java.text.*;
import java.awt.*;
import java.util.*;
import javax.swing.event.*;
import java.awt.event.*;
import javax.swing.*;

import org.trinet.jasi.*;

/** A list of WFPanels. Amoung other functions this class can be a listener to
* the SelectedWFViewModel and set
* a newly selected WFView's WFPanel as selected. This way we don't have to
* put a SelectedWFViewModel ChangeListener on every WFPanel (there can be 1200+).*/
public class WFPanelList extends ArrayList {

     MasterView mv;

     WFPanel selectedWFPanel = null;

     SelectedWFViewListener selectedWFViewListener =
                            new SelectedWFViewListener();

     public WFPanelList() {
     }

     public WFPanelList(MasterView mv) {
       setMasterView(mv);
     }
     
     public void setMasterView(MasterView mview) {
       removeListeners(mv);               // nuke old listeners
       mv = mview;
       addListeners(mv);
     }

    /** Add model listeners to this MasterView's models. */
    protected void addListeners (MasterView mv) {

     if (mv != null && mv.masterWFViewModel != null) {
         mv.masterWFViewModel.addChangeListener(selectedWFViewListener);
     }
    }
    /** Remove model listeners to this MasterView's models. */
    protected void removeListeners (MasterView mv) {

     if (mv != null && mv.masterWFViewModel != null) {
         mv.masterWFViewModel.removeChangeListener(selectedWFViewListener);
     }
    }

    /** Set value of 'showPhaseCues' for whole list. Repaints. */
    public void setShowPhaseCues(boolean tf) {
      WFPanel[] mwfp = getArray();
      for ( int i=0; i < mwfp.length; i++)  {
        mwfp[i].setShowPhaseCues(tf);;
      }
    }

/**
 * Return the WFPanel that contains this WFView. Returns null if not found.
 */
public WFPanel get (WFView wfv) {

//  synchronized (this) {
    WFPanel[] mwfp = getArray();
    for ( int i=0; i < mwfp.length; i++)  {
	if (mwfp[i].wfv == wfv) return mwfp[i];
    }

    return null;
//  }
}
/**
 * Return the WFPanel that contains this Channel. Returns null if not found.
 */
public WFPanel get (Channel chan) {
//  synchronized (this) {
    WFPanel[] mwfp = getArray();
    for ( int i=0; i < mwfp.length; i++)  {
	if (mwfp[i].wfv.getChannelObj().equals(chan)) return mwfp[i];
    }

    return null;
//  }
}

/** Return list as array of WFPanels. */
public WFPanel[] getArray() {
  return (WFPanel[]) this.toArray(new WFPanel[0]);
}

/** INNER CLASS: Handle changes to the selected WFView. */
      class SelectedWFViewListener implements ChangeListener {
     	public void stateChanged (ChangeEvent changeEvent) {

          // unselect the old one
            if (selectedWFPanel != null) selectedWFPanel.setSelected(false);

            WFView newWFV = ((SelectedWFViewModel) changeEvent.getSource()).get();

            // select the new one
            selectedWFPanel = get(newWFV);
            if (selectedWFPanel != null) selectedWFPanel.setSelected(true);

          }
      }  // end of WFViewListener
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -