package com.vci.client.uif.engine.client.tree;
|
|
import java.awt.BorderLayout;
|
import java.awt.Dimension;
|
import java.awt.Frame;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
|
import javax.swing.BorderFactory;
|
import javax.swing.JButton;
|
import javax.swing.JDialog;
|
import javax.swing.JLabel;
|
import javax.swing.JPanel;
|
import javax.swing.border.Border;
|
|
import com.vci.client.ui.image.BundleImage;
|
import com.vci.client.uif.engine.client.AbstractRegionPanel;
|
|
public class SearchTipDialog extends JDialog implements Runnable{
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 3681983084498723386L;
|
private JButton cancelButton = new JButton("取消");
|
private AbstractRegionPanel treePanel = null;
|
private Thread otherThread = null;
|
|
public SearchTipDialog(Frame frame, Thread t, AbstractRegionPanel treePanel) {
|
super(frame);
|
this.treePanel = treePanel;
|
otherThread = t;
|
init();
|
startTread();
|
}
|
|
private void init() {
|
int px = (int) this.getParent().getLocationOnScreen().getX();
|
int py = (int) this.getParent().getLocationOnScreen().getX();
|
|
this.setSize(new Dimension(240, 130));
|
this.setTitle("查找");
|
this.setLocation(px + 20, py + 50);
|
this.setModal(true);
|
this.setResizable(false);
|
|
JLabel label = new JLabel("正在查找导航树....");
|
label.setIcon(new BundleImage().createImageIcon("search.gif"));
|
|
cancelButton.setPreferredSize(new Dimension(75, 25));
|
cancelButton.addActionListener(new ActionListener(){
|
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
cancelButtonActionPerformed(e);
|
}});
|
|
JPanel buttonPanel = new JPanel();
|
buttonPanel.setLayout(new BorderLayout());
|
buttonPanel.add(cancelButton, BorderLayout.EAST);
|
|
JPanel newPanel = new JPanel();
|
newPanel.setLayout(new BorderLayout());
|
Border border = BorderFactory.createEmptyBorder(10,10,10,10);
|
newPanel.setBorder(border);
|
newPanel.add(label, BorderLayout.CENTER);
|
newPanel.add(buttonPanel, BorderLayout.SOUTH);
|
|
this.setLayout(new BorderLayout());
|
this.add(newPanel);
|
}
|
|
private void cancelButtonActionPerformed(ActionEvent e) {
|
this.dispose();
|
treePanel.setCancel(true);
|
}
|
|
@Override
|
public void run() {
|
while (!this.treePanel.isFinish() && !treePanel.isCancel()) {
|
}
|
this.dispose();
|
System.out.println("search dialog finish!");
|
}
|
|
public void startTread() {
|
Thread t = new Thread(this);
|
t.start();
|
|
Thread taskThread = new Thread(){
|
public void run() {
|
try {
|
otherThread.start();
|
otherThread.join();
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
};
|
};
|
taskThread.start();
|
}
|
}
|