package com.vci.client.omd.lifecycle.ui;
|
|
import java.awt.BorderLayout;
|
import java.awt.Dimension;
|
import java.awt.GridBagConstraints;
|
import java.awt.GridBagLayout;
|
import java.awt.Toolkit;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.awt.event.ItemEvent;
|
import java.awt.event.ItemListener;
|
import java.awt.event.MouseAdapter;
|
import java.awt.event.MouseEvent;
|
import java.net.MalformedURLException;
|
import java.net.URL;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import javax.swing.ButtonGroup;
|
import javax.swing.Icon;
|
import javax.swing.ImageIcon;
|
import javax.swing.JButton;
|
import javax.swing.JDialog;
|
import javax.swing.JLabel;
|
import javax.swing.JOptionPane;
|
import javax.swing.JPanel;
|
import javax.swing.JRadioButton;
|
import javax.swing.JScrollPane;
|
|
import org.jgraph.graph.DefaultGraphCell;
|
import org.jgraph.graph.GraphConstants;
|
|
import com.vci.client.ui.image.BundleImage;
|
import com.vci.corba.omd.lcm.Bound;
|
|
public class ImageSelectDialog extends JDialog{
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = -2527985037546524122L;
|
private static ImageSelectDialog imageSelectDialog = null;
|
private JPanel southPanel, imagePanel;
|
private JButton btnOK, btnCancel;
|
private JScrollPane scrollPanel;
|
private JRadioButton rdImage[];
|
private String imageName = "";
|
private ButtonGroup rdGroup = new ButtonGroup();
|
|
private List<Bound> bounds = null;
|
|
private Bound bound = null;
|
|
private ImageIcon imageIcon;
|
|
private ImageSelectDialog(){
|
initUI();
|
initImageIcon();
|
addListener();
|
}
|
|
public static ImageSelectDialog getInstance(){
|
// if(imageSelectDialog == null){
|
imageSelectDialog = new ImageSelectDialog();
|
// }
|
|
return imageSelectDialog;
|
}
|
|
private void initUI(){
|
this.setTitle("图标选择框");
|
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
|
this.setSize(screenSize.width/2,screenSize.height/2);
|
this.setModal(true);
|
this.setLocationRelativeTo(null);
|
this.setLayout(new BorderLayout(5, 5));
|
|
//图标
|
scrollPanel = new JScrollPane();
|
scrollPanel.setAutoscrolls(false);
|
//确定, 取消按钮
|
southPanel = new JPanel();
|
this.add(scrollPanel, BorderLayout.CENTER);
|
this.add(southPanel, BorderLayout.SOUTH);
|
|
imagePanel = new JPanel();
|
scrollPanel.setViewportView(imagePanel);
|
btnOK = new JButton("确定");
|
btnCancel = new JButton("取消");
|
southPanel.add(btnOK);
|
southPanel.add(btnCancel);
|
}
|
|
/***
|
* 获取画板上所有bounds
|
* @return
|
*/
|
public List<Bound> getbounds(){
|
bounds = new ArrayList<Bound>();
|
Object[] o = LifeCyclePanel.getInstance().getGraph().getOo();
|
for(int i=0;i<o.length;i++){
|
if (o[i] instanceof DefaultGraphCell) {
|
bound= new Bound();
|
DefaultGraphCell ci = (DefaultGraphCell) o[i];
|
|
String icon = "";
|
if (ci != null) {
|
Icon iconObj = GraphConstants.getIcon(ci.getAttributes());
|
|
icon = iconObj != null ? iconObj.toString() : "";
|
if(icon.contains("/")){
|
icon = icon.substring(icon.lastIndexOf("/")+1);
|
}
|
}
|
bound.name = ci.toString();
|
bound.cellicon = icon;
|
bounds.add(bound);
|
}
|
// if (!(o[i] instanceof DefaultPort)) {
|
// if (!(o[i] instanceof DefaultEdge)) {
|
// bound= new Bound();
|
// DefaultGraphCell ci = (DefaultGraphCell) o[i];
|
//
|
// String icon = "";
|
// if (ci != null) {
|
// Icon iconObj = GraphConstants.getIcon(ci.getAttributes());
|
//
|
// icon = iconObj != null ? iconObj.toString() : "";
|
// if(icon.contains("/")){
|
// icon = icon.substring(icon.lastIndexOf("/")+1);
|
// }
|
// }
|
// bound.name = ci.toString();
|
// bound.cellicon = icon;
|
// bounds.add(bound);
|
// }
|
// }
|
}
|
return bounds;
|
}
|
|
|
private void initImageIcon(){
|
bounds = null;
|
try {
|
bounds = getbounds();
|
rdImage = new JRadioButton[bounds.size()];
|
imagePanel.setLayout(new GridBagLayout());
|
GridBagConstraints g = new GridBagConstraints();
|
|
for(int i=0;i<bounds.size();i++){
|
bound = bounds.get(i);
|
String imagePath = bound.cellicon;
|
String iName = bound.name;
|
if(!imagePath.startsWith("http://")){
|
// imageIcon = new ImageIcon(imagePath);
|
imagePath = imagePath.substring(imagePath.lastIndexOf("/")+1);
|
imageIcon = new BundleImage().createImageIcon(imagePath);
|
}
|
else {
|
URL url = null;
|
try {
|
url = new URL(imagePath);
|
} catch (MalformedURLException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
|
if(url == null){
|
continue;
|
}
|
|
imageIcon = new ImageIcon(url);
|
}
|
|
rdImage[i] = new JRadioButton();
|
rdImage[i].setName(imagePath);
|
rdGroup.add(rdImage[i]);
|
JLabel imageNameLabel = new JLabel(iName);
|
JLabel iLabel = new JLabel(imageIcon);
|
int rem = i%5;
|
int mer = i/5;
|
g.gridx = 2 * rem;
|
g.gridy = mer;
|
g.anchor = GridBagConstraints.EAST;
|
g.gridwidth = 1;
|
imagePanel.add(rdImage[i], g);
|
|
g.gridx = 2 * rem + 1;
|
g.gridy = mer;
|
if(rem == 4){
|
g.gridwidth = 0;
|
}
|
imagePanel.add(iLabel, g);
|
|
g.gridx = 2 * rem;
|
g.gridy = mer+1;
|
if(rem == 4){
|
g.gridwidth = 0;
|
}
|
|
imagePanel.add(imageNameLabel, g);
|
rdImage[i].addMouseListener(new MouseAdapter() {
|
public void mouseClicked(MouseEvent e){
|
rdImageMouseClicked(e);
|
}
|
});
|
|
//--------------------
|
final String name = imagePath;
|
rdImage[i].addItemListener(new ItemListener() {
|
|
@Override
|
public void itemStateChanged(ItemEvent e) {
|
// TODO Auto-generated method stub
|
imageName = name;
|
}
|
});
|
//--------------------
|
|
}
|
|
|
// iPaths = StatePoolStart.getService().getImagePaths();
|
// StatePool[] statePools = StatePoolStart.getService().getStatePools();
|
// for(int i=0;i<statePools.length;i++){
|
// String imagePath = statePools[i].imagePath;
|
// URL url = null;
|
// try {
|
//// String pathString = LogonApplication.urlBasePath;
|
// url = new URL(imagePath);
|
// } catch (MalformedURLException e) {
|
// e.printStackTrace();
|
// }
|
// if(url == null){
|
// continue;
|
// }
|
//
|
//
|
//
|
//
|
// ImageIcon imageIcon = new ImageIcon(url);
|
// rdImage[i] = new JRadioButton();
|
// rdImage[i].setName(iPaths[i]);
|
// rdGroup.add(rdImage[i]);
|
// JLabel iLabel = new JLabel(imageIcon);
|
// iLabel.setPreferredSize(new Dimension(50, 50));
|
// int rem = i%5;
|
// int mer = i/5;
|
// g.gridx = 2 * rem;
|
// g.gridy = mer;
|
// g.anchor = GridBagConstraints.EAST;
|
// g.gridwidth = 1;
|
// imagePanel.add(rdImage[i], g);
|
// g.gridx = 2 * rem + 1;
|
// if(rem == 4){
|
// g.gridwidth = 0;
|
// }
|
// imagePanel.add(iLabel, g);
|
//// rdImage[i].addMouseListener(new MouseAdapter() {
|
//// public void mouseClicked(MouseEvent e){
|
//// rdImageMouseClicked(e);
|
//// }
|
//// });
|
//
|
// //--------------------
|
// final String name = iPaths[i];
|
// rdImage[i].addItemListener(new ItemListener() {
|
//
|
// @Override
|
// public void itemStateChanged(ItemEvent e) {
|
// // TODO Auto-generated method stub
|
// imageName = name;
|
// }
|
// });
|
// //--------------------
|
//
|
//
|
// }
|
|
} catch (Exception e1) {
|
// TODO Auto-generated catch block
|
e1.printStackTrace();
|
}
|
|
|
|
// rdImage = new JRadioButton[iPaths.length];
|
// imagePanel.setLayout(new GridBagLayout());
|
// GridBagConstraints g = new GridBagConstraints();
|
// for(int i = 0; i < iPaths.length; i++){
|
// URL url = null;
|
// try {
|
// String pathString = LogonApplication.urlBasePath;
|
// url = new URL(pathString + iPaths[i]);
|
// } catch (MalformedURLException e) {
|
// e.printStackTrace();
|
// }
|
// if(url == null){
|
// continue;
|
// }
|
// ImageIcon imageIcon = new ImageIcon(url);
|
// rdImage[i] = new JRadioButton();
|
// rdImage[i].setName(iPaths[i]);
|
// rdGroup.add(rdImage[i]);
|
// JLabel iLabel = new JLabel(imageIcon);
|
// iLabel.setPreferredSize(new Dimension(50, 50));
|
// int rem = i%5;
|
// int mer = i/5;
|
// g.gridx = 2 * rem;
|
// g.gridy = mer;
|
// g.anchor = GridBagConstraints.EAST;
|
// g.gridwidth = 1;
|
// imagePanel.add(rdImage[i], g);
|
// g.gridx = 2 * rem + 1;
|
// if(rem == 4){
|
// g.gridwidth = 0;
|
// }
|
// imagePanel.add(iLabel, g);
|
//// rdImage[i].addMouseListener(new MouseAdapter() {
|
//// public void mouseClicked(MouseEvent e){
|
//// rdImageMouseClicked(e);
|
//// }
|
//// });
|
//
|
// //--------------------
|
// final String name = iPaths[i];
|
// rdImage[i].addItemListener(new ItemListener() {
|
//
|
// @Override
|
// public void itemStateChanged(ItemEvent e) {
|
// // TODO Auto-generated method stub
|
// imageName = name;
|
// }
|
// });
|
// //--------------------
|
// }
|
}
|
|
private void rdImageMouseClicked(MouseEvent e){
|
JRadioButton selectRd = (JRadioButton) e.getComponent();
|
if(selectRd.getName().equals(imageName)){
|
return;
|
}
|
imageName = selectRd.getName();
|
}
|
|
private void addListener(){
|
btnOK.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
if(imageName.equals("")){
|
JOptionPane.showMessageDialog(null, "请选择业务类型图标", "选择图标", JOptionPane.WARNING_MESSAGE);
|
return;
|
}
|
|
dispose();
|
}
|
});
|
|
btnCancel.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
imageName = "";
|
dispose();
|
}
|
});
|
}
|
|
|
public String getImageName() {
|
return imageName;
|
}
|
|
public String getImageURL(){
|
return getTomcatPath() + imageName;
|
}
|
|
public String getTomcatPath(){
|
return "";
|
}
|
}
|