package com.vci.client.logon.client;
|
|
import java.awt.BorderLayout;
|
import java.awt.Color;
|
import java.awt.Container;
|
import java.awt.Dimension;
|
import java.awt.Frame;
|
import java.awt.Graphics;
|
import java.awt.Image;
|
import java.awt.Point;
|
import java.awt.event.MouseAdapter;
|
import java.awt.event.MouseEvent;
|
import java.net.URL;
|
import java.net.UnknownHostException;
|
import java.util.HashMap;
|
import java.util.LinkedHashMap;
|
import java.util.Map;
|
|
import javax.swing.ImageIcon;
|
import javax.swing.JApplet;
|
import javax.swing.JTabbedPane;
|
import javax.swing.LayoutFocusTraversalPolicy;
|
import javax.swing.UIManager;
|
|
import com.vci.client.ClientSession;
|
import com.vci.client.LogonApplication;
|
import com.vci.client.common.ConfigUtils;
|
import com.vci.client.common.objects.UserEntityObject;
|
import com.vci.client.common.objects.UserObject;
|
import com.vci.client.framework.delegate.RightManagementClientDelegate;
|
import com.vci.client.framework.rightConfig.modelConfig.ModuleConfigMainPanel;
|
import com.vci.client.framework.rightConfig.object.FunctionObject;
|
import com.vci.client.framework.util.RightControlUtil;
|
import com.vci.client.ui.image.BundleImage;
|
import com.vci.client.ui.swing.VCISwingUtil;
|
import com.vci.client.ui.swing.components.VCIJLabel;
|
import com.vci.client.ui.swing.components.VCIJMenuBar;
|
import com.vci.client.ui.swing.components.VCIJPanel;
|
import com.vci.client.ui.swing.components.VCIJTabbedPane;
|
|
|
public class VciApplet extends JApplet {
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 3126730670301568638L;
|
private VCIJTabbedPane tabbedPane = null;
|
private String userName = "lilb";
|
private VCIJTabbedPane secondTabbedPane = null;
|
private Map<Integer, FunctionObject> funcMap = new LinkedHashMap<Integer, FunctionObject>();
|
private HashMap<Integer, VCIModuleMainPanel> moduleListMap = new LinkedHashMap<Integer, VCIModuleMainPanel>();
|
private HashMap<Integer, VCIModuleMainPanel> secondModuleListMap = new LinkedHashMap<Integer, VCIModuleMainPanel>();
|
private HashMap<Integer, VCIModuleMainPanel> alreadLoadedPanles = new LinkedHashMap<Integer, VCIModuleMainPanel>();
|
private HashMap<Integer, VCIModuleMainPanel> secondeAlreadLoadedPanles = new LinkedHashMap<Integer, VCIModuleMainPanel>();
|
private TopBannerPanel topBannerPanel = new TopBannerPanel();
|
private boolean isLoadFlagData = true;//是否显示需要被标示的数据
|
// private String appletMessage = "a=任务箱 & b=申请任务 & c=代办任务 & d =xxxxx ";
|
private String[] appletMessage = {"任务箱","申请任务","待办任务","440064"};
|
|
public void init() {
|
try {
|
// NimbusLookAndFeel
|
ClientSession.reInit();
|
VCISwingUtil.setLookAndFeel();
|
|
userName = this.getParameter("userName");
|
// appletMessage=this.getParameter("");
|
System.out.println(userName);
|
UserObject userObject = new RightManagementClientDelegate().getUserObjToLock(userName);
|
|
String ip = this.getLocalIP();
|
String userName = userObject.getUserName();
|
UserEntityObject entityObj = new UserEntityObject(userName, ip);
|
|
LogonApplication.userEntityObject = entityObj;
|
System.out.println(LogonApplication.getUserEntityObject().getUserName());
|
System.out.println(LogonApplication.getUserEntityObject().getIp());
|
LogonApplication.userObject = userObject;
|
LogonApplication.frame = getFrame();
|
initTabbedPane();
|
|
VCIJPanel palCont = new VCIJPanel(new BorderLayout());
|
setLayout(new BorderLayout());
|
// palCont.add(topBannerPanel, BorderLayout.NORTH);
|
palCont.add(tabbedPane,BorderLayout.CENTER);
|
this.setContentPane(palCont);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
public void start() {
|
ClientSession.reInit();
|
}
|
|
private String getLocalIP() {
|
String ip = "127.0.0.1";
|
try {
|
ip = java.net.InetAddress.getLocalHost().getHostAddress();
|
} catch (UnknownHostException e) {
|
e.printStackTrace();
|
}
|
return ip;
|
}
|
|
private void initTabbedPane() throws Exception {
|
tabbedPane = new VCIJTabbedPane();
|
tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
|
int index = 0;
|
int loadTopTab = 0;
|
|
// 系统功能模块配置
|
if(RightControlUtil.isDeveloper(userName)){
|
ModuleConfigMainPanel modulePanel = new ModuleConfigMainPanel();
|
index ++;
|
tabbedPane.addTab("系统功能模块配置", VCISwingUtil.createImageIcon("product.gif"), modulePanel, "系统功能模块配置");
|
}
|
|
/**获取当前用户看到的第一级节点模块**/
|
FunctionObject[] funcObjs = RightControlUtil.getFunctionsByRight("business", userName);
|
for(int i = 0;i<funcObjs.length;i++){
|
VCIModuleMainPanel mailPanel = new VCIModuleMainPanel(funcObjs[i]);
|
moduleListMap.put(index, mailPanel);
|
//记录aplate 参数任务箱的索引位置
|
boolean flag =true;
|
if(flag && funcObjs[i].getName().equals(appletMessage[0])){
|
loadTopTab = index;
|
flag = false;
|
}
|
tabbedPane.addTab(funcObjs[i].getName(), this.getImageIcon(funcObjs[i].getImage()), mailPanel, funcObjs[i].getName());
|
funcMap.put(index, funcObjs[i]);//当前模块信息对象
|
index++;
|
}
|
|
secondTabbedPane = new VCIJTabbedPane();
|
secondTabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
|
|
loadTab(loadTopTab);
|
|
if(ConfigUtils.getBooleanConfigValue("top.logon.image.show")){
|
this.getContentPane().add(new TopBannerPanel(), BorderLayout.NORTH);
|
}
|
this.getContentPane().add(tabbedPane,BorderLayout.CENTER);
|
tabbedPane.addMouseListener(new MouseAdapter() {
|
public void mouseClicked(MouseEvent arg0) {
|
/**点击选项卡空白处时,仍然触发选项卡事件的处理 Begin**/
|
Point p = arg0.getPoint();
|
int r = tabbedPane.indexAtLocation(p.x, p.y);
|
if(r < 0) {
|
return;
|
}
|
/******End*****************************/
|
int n = tabbedPane.getSelectedIndex();
|
loadTab(n);
|
}
|
});
|
secondTabbedPane.addMouseListener(new MouseAdapter() {
|
public void mouseClicked(MouseEvent arg0) {
|
/**点击选项卡空白处时,仍然触发选项卡事件的处理 Begin**/
|
Point p = arg0.getPoint();
|
int r = secondTabbedPane.indexAtLocation(p.x, p.y);
|
if(r < 0) {
|
return;
|
}
|
/******End*****************************/
|
int n = secondTabbedPane.getSelectedIndex();
|
loadSecondTab(n);
|
}
|
});
|
}
|
/**
|
* add new tab component into main tabbedPane
|
*
|
* @param name
|
* @param imageIcon
|
* @param panel
|
* @param description
|
*/
|
public void addTabbedPane(String name, ImageIcon imageIcon, VCIJPanel panel, String description) {
|
tabbedPane.addTab(name, imageIcon, panel, description);
|
}
|
|
/****顶级table页加载事件***/
|
private void loadTab(int n) {
|
if (this.moduleListMap.containsKey(n)) {
|
VCIModuleMainPanel modulePanel = this.moduleListMap.get(n);
|
if (modulePanel != null) {
|
int loadSecondPanelIndex = 0;
|
|
//在切换了大模块时,重新设置记录的模块名称
|
LogonApplication.getUserEntityObject().setModules(modulePanel.getSelectModuleName());
|
// if(!alreadLoadedPanles.containsKey(n)){
|
FunctionObject selectFuncObj = this.funcMap.get(n);
|
secondTabbedPane.removeAll();
|
secondModuleListMap.clear();
|
/***获取选择分类的二级table页***/
|
FunctionObject[] funcObjs = RightControlUtil.getFunctionsByRight(selectFuncObj.getId(), userName);
|
int index = 0;
|
boolean flag =true;
|
for(int i = 0;i<funcObjs.length;i++){
|
//处理第二级table页需要被选中的数据位置和functionObject对象数据状态
|
if(isLoadFlagData && flag
|
&&funcObjs[i].getName().equals(appletMessage[1]) ){
|
loadSecondPanelIndex = index;
|
funcObjs[i].setShowTodoData(true);
|
LinkedHashMap<String, String[]> dataMap = new LinkedHashMap<String, String[]>();
|
dataMap.put("1",new String[]{appletMessage[2]});
|
dataMap.put("2",new String[]{appletMessage[3]});
|
funcObjs[i].setMap(dataMap);
|
flag =false;
|
}
|
VCIModuleMainPanel secondMainPanel = new VCIModuleMainPanel(funcObjs[i]);
|
secondModuleListMap.put(index++, secondMainPanel);
|
secondTabbedPane.addTab(funcObjs[i].getName(), this.getImageIcon(funcObjs[i].getImage()), secondMainPanel, funcObjs[i].getName());
|
}
|
modulePanel.removeAll();
|
modulePanel.setLayout(new BorderLayout());
|
modulePanel.add(secondTabbedPane,BorderLayout.CENTER);
|
|
tabbedPane.setComponentAt(n, modulePanel);
|
tabbedPane.setSelectedIndex(n);
|
alreadLoadedPanles.put(n, modulePanel);
|
|
/***二级table页加载事件***/
|
loadSecondTab(loadSecondPanelIndex);
|
|
// secondTabbedPane.addMouseListener(new MouseAdapter() {
|
// public void mouseClicked(MouseEvent arg0) {
|
// int n = secondTabbedPane.getSelectedIndex();
|
// loadSecondTab(n);
|
// }
|
// });
|
// }
|
} else {
|
this.setJMenuBar(new VCIJMenuBar());
|
VCIJPanel pal = new VCIJPanel();
|
VCIJLabel lbl = new VCIJLabel("加载模块面板出错!");
|
lbl.setForeground(Color.red);
|
pal.add(lbl);
|
tabbedPane.setComponentAt(n, pal);
|
}
|
}
|
}
|
|
private void loadSecondTab(int n) {
|
if(secondModuleListMap.containsKey(n)) {
|
VCIModuleMainPanel secondMainPanel = this.secondModuleListMap.get(n);
|
LogonApplication.getUserEntityObject().setModules(secondMainPanel.getSelectModuleName());//重新记录模块信息
|
if(null != secondMainPanel) {
|
secondMainPanel.removeAll();
|
secondMainPanel.init();
|
secondTabbedPane.setComponentAt(n, secondMainPanel);
|
secondTabbedPane.setSelectedIndex(n);
|
secondeAlreadLoadedPanles.put(n, secondMainPanel);
|
}
|
}
|
isLoadFlagData = false;//保证当系统初次加载的时候才执行,其他有面板切换的动作,均按正常模板显示样式处理
|
}
|
|
private BundleImage bundleImage = new BundleImage();
|
|
private ImageIcon getImageIcon(String icon) {
|
return bundleImage.createImageIcon(icon);
|
}
|
|
public Frame getFrame() {
|
Container c = this.getParent();
|
while (c != null) {
|
if (c instanceof Frame) {
|
return (Frame) c;
|
}
|
c = c.getParent();
|
}
|
return null;
|
}
|
|
private static void setUIFont (javax.swing.plaf.FontUIResource f)
|
{
|
java.util.Enumeration keys = UIManager.getDefaults().keys();
|
while (keys.hasMoreElements())
|
{
|
Object key = keys.nextElement();
|
Object value = UIManager.get (key);
|
if (value instanceof javax.swing.plaf.FontUIResource)
|
UIManager.put (key, f);
|
}
|
}
|
public void setAllSize(){
|
this.setSize(new Dimension(
|
1024,
|
768));
|
}
|
}
|