package jdepend.client.ui.remote.analyzer;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.rmi.RemoteException;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;
import jdepend.client.core.analyzer.AnalyzerMgr;
import jdepend.client.core.remote.analyzer.AnalyzerRemoteMgr;
import jdepend.client.core.remote.session.RemoteSessionProxy;
import jdepend.client.ui.JDependCooper;
import jdepend.client.ui.analyzer.AnalyzerPanel;
import jdepend.framework.exception.JDependException;
import jdepend.framework.util.BundleUtil;
import jdepend.util.analyzer.framework.Analyzer;
public class ClientAnalyzerPanel extends AnalyzerPanel {
private AnalyzerRemoteMgr analyzerRemoteMgr;
public ClientAnalyzerPanel(JDependCooper frame) {
super(frame);
this.analyzerRemoteMgr = new AnalyzerRemoteMgr();
}
@Override
protected JPopupMenu getPopupMenu() {
JPopupMenu popupMenu = super.getPopupMenu();
popupMenu.addSeparator();
JMenuItem uploadItem = new JMenuItem(BundleUtil.getString(BundleUtil.Command_Upload));
uploadItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
upload();
JOptionPane.showMessageDialog(frame, "上传成功", "alert", JOptionPane.ERROR_MESSAGE);
} catch (Exception e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(frame, e1.getMessage(), "alert", JOptionPane.ERROR_MESSAGE);
}
}
});
popupMenu.add(uploadItem);
JMenuItem downloadItem = new JMenuItem(BundleUtil.getString(BundleUtil.Command_Download));
downloadItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
download();
} catch (Exception e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(frame, e1.getMessage(), "alert", JOptionPane.ERROR_MESSAGE);
}
}
});
popupMenu.add(downloadItem);
JMenuItem deleteItem = new JMenuItem(BundleUtil.getString(BundleUtil.Command_Delete));
deleteItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
if (JOptionPane.showConfirmDialog(frame, "您是否确认删除?", "提示", JOptionPane.YES_NO_OPTION) == 0) {
delete();
}
} catch (Exception e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(frame, e1.getMessage(), "alert", JOptionPane.ERROR_MESSAGE);
}
}
});
popupMenu.add(deleteItem);
return popupMenu;
}
@Override
protected JPopupMenu getPopupMenu1() {
JPopupMenu popupMenu1 = super.getPopupMenu1();
JMenuItem downloadItem1 = new JMenuItem(BundleUtil.getString(BundleUtil.Command_Download));
downloadItem1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
download();
} catch (Exception e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(frame, e1.getMessage(), "alert", JOptionPane.ERROR_MESSAGE);
}
}
});
popupMenu1.add(downloadItem1);
return popupMenu1;
}
private void upload() throws RemoteException, JDependException {
if (!RemoteSessionProxy.getInstance().isValid()) {
throw new JDependException("会话状态有问题,请重新登陆");
} else {
Analyzer analyzer = this.analyzers.get(this.currentGroup).get(this.currentRow);
this.analyzerRemoteMgr.upload(analyzer);
}
}
private void download() throws RemoteException, JDependException {
if (!RemoteSessionProxy.getInstance().isValid()) {
throw new JDependException("会话状态有问题,请重新登陆");
} else {
AnalyzerDownloadDialog d = new AnalyzerDownloadDialog(frame, this, currentGroup);
d.setModal(true);
d.setVisible(true);
}
}
private void delete() throws JDependException {
String className = this.analyzers.get(this.currentGroup).get(this.currentRow).getClass().getName();
AnalyzerMgr.getInstance().delete(className);
this.analyzerRemoteMgr.delete(className);
this.refresh();
}
}