xiejun
2023-10-17 9e341acec731503f1540b65727441e771b8ef9b4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
package com.vci.rmip.code.client.codeapply.Apply410;
 
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JPanel;
import javax.swing.event.TreeSelectionEvent;
 
import org.apache.commons.lang.StringUtils;
 
import com.alibaba.fastjson.JSONObject;
import com.vci.base.ui.swing.VCISwingUtil;
import com.vci.base.ui.swing.components.*;
import com.vci.base.ui.tree.VCIBaseTree;
import com.vci.base.ui.tree.VCIBaseTreeModel;
import com.vci.rmip.code.client.codeapply.Apply410.enums.CodeReferConfigTypeEnum;
import com.vci.rmip.code.client.codeapply.Apply410.object.UIFormRefer;
import com.vci.rmip.code.client.codeapply.Apply410.object.ubcscode.vo.KeyValue;
 
public class RMDataReferTempDialog extends VCIJDialog {
    private CodeApplyFor410MainPanel owner;
    //private CodeClassifyTemplateAttrVO codeClassifyTemplateAttr;
    private String referConfig="";
    private RMDataReferTempDialogActionListener actionListener = new RMDataReferTempDialogActionListener(this);
    private VCIJButton btnOk = VCISwingUtil.createVCIJButton("ok", "确定", "确定", "accept.png", actionListener);
    private VCIJButton btnCancel = VCISwingUtil.createVCIJButton("cancel", "取消", "取消", "cancel.png", actionListener);
    private static final long serialVersionUID = 1L;
    private VCIJScrollPane scrollLeftTreePane = new VCIJScrollPane();
    CodeReferTreePanel typeTreePanel;
    private VCIBaseTree leftTree = null;
    private VCIBaseTreeModel leftTreeModel = null;
    private KeyValue keyValue;
    public RMDataReferTempDialog(CodeApplyFor410MainPanel owner, String  referConfig) {
        //super(true);
        this.owner = owner;
        this.referConfig = referConfig;
        init();
        setTitle("引用模板-属性选择");
        //initDialogSize(rmDataAddDialog.getWidth(), rmDataAddDialog.getHeight());
    }
 
    private void init(){
        this.setLayout(new BorderLayout());
        JPanel panel = new JPanel(new FlowLayout());
        panel.add(btnOk);
        panel.add(btnCancel);
        this.add(createRMDataMainPanel(), BorderLayout.CENTER);
        this.add(panel,BorderLayout.SOUTH);
        Dimension dime = Toolkit.getDefaultToolkit().getScreenSize().getSize();
        int x = dime.width/6;
        int y = dime.height/6 + 50;
        this.setLocation(x , y);
        this.setSize(850, 400);
    }
 
    private boolean fromTableDoubleClick = false;
    public boolean isFromTableDoubleClick() {
        return fromTableDoubleClick;
    }
    public void setFromTableDoubleClick(boolean fromTableDoubleClick) {
        this.fromTableDoubleClick = fromTableDoubleClick;
    }
    private UIFormRefer uiFormRefer;
    private VCIJPanel createRMDataMainPanel(){
        VCIJPanel rmDataTablePanel = new VCIJPanel(new BorderLayout());
        uiFormRefer=new UIFormRefer();
        if(StringUtils.isNotBlank(referConfig)){
            uiFormRefer = JSONObject.toJavaObject(JSONObject.parseObject(referConfig.toString()), UIFormRefer.class);
        }
        if(uiFormRefer !=null&&(uiFormRefer.getType().equals(CodeReferConfigTypeEnum.TREE.getValue())
                ||uiFormRefer.getType().equals(CodeReferConfigTypeEnum.ORGDEPARTMENTREFER.getValue()))){
            rmDataTablePanel.add(createTreePanel(),BorderLayout.CENTER);
        }else if(uiFormRefer !=null&&(uiFormRefer.getType().equals(CodeReferConfigTypeEnum.GRID.getValue()))){
        //树表
        }else{
            rmDataTablePanel.add(getRMDataMainPanel(),BorderLayout.CENTER);
        }
        //rmDataTablePanel.setPreferredSize(new Dimension(880,300));
        return rmDataTablePanel;
    }
 
    /**
     * 根据类型显示table
     */
    private CodeDataMainPanel codeDataMainPanel = null;
    public CodeDataMainPanel getRMDataMainPanel() {
        codeDataMainPanel=new CodeDataMainPanel(uiFormRefer,this.owner.getTokenUserObject());
        CodeDataMainPanelDataProvider dataProvider=new CodeDataMainPanelDataProvider(codeDataMainPanel);
        codeDataMainPanel.setDataProvider(dataProvider);
        codeDataMainPanel.setCustomTopPanel(new AttarSearchPanel(uiFormRefer));
        codeDataMainPanel.buildPanel();
        VCIJTable table = codeDataMainPanel.getTablePanel().getTable();
        table.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                if (e.getButton() == 1 && e.getClickCount() == 2) {
                    setFromTableDoubleClick(true);
                    btnOk.doClick();
                }
            }
        });
        return codeDataMainPanel;
    }
    /***
     * 根据类型展示树
     * @return
     */
    private VCIJScrollPane createTreePanel(){
        final RMDataReferTempDialog self = this;
 
        typeTreePanel = new CodeReferTreePanel(uiFormRefer,this.owner.getTokenUserObject()) {
            private static final long serialVersionUID = 8121108576137012228L;
            @Override
            public void tree_valueChanged(TreeSelectionEvent e) {
 
                self.leftTree_valueChanged(e);
            }
        };
        typeTreePanel.buildTreePanel();
        leftTree = typeTreePanel.getTree();
        leftTreeModel = typeTreePanel.getTreeModel();
        scrollLeftTreePane.setViewportView(leftTree);
 
        return scrollLeftTreePane;
    }
 
    /***
     * 树切换事件
     * @param e
     */
    private void leftTree_valueChanged(TreeSelectionEvent e) {
        btnOk.doClick();
    }
    /***获取资源数据的主面板**/
/*
    public RMDataMainPanel getRMDataMainPanel() {
        return rmDataMainPanel;
    }
*/
    /*private RMDataTransmitObject loadTemplateAttributes(String libId, String classifyId, String templateId){
        LinkedHashMap<String, TemplatePropertyObject> tempPropObjsMap = new LinkedHashMap<String, TemplatePropertyObject>();
        LinkedList<TemplatePropertyObject> tempPropObjsList = new LinkedList<TemplatePropertyObject>();
 
        LinkedHashMap<String, AttributeObject> tempAttrObjsMap = new LinkedHashMap<String, AttributeObject>();
        LinkedList<AttributeObject> tempAttrObjsList = new LinkedList<AttributeObject>();
 
        TemplateObject templateObject = null;
 
        RMDataTransmitObject transmit = new RMDataTransmitObject();
        transmit.setLibId(libId);
        transmit.setClassifyId(classifyId);
        transmit.setTemplateId(templateId);
        transmit.setSpecialLib(true);//added by ligang 2012.07.04备件库不做权限校验
        try{
            UserEntityObject userEntityObject = LogonApplication.getUserEntityObject();
            TemplateClientDelegate  tempDel = new TemplateClientDelegate(userEntityObject);
            RMTemplateProertyClientDelegate tempPropDel = new RMTemplateProertyClientDelegate(userEntityObject);
            AttributeClientDelegate attrDel = new AttributeClientDelegate(userEntityObject);
//            RMTypeObject rmTypeObject = new RMTypeClientDelegate(userEntityObject).getRMTypeById(classifyId);
            RMTypeObject rmTypeObject = new RMTypeObject();
            // 从资源分类树中选择的对应的分类对象
            transmit.setRmTypeObject(rmTypeObject);
 
            // 获取模板对象
            templateObject = tempDel.getTemplateObjectById(templateId);
            transmit.setTemplateObject(templateObject);
 
            // 获取模板定义的属性对象(这个对象包含的是属性在模板中是否为关键属性、可否为空等等)
            TemplatePropertyObject[] tempPropObjs = tempPropDel.getTempletePropertys(templateId);
            for(TemplatePropertyObject obj : tempPropObjs){
                tempPropObjsMap.put(obj.getAttrId(), obj);
                tempPropObjsList.add(obj);
            }
            transmit.setTempPropObjsMap(tempPropObjsMap);
            transmit.setTempPropObjsList(tempPropObjsList);
 
            // 获取模板定义的属性对象对应到的真实的属性对象(系统配置模块定义的那些属性对象)
            AttributeObject[] attrObjs = attrDel.fetchAttributeByTemplateId(templateId);
            for(AttributeObject obj : attrObjs){
                tempAttrObjsMap.put(obj.getId(), obj);
                tempAttrObjsList.add(obj);
            }
            transmit.setTempAttrObjsMap(tempAttrObjsMap);
            transmit.setTempAttrObjsList(tempAttrObjsList);
 
        }catch(VCIException e){
            e.printStackTrace();
        }
        return transmit;
    }*/
 
    public KeyValue getKeyValue() {
        return keyValue;
    }
 
    public void setKeyValue(KeyValue keyValue) {
        this.keyValue = keyValue;
    }
 
    public UIFormRefer getUiFormRefer() {
        return uiFormRefer;
    }
 
    public void setUiFormRefer(UIFormRefer uiFormRefer) {
        this.uiFormRefer = uiFormRefer;
    }
 
    public CodeReferTreePanel getTypeTreePanel() {
        return typeTreePanel;
    }
 
    public void setTypeTreePanel(CodeReferTreePanel typeTreePanel) {
        this.typeTreePanel = typeTreePanel;
    }
 
    public CodeDataMainPanel getCodeDataMainPanel() {
        return codeDataMainPanel;
    }
 
    public void setCodeDataMainPanel(CodeDataMainPanel codeDataMainPanel) {
        this.codeDataMainPanel = codeDataMainPanel;
    }
 
}