first commit

main
洪丞进 2 weeks ago
commit 048f982f79

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="lib" path="poi/poi-3.9-20121203.jar"/>
<classpathentry kind="lib" path="poi/poi-ooxml-3.9-20121203.jar"/>
<classpathentry kind="lib" path="poi/poi-ooxml-schemas-3.9-20121203.jar"/>
<classpathentry kind="lib" path="poi/ojdbc8-19.3.0.0.jar"/>
<classpathentry kind="lib" path="poi/classes12.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="lib" path="poi/commons-codec-1.10.jar"/>
<classpathentry kind="lib" path="poi/commons-logging-1.1.jar"/>
<classpathentry kind="lib" path="poi/dom4j-1.6.1.jar"/>
<classpathentry kind="lib" path="poi/jsr173_1.0_api.jar"/>
<classpathentry kind="lib" path="poi/xmlbeans-2.5.0.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

1
.gitignore vendored

@ -0,0 +1 @@
/target/

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.connor.pro105.plm</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

@ -0,0 +1,7 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.7

@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1

@ -0,0 +1,264 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Plm
Bundle-SymbolicName: com.connor.pro105.plm;singleton:=true
Bundle-Version: 1.0.0
Bundle-Activator: com.connor.pro105.plm.Activator
Bundle-Vendor: CONNOR
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.core.expressions;bundle-version="3.4.400",
org.eclipse.ui;bundle-version="3.8.0",
com.teamcenter.rac.aifrcp;bundle-version="11000.2.0",
com.teamcenter.rac.common;bundle-version="11000.2.0",
com.teamcenter.rac.kernel;bundle-version="11000.2.0",
com.teamcenter.rac.util;bundle-version="11000.2.0",
org.apache.log4j;bundle-version="1.2.15",
com.teamcenter.rac.ui;bundle-version="11000.2.0",
com.teamcenter.rac.ui.commands;bundle-version="11000.2.0",
com.teamcenter.rac.project;bundle-version="11000.2.0",
TcSoaProjectManagementLoose;bundle-version="11000.2.0",
TcSoaProjectManagementRac;bundle-version="11000.2.0",
TcSoaProjectManagementTypes;bundle-version="11000.2.0",
com.teamcenter.rac.schedule;bundle-version="11000.2.0",
org.eclipse.core.databinding.beans;bundle-version="1.2.200",
org.eclipse.core.databinding.observable;bundle-version="1.4.1",
org.eclipse.jface.databinding;bundle-version="1.6.0",
org.eclipse.ui.views;bundle-version="3.6.100",
com.teamcenter.rac.cme.stylesheet;bundle-version="11000.2.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-ActivationPolicy: lazy
Export-Package:
com.connor.pro105.plm,
javax.sql,
javax.xml.stream,
javax.xml.stream.events,
javax.xml.stream.util,
oracle.core.lmx,
oracle.core.lvf,
oracle.jdbc,
oracle.jdbc.connector,
oracle.jdbc.driver,
oracle.jdbc.internal,
oracle.jdbc.oci,
oracle.jdbc.oracore,
oracle.jdbc.pool,
oracle.jdbc.util,
oracle.jdbc.xa,
oracle.jdbc.xa.client,
oracle.jpub.runtime,
oracle.net.TNSAddress,
oracle.net.ano,
oracle.net.aso,
oracle.net.jndi,
oracle.net.nl,
oracle.net.nl.mesg,
oracle.net.ns,
oracle.net.nt,
oracle.net.resolver,
oracle.security.o3logon,
oracle.sql,
oracle.sql.converter,
org.apache.commons.codec,
org.apache.commons.codec.binary,
org.apache.commons.codec.digest,
org.apache.commons.codec.language,
org.apache.commons.codec.language.bm,
org.apache.commons.codec.net,
org.apache.commons.logging,
org.apache.commons.logging.impl,
org.apache.poi,
org.apache.poi.common.usermodel,
org.apache.poi.ddf,
org.apache.poi.dev,
org.apache.poi.extractor,
org.apache.poi.hpsf,
org.apache.poi.hpsf.extractor,
org.apache.poi.hpsf.wellknown,
org.apache.poi.hssf,
org.apache.poi.hssf.dev,
org.apache.poi.hssf.eventmodel,
org.apache.poi.hssf.eventusermodel,
org.apache.poi.hssf.eventusermodel.dummyrecord,
org.apache.poi.hssf.extractor,
org.apache.poi.hssf.model,
org.apache.poi.hssf.record,
org.apache.poi.hssf.record.aggregates,
org.apache.poi.hssf.record.cf,
org.apache.poi.hssf.record.chart,
org.apache.poi.hssf.record.common,
org.apache.poi.hssf.record.cont,
org.apache.poi.hssf.record.crypto,
org.apache.poi.hssf.record.pivottable,
org.apache.poi.hssf.usermodel,
org.apache.poi.hssf.util,
org.apache.poi.openxml4j.exceptions,
org.apache.poi.openxml4j.opc,
org.apache.poi.openxml4j.opc.internal,
org.apache.poi.openxml4j.opc.internal.marshallers,
org.apache.poi.openxml4j.opc.internal.signature,
org.apache.poi.openxml4j.opc.internal.unmarshallers,
org.apache.poi.openxml4j.opc.signature,
org.apache.poi.openxml4j.util,
org.apache.poi.poifs.common,
org.apache.poi.poifs.crypt,
org.apache.poi.poifs.dev,
org.apache.poi.poifs.eventfilesystem,
org.apache.poi.poifs.filesystem,
org.apache.poi.poifs.nio,
org.apache.poi.poifs.property,
org.apache.poi.poifs.storage,
org.apache.poi.ss,
org.apache.poi.ss.extractor,
org.apache.poi.ss.format,
org.apache.poi.ss.formula,
org.apache.poi.ss.formula.atp,
org.apache.poi.ss.formula.constant,
org.apache.poi.ss.formula.eval,
org.apache.poi.ss.formula.eval.forked,
org.apache.poi.ss.formula.function,
org.apache.poi.ss.formula.functions,
org.apache.poi.ss.formula.ptg,
org.apache.poi.ss.formula.udf,
org.apache.poi.ss.usermodel,
org.apache.poi.ss.usermodel.charts,
org.apache.poi.ss.util,
org.apache.poi.ss.util.cellwalk,
org.apache.poi.util,
org.apache.poi.xslf,
org.apache.poi.xslf.extractor,
org.apache.poi.xslf.model,
org.apache.poi.xslf.model.geom,
org.apache.poi.xslf.usermodel,
org.apache.poi.xslf.util,
org.apache.poi.xssf.dev,
org.apache.poi.xssf.eventusermodel,
org.apache.poi.xssf.extractor,
org.apache.poi.xssf.model,
org.apache.poi.xssf.streaming,
org.apache.poi.xssf.usermodel,
org.apache.poi.xssf.usermodel.charts,
org.apache.poi.xssf.usermodel.extensions,
org.apache.poi.xssf.usermodel.helpers,
org.apache.poi.xssf.util,
org.apache.poi.xwpf.extractor,
org.apache.poi.xwpf.model,
org.apache.poi.xwpf.usermodel,
org.apache.xmlbeans,
org.apache.xmlbeans.impl.common,
org.apache.xmlbeans.impl.config,
org.apache.xmlbeans.impl.inst2xsd,
org.apache.xmlbeans.impl.inst2xsd.util,
org.apache.xmlbeans.impl.jam,
org.apache.xmlbeans.impl.jam.annotation,
org.apache.xmlbeans.impl.jam.internal,
org.apache.xmlbeans.impl.jam.internal.classrefs,
org.apache.xmlbeans.impl.jam.internal.elements,
org.apache.xmlbeans.impl.jam.internal.javadoc,
org.apache.xmlbeans.impl.jam.internal.parser,
org.apache.xmlbeans.impl.jam.internal.reflect,
org.apache.xmlbeans.impl.jam.mutable,
org.apache.xmlbeans.impl.jam.provider,
org.apache.xmlbeans.impl.jam.visitor,
org.apache.xmlbeans.impl.jam.xml,
org.apache.xmlbeans.impl.piccolo.io,
org.apache.xmlbeans.impl.piccolo.util,
org.apache.xmlbeans.impl.piccolo.xml,
org.apache.xmlbeans.impl.regex,
org.apache.xmlbeans.impl.richParser,
org.apache.xmlbeans.impl.schema,
org.apache.xmlbeans.impl.soap,
org.apache.xmlbeans.impl.store,
org.apache.xmlbeans.impl.tool,
org.apache.xmlbeans.impl.util,
org.apache.xmlbeans.impl.validator,
org.apache.xmlbeans.impl.values,
org.apache.xmlbeans.impl.xb.ltgfmt,
org.apache.xmlbeans.impl.xb.ltgfmt.impl,
org.apache.xmlbeans.impl.xb.substwsdl,
org.apache.xmlbeans.impl.xb.substwsdl.impl,
org.apache.xmlbeans.impl.xb.xmlconfig,
org.apache.xmlbeans.impl.xb.xmlconfig.impl,
org.apache.xmlbeans.impl.xb.xmlschema,
org.apache.xmlbeans.impl.xb.xmlschema.impl,
org.apache.xmlbeans.impl.xb.xsdownload,
org.apache.xmlbeans.impl.xb.xsdownload.impl,
org.apache.xmlbeans.impl.xb.xsdschema,
org.apache.xmlbeans.impl.xb.xsdschema.impl,
org.apache.xmlbeans.impl.xpathgen,
org.apache.xmlbeans.impl.xsd2inst,
org.apache.xmlbeans.soap,
org.apache.xmlbeans.xml.stream,
org.apache.xmlbeans.xml.stream.events,
org.apache.xmlbeans.xml.stream.utils,
org.dom4j,
org.dom4j.bean,
org.dom4j.datatype,
org.dom4j.dom,
org.dom4j.dtd,
org.dom4j.io,
org.dom4j.jaxb,
org.dom4j.rule,
org.dom4j.rule.pattern,
org.dom4j.swing,
org.dom4j.tree,
org.dom4j.util,
org.dom4j.xpath,
org.dom4j.xpp,
org.openxmlformats.schemas.drawingml.x2006.chart,
org.openxmlformats.schemas.drawingml.x2006.chart.impl,
org.openxmlformats.schemas.drawingml.x2006.main,
org.openxmlformats.schemas.drawingml.x2006.main.impl,
org.openxmlformats.schemas.drawingml.x2006.picture,
org.openxmlformats.schemas.drawingml.x2006.picture.impl,
org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing,
org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.impl,
org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing,
org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.impl,
org.openxmlformats.schemas.officeDocument.x2006.customProperties,
org.openxmlformats.schemas.officeDocument.x2006.customProperties.impl,
org.openxmlformats.schemas.officeDocument.x2006.docPropsVTypes,
org.openxmlformats.schemas.officeDocument.x2006.docPropsVTypes.impl,
org.openxmlformats.schemas.officeDocument.x2006.extendedProperties,
org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.impl,
org.openxmlformats.schemas.officeDocument.x2006.relationships,
org.openxmlformats.schemas.officeDocument.x2006.relationships.impl,
org.openxmlformats.schemas.presentationml.x2006.main,
org.openxmlformats.schemas.presentationml.x2006.main.impl,
org.openxmlformats.schemas.spreadsheetml.x2006.main,
org.openxmlformats.schemas.spreadsheetml.x2006.main.impl,
org.openxmlformats.schemas.wordprocessingml.x2006.main,
org.openxmlformats.schemas.wordprocessingml.x2006.main.impl,
org.w3c.dom,
repackage,
schemaorg_apache_xmlbeans.system.sE130CAA0A01A7CDE5A2B4FEB8B311707,
schemaorg_apache_xmlbeans.system.sXMLCONFIG,
schemaorg_apache_xmlbeans.system.sXMLLANG,
schemaorg_apache_xmlbeans.system.sXMLSCHEMA,
schemaorg_apache_xmlbeans.system.sXMLTOOLS,
schemasMicrosoftComOfficeExcel,
schemasMicrosoftComOfficeExcel.impl,
schemasMicrosoftComOfficeOffice,
schemasMicrosoftComOfficeOffice.impl,
schemasMicrosoftComVml,
schemasMicrosoftComVml.impl
Import-Package: com.teamcenter.rac.kernel,
com.teamcenter.rac.workflow.processdesigner.plugin,
com.teamcenter.services.rac.core,
com.teamcenter.services.rac.core._2006_03,
com.teamcenter.services.rac.core._2008_06,
org.eclipse.core.databinding
Bundle-ClassPath: src/com/teamcenter/rac/schedule/common/,
poi/classes12.jar,
poi/commons-codec-1.10.jar,
poi/commons-logging-1.1.jar,
poi/dom4j-1.6.1.jar,
poi/jsr173_1.0_api.jar,
poi/jxl_1.0.0.jar,
poi/poi-3.9-20121203.jar,
poi/poi-examples-3.9-20121203.jar,
poi/poi-excelant-3.9-20121203.jar,
poi/poi-ooxml-3.9-20121203.jar,
poi/poi-ooxml-schemas-3.9-20121203.jar,
poi/poi-scratchpad-3.9-20121203.jar,
poi/xmlbeans-2.5.0.jar,
.

@ -0,0 +1,18 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
plugin.xml,\
poi/classes12.jar,\
poi/commons-codec-1.10.jar,\
poi/commons-logging-1.1.jar,\
poi/dom4j-1.6.1.jar,\
poi/jsr173_1.0_api.jar,\
poi/jxl_1.0.0.jar,\
poi/poi-3.9-20121203.jar,\
poi/poi-examples-3.9-20121203.jar,\
poi/poi-excelant-3.9-20121203.jar,\
poi/poi-ooxml-3.9-20121203.jar,\
poi/poi-ooxml-schemas-3.9-20121203.jar,\
poi/poi-scratchpad-3.9-20121203.jar,\
poi/xmlbeans-2.5.0.jar

@ -0,0 +1,84 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
point="org.eclipse.ui.commands">
<category
name="Sample Category"
id="com.connor.hxc.plm.commands.category">
</category>
<command name="新建" categoryId="com.connor.pro105.plm.commands.category" id="creatTechWordM"> </command>
<command name="编辑" categoryId="com.connor.pro105.plm.commands.category" id="alterTechWordM"> </command>
<command name="新建" categoryId="com.connor.pro105.plm.commands.category" id="creatTechWordC"> </command>
<command name="编辑" categoryId="com.connor.pro105.plm.commands.category" id="alterTechWordC"> </command>
<command name="新建" categoryId="com.connor.pro105.plm.commands.category" id="creatTechWordW"> </command>
<command name="编辑" categoryId="com.connor.pro105.plm.commands.category" id="alterTechWordW"> </command>
<command name="新建" categoryId="com.connor.pro105.plm.commands.category" id="creatTechWordS"> </command>
<command name="编辑" categoryId="com.connor.pro105.plm.commands.category" id="alterTechWordS"> </command>
</extension>
<extension
point="org.eclipse.ui.handlers">
<handler commandId="creatTechWordM" class="com.connor.pro105.plm.creatTechWord.CreatTechWordHandler"></handler>
<handler commandId="creatTechWordC" class="com.connor.pro105.plm.creatTechWord.CreatTechWordHandler"></handler>
<handler commandId="alterTechWordM" class="com.connor.pro105.plm.creatTechWord.AlterTechWordHandler"></handler>
<handler commandId="alterTechWordC" class="com.connor.pro105.plm.creatTechWord.AlterTechWordHandler"></handler>
<handler commandId="creatTechWordW" class="com.connor.pro105.plm.creatTechWord.CreatTechWordHandler"></handler>
<handler commandId="creatTechWordS" class="com.connor.pro105.plm.creatTechWord.CreatTechWordHandler"></handler>
<handler commandId="alterTechWordW" class="com.connor.pro105.plm.creatTechWord.AlterTechWordHandler"></handler>
<handler commandId="alterTechWordS" class="com.connor.pro105.plm.creatTechWord.AlterTechWordHandler"></handler>
</extension>
<extension point="org.eclipse.ui.menus">
<menuContribution locationURI="menu:org.eclipse.ui.main.menu?after=additions">
<menu label="文档管理" mnemonic="M" id="com.connor.pro105.plm.menus.createTechWord">
<menu id="TechWordM" label="军机文档">
<command commandId="creatTechWordM" mnemonic="S" id="com.connor.pro105.plm.menus.creatTechWordM">
</command>
<command commandId="alterTechWordM" mnemonic="S" id="com.connor.pro105.plm.menus.alterTechWordM">
</command>
</menu>
<menu id="TechWordC" label="民机文档">
<command commandId="creatTechWordC" mnemonic="S" id="com.connor.pro105.plm.menus.creatTechWordC">
</command>
<command commandId="alterTechWordC" mnemonic="S" id="com.connor.pro105.plm.menus.alterTechWordC">
</command>
</menu>
<menu id="TechWordW" label="无型别文档">
<!--创建无型别-->
<command commandId="creatTechWordW" mnemonic="S" id="com.connor.pro105.plm.menus.creatTechWordW">
</command>
<command commandId="alterTechWordW" mnemonic="S" id="com.connor.pro105.plm.menus.alterTechWordW">
</command>
</menu>
<menu id="TechWordS" label="软件类文档">
<command commandId="creatTechWordS" mnemonic="S" id="com.connor.pro105.plm.menus.creatTechWordS">
</command>
<command commandId="alterTechWordS" mnemonic="S" id="com.connor.pro105.plm.menus.alterTechWordS">
</command>
</menu>
<separator name="sp2" visible="false"> </separator>
</menu>
</menuContribution>
</extension>
</plugin>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -0,0 +1,30 @@
package com.connor.pro105.plm;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
public class Activator implements BundleActivator {
private static BundleContext context;
static BundleContext getContext() {
return context;
}
/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
*/
public void start(BundleContext bundleContext) throws Exception {
Activator.context = bundleContext;
}
/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext bundleContext) throws Exception {
Activator.context = null;
}
}

@ -0,0 +1,45 @@
package com.connor.pro105.plm.creatTechWord;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.common.actions.AbstractAIFAction;
public class AlterTechWordAction extends AbstractAIFAction {
private AbstractAIFApplication app;
private String commandID;
public AlterTechWordAction( String commandID, AbstractAIFApplication app, String String) {
super(app, String);
this.commandID=commandID;
this.app=app;
}
@Override
public void run() {
if(commandID.equals("alterTechWordC")) {
AlterTechWordDialogC dialog=new AlterTechWordDialogC(app);
new Thread(dialog).start();
}else if(commandID.equals("alterTechWordM")) {
AlterTechWordDialogM dialog=new AlterTechWordDialogM(app);
new Thread(dialog).start();
}else if(commandID.equals("alterTechWordW")) {
AlterTechWordDialogW dialog=new AlterTechWordDialogW(app);
new Thread(dialog).start();
}else if(commandID.equals("alterTechWordS")) {
AlterTechWordDialogS dialog=new AlterTechWordDialogS(app);
new Thread(dialog).start();
}
}
}

@ -0,0 +1,775 @@
package com.connor.pro105.plm.creatTechWord;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.swing.ButtonGroup;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.AbstractAIFDialog;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentDataset;
import com.teamcenter.rac.kernel.TCComponentForm;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.stylesheet.KPropertyLOVDisplayer;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.rac.util.PropertyLayout;
//@SuppressWarnings({"rawtypes", "unchecked"})
@SuppressWarnings("unchecked")
public class AlterTechWordDialogC extends AbstractAIFDialog implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
private AbstractAIFApplication app;
private TCSession session;
private JPanel mainJpanel;
private JPanel leftJpanel;
private JPanel basicInfoJpanel;
private JPanel selectItemJpanel;
private JPanel rightJpanel;
private JPanel createInfoJpanel;
// private JTextField pathJTextField;
// private String selectType;
// private String selectSecondDoc;
// private String selectDocCategory;
private JButton okButton;
private JButton celButton;
private JButton searchButton;
private JButton selectButton;
private JCheckBox zjtsyq;
JTextField[] searchField = null;
// JTextField itemNameField=new JTextField(15);
JRadioButton[] radioButton = null;
ButtonGroup bg = new ButtonGroup();
private JPanel bottomJpanel;
// private String exportFile;
// private ProgressBarThread wait;
private TCComponentItemRevision rev=null;
private TCComponentForm form=null;
private TCComponentItem itemX=null;
private TCComponentForm itemFormX=null;
private TCComponentDataset dataset=null;
public AlterTechWordDialogC(AbstractAIFApplication app) {
super(AIFUtility.getActiveDesktop());
this.app = app;
this.session = (TCSession) app.getSession();
rev=(TCComponentItemRevision) app.getTargetComponent();
try {
itemX=rev.getItem();
form=(TCComponentForm) rev.getRelatedComponents("IMAN_master_form_rev")[0];
itemFormX=(TCComponentForm) itemX.getRelatedComponents("IMAN_master_form")[0];
TCComponent[] datasets=rev.getRelatedComponents("IMAN_specification");
if(datasets.length>0) {
dataset=(TCComponentDataset) rev.getRelatedComponents("IMAN_specification")[0];
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void run() {
// super.run();//必须注掉,否则窗口显示不正常
try {
readProperty();// 从excel中读取界面属性信息
} catch (Exception e) {
e.printStackTrace();
}
initUI();
}
Map<String, List<Integer>> map1 = new HashMap<String, List<Integer>>();
Map<String, List<Integer>> map2 = new HashMap<String, List<Integer>>();
Map<String, List<Integer>> map3 = new HashMap<String, List<Integer>>();
Map<String, List<String>> listMap = new HashMap<String, List<String>>();
String[] excelPre = null;
String[] createInfo = null;
Map<String, List<String>> map1_2 = new HashMap<>();
Map<String, List<String>> map2_3 = new HashMap<>();
List<String> list_1 = new ArrayList<>();// 一级所有值:不管是否重复
List<String> jcomboxList_1 = new ArrayList<>();// 一级所有值:不管是否重复
List<String> list_2 = new ArrayList<>();// 二级所有值:不管是否重复
List<String> list_3 = new ArrayList<>();// 三级所有值:不管是否重复
private void readProperty() throws IOException {
excelPre=session.getPreferenceService().getStringValues("Connor_AVIC_NewDocumentBasicC");
createInfo = session.getPreferenceService().getStringValues("Connor_AVIC_AlterDocumentCreationC");
createLabel = new JLabel[createInfo.length];
createText = new JTextField[createInfo.length];
createCom = new JComboBox[createInfo.length];
}
JLabel[] createLabel = null;
JTextField[] createText = null;
JComboBox<String>[] createCom = null;
Dimension dimension = new Dimension(150, 30);
Map<JLabel, Object> basicMap = new HashMap<JLabel, Object>();
Map<JLabel, String> basicPropertyMap = new HashMap<JLabel, String>();
Map<JLabel, Object> createMap = new HashMap<JLabel, Object>();
Map<JLabel, Object> searchMap = new HashMap<JLabel, Object>();
DefaultComboBoxModel<String> model1 = null;
DefaultComboBoxModel<String> model2 = null;
DefaultComboBoxModel<String> model3 = null;
JLabel[] basicLabel=null;
JLabel[] searchLabel=null;
JTextField[] basicText=null;
private void initUI() {
this.setTitle("民机文档修改");
okButton = new JButton("修改");
okButton.addActionListener(this);
this.getRootPane().setDefaultButton(searchButton);//设置当前面板的默认选中按钮
celButton = new JButton("取消");
celButton.addActionListener(this);
searchButton = new JButton("查询");
searchButton.addActionListener(this);
selectButton = new JButton("选择");
selectButton.addActionListener(this);
this.setLayout(new BorderLayout());
this.setSize(850, 550);
mainJpanel = new JPanel(new PropertyLayout());
mainJpanel.setPreferredSize(new Dimension(950, 450));
leftJpanel = new JPanel(new PropertyLayout());
leftJpanel.setPreferredSize(new Dimension(500, 450));
basicInfoJpanel = new JPanel(new PropertyLayout());
selectItemJpanel = new JPanel(new PropertyLayout());
selectItemJpanel.setPreferredSize(new Dimension(500, 300));
rightJpanel = new JPanel(new PropertyLayout());
rightJpanel.setPreferredSize(new Dimension(450, 350));
createInfoJpanel = new JPanel(new PropertyLayout());
// createInfoJpanel.setPreferredSize(new Dimension(400, 280));
basicInfoJpanel.add("1.1.left.top",new JLabel("<html><body><font size=3 color=#3CB371>零组件基本信息</font></body></html>"));
basicLabel=new JLabel[excelPre.length-2];
basicText=new JTextField[excelPre.length-2];
int a=2;
for (int i = 1; i < excelPre.length-1; i++) {
String[] proValue = excelPre[i].split("=");
if(i>3) {
basicLabel[i-1]=new JLabel(proValue[0]);
basicLabel[i-1].setPreferredSize(new Dimension(90,25));
String value2= proValue[1];
if(value2.toLowerCase().startsWith("itemrevisionmaster")) {
basicInfoJpanel.add(a+".1.left.top",new JLabel(" "));
basicInfoJpanel.add(a+".2.left.top", basicLabel[i-1]);
basicText[i-1]=new JTextField(15);
basicInfoJpanel.add(a+".3.left.top", basicText[i-1]);
basicMap.put(basicLabel[i-1],basicText[i-1]);
basicPropertyMap.put(basicLabel[i-1], value2.split("\\.")[1]);
}
a++;
}
}
leftJpanel.add("1.1.left.top",basicInfoJpanel);
int i=1;
selectItemJpanel.add(i+".1.left.top",new JLabel("<html><body><font size=4 color=#3CB371>选 择 零 组 件</font></body></html>"));
i++;
// selectItemJpanel.add(i+".1.left.top",new JLabel(" 查询选择零组件"));
// i++;
String[] values=session.getPreferenceService().getStringValues("Connor_AVIC_SearchC");
searchLabel=new JLabel[values.length-1];
searchField=new JTextField[values.length-1];
for (int j = 0; j < searchField.length; j++) {
searchField[j]=new JTextField(15);
searchLabel[j]=new JLabel(values[j+1]);
searchLabel[j].setPreferredSize(new Dimension(90,25));
searchMap.put(searchLabel[j], searchField[j]);
}
// session.search(arg0, arg1, arg2)
for (int j = 1; j < values.length; j++) {
// String string = values[j];
selectItemJpanel.add(i+".1.left.top",new JLabel(" "));
selectItemJpanel.add(i+".2.left.top",searchLabel[j-1]);
selectItemJpanel.add(i+".3.left.top",searchField[j-1]);
if(j==values.length-1) {
selectItemJpanel.add(i+".4.left.top",searchButton);
}
i++;
}
selectItemJpanel.add(i+".1.left.top",new JLabel(" "));
JLabel label= new JLabel("查询结果");
label.setPreferredSize(new Dimension(90,25));
selectItemJpanel.add(i+".2.left.top",label);
resultPanel=new JPanel(new PropertyLayout());
scrollPane=new JScrollPane(resultPanel);
scrollPane.setPreferredSize(new Dimension(240,150));
scrollPane.getVerticalScrollBar().setUnitIncrement(20);
selectItemJpanel.add(i+".3.left.top",scrollPane);
selectItemJpanel.add(i+".4.left.top",selectButton);
// leftJpanel.add("2.1.left.top",selectItemJpanel);
createInfoJpanel.add("1.1.left.top",
new JLabel("<html><body><font size=3 color=#3CB371>创建信息</font></body></html>"));
int b = 2;
for (int j = 0; j < createInfo.length; j++) {
createInfoJpanel.add(b + ".1.left.top", new JLabel(" "));
String[] string = createInfo[j].split("=");
createLabel[j] = new JLabel(string[0]);
createLabel[j].setPreferredSize(new Dimension(90, 25));
createInfoJpanel.add(b + ".2.left.top", createLabel[j]);
String[] string2=string[1].split(":");
if (string2.length > 1) {
if(string2[0].startsWith("#")) {//TODO
createCom[j] = new MultiCombo(session.getPreferenceService().getStringValues(string2[0].substring(1)));
createCom[j].setPreferredSize(new Dimension(250, 30));
createCom[j].setEditable(true);
createMap.put(createLabel[j], createCom[j]);
createInfoJpanel.add(b+".3.left.top", createCom[j]);
try {
String[] propertyInfo=string2[1].split("\\.");
if(propertyInfo[0].toUpperCase().equals("REVMASTER")) {
((MultiCombo)createCom[j]).setValue(form.getProperty(propertyInfo[1]));
}else if(propertyInfo[0].toUpperCase().equals("ITEM")) {
((MultiCombo)createCom[j]).setValue(itemX.getProperty(propertyInfo[1]));
}
} catch (Exception e1) {
e1.printStackTrace();
}
b++;
continue;
}
DefaultComboBoxModel<String> model;
String[] lovs = string2[0].split(";");
List<String> list = new ArrayList<String>();
for (int k = 0; k < lovs.length; k++) {
list.add(lovs[k]);
}
model = new DefaultComboBoxModel<String>(list.toArray(new String[list.size()]));
createCom[j] = new JComboBox<>(model);
String[] propertyInfo=string2[1].split("\\.");
String propertyValue="";
if(propertyInfo[0].toUpperCase().equals("REVMASTER")) {
try {
propertyValue=form.getTCProperty(propertyInfo[1]).getDisplayValue();
} catch (Exception e1) {
// Auto-generated catch block
e1.printStackTrace();
}
}
createCom[j].setSelectedItem(propertyValue);
createCom[j].setPreferredSize(new Dimension(100, 30));
createMap.put(createLabel[j], createCom[j]);
createInfoJpanel.add(b + ".3.left.top", createCom[j]);
if(string[0].equals("密级")) {
DocumentUtil.mjCom=createCom[j];
createMap.put(createLabel[j], DocumentUtil.mjCom);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.mjCom);
createCom[j].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
try {
System.out.println("ip_clearance==========="+session.getUser().getStringProperty("ip_clearance"));
} catch (Exception e2) {
e2.printStackTrace();
}
System.out.println("选择了====="+e.getItem().toString());
if (e.getStateChange() == ItemEvent.SELECTED) {
try {
KPropertyLOVDisplayer.checkIP(e.getItem().toString());
} catch (Exception e1) {
DocumentUtil.mjCom.setSelectedIndex(-1);
MessageBox.post("用户密级低于数据修改后的密级,不能够执行此操作!","",MessageBox.INFORMATION);
}
}
}
});
}
} else {
createText[j] = new JTextField(15);
createMap.put(createLabel[j], createText[j]);
String[] propertyInfo=string[1].split("\\.");
String propertyValue="";
TCComponent x=null;
if(propertyInfo[0].toUpperCase().equals("REVMASTER")) {
x=form;
}else if(propertyInfo[0].toUpperCase().equals("REV")) {
x=rev;
}else if(propertyInfo[0].toUpperCase().equals("DATASET")) {
if(dataset!=null) {
x=dataset;
}
}
if(x!=null) {
try {
System.out.println(x==null);
System.out.println(propertyInfo[1]);
System.out.println(x.getTCProperty(propertyInfo[1])==null);
propertyValue=x.getTCProperty(propertyInfo[1]).getDisplayValue();
} catch (Exception e1) {
e1.printStackTrace();
}
createText[j].setText(propertyValue);
createInfoJpanel.add(b + ".3.left.top", createText[j]);
}
}
b++;
}
rightJpanel.add("1.1.left.top", createInfoJpanel);
mainJpanel.add("1.1.left.top",leftJpanel);
mainJpanel.add("1.2.left.top", rightJpanel);
bottomJpanel = new JPanel(new FlowLayout());
bottomJpanel.add(okButton);
bottomJpanel.add(celButton);
// 通过读取首选项,设置那些控件不可编辑(如果jlabel有*,*也得加上)
String[] editable = session.getPreferenceService().getStringValues("Connor_AVIC_AlterEditableC");
for (int j = 0; j < editable.length; j++) {
boolean boo = false;
String string = editable[j];
boo = DocumentUtil.setEditable(createMap, string);
if (boo == false) {
boo = DocumentUtil.setEditable(basicMap, string);
if (boo == false) {
DocumentUtil.setEditable(searchMap, string);
}
}
}
zjtsyq=new JCheckBox("<html><body><font size=3 color=#FF0000>主机特殊要求</font></body></html>");
zjtsyq.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JTextField field=null;
JTextField field1=null;
JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("文件编号")) {
field=((JTextField)me.getValue());
}
}
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().startsWith("产品型号")) {
field1=((JTextField)me.getValue());
}
if(me.getKey().getText().startsWith("图样代号")) {
field2=((JTextField)me.getValue());
}
}
if(zjtsyq.isSelected()) {
field.setEditable(true);
field1.setEditable(true);
field2.setEditable(true);
}else {
field.setEditable(false);
field1.setEditable(false);
field2.setEditable(false);
}
}
});
for(Map.Entry<JLabel, String> me:basicPropertyMap.entrySet()) {
String property=me.getKey().getText();
System.out.println("property========="+property);
try {
String value=form.getProperty(me.getValue());
System.out.println("value========="+value);
JTextField field=(JTextField) basicMap.get(me.getKey());
field.setText(value);
} catch (Exception e1) {
// Auto-generated catch block
e1.printStackTrace();
}
}
// this.add(zjtsyq,BorderLayout.NORTH);
this.add(mainJpanel, BorderLayout.CENTER);
this.add(bottomJpanel, BorderLayout.SOUTH);
this.pack();
this.centerToScreen();
this.showDialog();
}
JPanel resultPanel = new JPanel(new PropertyLayout());
JScrollPane scrollPane = new JScrollPane(resultPanel);
Map<JRadioButton, String> radioMap=new HashMap<JRadioButton, String>();
@Override
public void actionPerformed(ActionEvent e) {
Object sourceObj = e.getSource();
if (sourceObj.equals(okButton)) {
try {
TCComponentDataset newdataset =null;
if(dataset!=null) {
newdataset=dataset;
}
// 名称
JTextField field2 = null;
for (Map.Entry<JLabel, Object> me : createMap.entrySet()) {
if (me.getKey().getText().startsWith("名称")) {
field2 = ((JTextField) me.getValue());
}
}
rev.setStringProperty("object_name", field2.getText());
// 实体文件名称
JTextField field3 = null;
for (Map.Entry<JLabel, Object> me : createMap.entrySet()) {
if (me.getKey().getText().contains("实体文件名称")) {
field3 = ((JTextField) me.getValue());
}
}
objectName = field3.getText();
if(newdataset!=null) {
newdataset.setStringProperty("object_name", field3.getText());
}
String[] propertyName = session.getPreferenceService().getStringValues("Connor_AVIC_SetFormPropertyC");
Map<String, String> mapX = new HashMap<>();
for (int i = 0; i < propertyName.length; i++) {
String[] value = propertyName[i].split("=");
mapX.put(value[0], value[1]);
}
Map<String, String> propertyValue = new HashMap<>();
for (java.util.Map.Entry<JLabel, Object> me : basicMap.entrySet()) {
if (mapX.containsKey(me.getKey().getText())) {
String value = "";
try {
value = ((JTextField) me.getValue()).getText();
} catch (Exception e1) {
value = (String) ((JComboBox<String>) me.getValue()).getSelectedItem();
}
propertyValue.put(mapX.get(me.getKey().getText()), value);
}
}
for (java.util.Map.Entry<JLabel, Object> me : createMap.entrySet()) {
if (mapX.containsKey(me.getKey().getText())) {
String value = "";
Object comp = me.getValue();
if(comp instanceof MultiCombo)
value = ((MultiCombo)comp).getValue();//TODO
else if(comp instanceof JTextField)
value=((JTextField)comp).getText();
else
value=(String)((JComboBox<String>)comp).getSelectedItem();
TCComponent tarForm=((TCComponent) app.getTargetComponent()).getRelatedComponents("IMAN_master_form_rev")[0];
if(!tarForm.getProperty("ac5_DocumentNumber").equals(value)) {
if(me.getKey().getText().contains("文件编号")) {
TCComponent[] comps;
try {
comps = session.search("DocSearch1", new String[] {"文档编号"}, new String[] {value});
if(comps.length>0) {
MessageBox.post("","文件编号不唯一,请修改",MessageBox.INFORMATION);
return;
}else {
this.disposeDialog();
this.dispose();
}
} catch (Exception e1) {
// Auto-generated catch block
e1.printStackTrace();
}
}
}else {
this.disposeDialog();
this.dispose();
}
propertyValue.put(mapX.get(me.getKey().getText()), value);
}
this.disposeDialog();
this.dispose();
}
for (java.util.Map.Entry<String, String> me : propertyValue.entrySet()) {
TCComponent tccomponentX = form;
String objectType = me.getKey().split("\\.")[0];
String valueType = me.getKey().split("\\.")[1].split(":")[1];
String pname = me.getKey().split("\\.")[1].split(":")[0];
if (objectType.toLowerCase().equals("itemrevisionmaster")) {
tccomponentX = form;
}
if (valueType.toLowerCase().equals("text")) {
tccomponentX.setStringProperty(pname, me.getValue());
} else if (valueType.toLowerCase().equals("lov")) {
String trueValue = (String) tccomponentX.getTCProperty(pname).getLOV().getListOfValues()
.getRealValue(me.getValue());
tccomponentX.setStringProperty(pname, trueValue);
if(pname.equals("ip_classification")) {
System.out.println("设置密级================"+trueValue);
itemX.setStringProperty(pname, trueValue);
form.setStringProperty(pname, trueValue);
itemFormX.setStringProperty(pname, trueValue);
rev.setStringProperty(pname, trueValue);
}
}
}
if(newdataset!=null) {
// 通过cmd的方式运行wsf将属性输出到文件上要注意excel和word两种
// 下载文件
String testPath = "";
testPath = DocumentUtil.downLoadFile(newdataset);
// 获得属性文件
String dataFile = "";
if (testPath.endsWith(".doc") || testPath.endsWith(".docm") || testPath.endsWith(".docx")
|| testPath.endsWith(".xlsm") || testPath.endsWith(".xlsx") || testPath.endsWith(".xls")) {
try {
dataFile = DocumentUtil.jk_SetCAXAFile("Connor_AVIC_NewDocumentThesignC",session,newdataset, true);
} catch (Exception e1) {
e1.printStackTrace();
}
}
String wsfType = "word";
if (testPath.endsWith(".doc") || testPath.endsWith(".docm") || testPath.endsWith(".docx")) {
wsfType = "word";
} else if (testPath.endsWith(".xlsm") || testPath.endsWith(".xlsx") || testPath.endsWith(".xls")) {
wsfType = "excel";
}
// 获取wsf文件所在位置,替换命名引用
String wsfpath = null;
File file = new File(testPath);
String path = testPath.substring(0, testPath.lastIndexOf("\\") + 1);
String suffix = testPath.substring(testPath.lastIndexOf("."), testPath.length());
System.out.println(path);
System.out.println(suffix);
try {
if (wsfType.equals("word")) {
wsfpath = DocumentUtil.getFileFromClass(getClass(), "SubstMacros-MSWord.wsf", System.getenv("Temp"));
DocumentUtil.runWsf(wsfpath, new String[] { testPath, dataFile });
// 文件重命名
testPath = path + objectName + suffix;
File fileDelete=new File(testPath);
if(fileDelete.exists()) {
fileDelete.delete();
}
file.renameTo(new File(testPath));
newdataset.setFiles(new String[] { testPath }, new String[] { "word" });
} else if (wsfType.equals("excel")) {
wsfpath = DocumentUtil.getFileFromClass(getClass(), "SubstMacros-MSExcel.wsf", System.getenv("Temp"));
DocumentUtil.runWsf(wsfpath, new String[] { testPath, dataFile });
// 文件重命名
testPath = path + objectName + suffix;
File fileDelete=new File(testPath);
if(fileDelete.exists()) {
fileDelete.delete();
}
file.renameTo(new File(testPath));
newdataset.setFiles(new String[] { testPath }, new String[] { "excel" });
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
} catch (Exception e1) {
e1.printStackTrace();
}
MessageBox.post("完成","",MessageBox.INFORMATION);
} else if (sourceObj.equals(celButton)) {
this.disposeDialog();
this.dispose();
}else if(sourceObj.equals(searchButton)){
this.getRootPane().setDefaultButton(selectButton);//设置当前面板的默认选中按钮
String[] values=session.getPreferenceService().getStringValues("Connor_AVIC_SearchC");
String[] selectItem=new String[values.length-1];
String[] selectValue=new String[values.length-1];
int i=0;
boolean isNull=true;
for(java.util.Map.Entry<JLabel, Object> me:searchMap.entrySet()) {
String key=me.getKey().getText();
JTextField field=(JTextField) me.getValue();
String value=field.getText().trim();
if(value.length()==0) {
value="*";
}else {
value="*"+value+"*";
isNull=false;
}
selectItem[i]=key;
selectValue[i]=value;
i++;
}
if(isNull==true) {
MessageBox.post("所搜条目不能全为空","",MessageBox.INFORMATION);
}else {
try {
TCComponent[] comps=session.search(values[0], selectItem, selectValue);
System.out.println("共有========"+comps.length);
this.disposeDialog();
this.showDialog();
radioButton=new JRadioButton[comps.length];
radioMap=new HashMap<JRadioButton, String>();
resultPanel.removeAll();
// scrollPane.remove(resultPanel);
bg=new ButtonGroup();
//查询结果设置成可配置的属性
String[] properties=session.getPreferenceService().getStringValues("Connor_AVIC_SearchPropertiesC");
if(comps.length==0) {
MessageBox.post("查询结果为空","",MessageBox.INFORMATION);
}
for (int j = 0; j < comps.length; j++) {
TCComponent tcComponent = comps[j];
String name="";
for (int k = 0; k < properties.length; k++) {
//区分版本和对象
TCComponent tcComponent0=null;
String[] ps=properties[k].split("\\.");
System.out.println();
if(ps[0].toUpperCase().equals("REV")){
tcComponent0=tcComponent;
}else if(ps[0].toUpperCase().equals("REVMASTER")) {
tcComponent0=tcComponent.getRelatedComponents("IMAN_master_form_rev")[0];
}
name=name+tcComponent0.getProperty(ps[1]);
if(k<properties.length-1) {
name=name+"-";
}
}
radioButton[j]=new JRadioButton(name);
radioMap.put(radioButton[j], tcComponent.getProperty("item_id"));
bg.add(radioButton[j]);
resultPanel.add((j+1)+".1.left.top",radioButton[j]);
}
// scrollPane.add(resultPanel);
} catch (Exception e1) {
e1.printStackTrace();
}
}
// this.disposeDialog();
// this.dispose();
}else if(sourceObj.equals(selectButton)){
this.getRootPane().setDefaultButton(okButton);//设置当前面板的默认选中按钮
String item_id="";
for(int i=0;i<radioButton.length;i++) {
if(radioButton[i].isSelected()) {
item_id=radioMap.get(radioButton[i]);
// item_id=radioButton[i].getText();
break;
}
}
if(item_id.length()==0) {
MessageBox.post("","",MessageBox.INFORMATION);
}else {
try {
TCComponent[] comp=session.search("零组件 ID", new String[] {"零组件 ID"}, new String[] {item_id});
TCComponentItem item=((TCComponentItem)comp[0]);
TCComponent form=item.getLatestItemRevision().getRelatedComponents("IMAN_master_form_rev")[0];
for(Map.Entry<JLabel, String> me:basicPropertyMap.entrySet()) {
String property=me.getKey().getText();
System.out.println("property========="+property);
String value=form.getProperty(me.getValue());
System.out.println("value========="+value);
JTextField field=(JTextField) basicMap.get(me.getKey());
field.setText(value);
//如果是图样代号取搜索对象的item_id
if(property.startsWith("图样代号")) {
field.setText(item.getProperty("item_id"));
}
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
//创建属性赋值
//名称:型号+文档类别+流水(允许手工修改)
// JTextField field0=null;
// JComboBox<String> combox1=null;
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().startsWith("产品型号")) {
// field0=((JTextField)me.getValue());
}
if(me.getKey().getText().startsWith("文档类别")) {
// combox1=((JComboBox)me.getValue());
}
}
//点击选择不在更新名称,实体文件名称和文件编号
// JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("名称")) {
// field2=((JTextField)me.getValue());
}
}
}
}
String objectName = "";
}

@ -0,0 +1,789 @@
package com.connor.pro105.plm.creatTechWord;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import javax.swing.ButtonGroup;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.AbstractAIFDialog;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentDataset;
import com.teamcenter.rac.kernel.TCComponentForm;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.stylesheet.KPropertyLOVDisplayer;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.rac.util.PropertyLayout;
@SuppressWarnings({"rawtypes", "unchecked"})
public class AlterTechWordDialogM extends AbstractAIFDialog implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
private AbstractAIFApplication app;
private TCSession session;
private JPanel mainJpanel;
private JPanel leftJpanel;
private JPanel basicInfoJpanel;
private JPanel selectItemJpanel;
private JPanel rightJpanel;
private JPanel createInfoJpanel;
// private JTextField pathJTextField;
// private String selectType;
// private String selectSecondDoc;
// private String selectDocCategory;
private JButton okButton;
private JButton celButton;
private JButton searchButton;
private JButton selectButton;
private JCheckBox zjtsyq;
JTextField[] searchField = null;
// JTextField itemNameField=new JTextField(15);
JRadioButton[] radioButton = null;
ButtonGroup bg = new ButtonGroup();
private JPanel bottomJpanel;
// private String exportFile;
// private ProgressBarThread wait;
private TCComponentItemRevision rev=null;
private TCComponentForm form=null;
private TCComponentItem itemX=null;
private TCComponentForm itemFormX=null;
private TCComponentDataset dataset=null;
public AlterTechWordDialogM(AbstractAIFApplication app) {
super(AIFUtility.getActiveDesktop());
this.app = app;
this.session = (TCSession) app.getSession();
rev=(TCComponentItemRevision) app.getTargetComponent();
try {
itemX=rev.getItem();
form=(TCComponentForm) rev.getRelatedComponents("IMAN_master_form_rev")[0];
itemFormX=(TCComponentForm) itemX.getRelatedComponents("IMAN_master_form")[0];
TCComponent[] datasets=rev.getRelatedComponents("IMAN_specification");
if(datasets.length>0) {
dataset=(TCComponentDataset) rev.getRelatedComponents("IMAN_specification")[0];
}
} catch (TCException e) {
e.printStackTrace();
}
}
@Override
public void run() {
// super.run();//必须注掉,否则窗口显示不正常
try {
readProperty();// 从excel中读取界面属性信息
} catch (IOException e) {
e.printStackTrace();
}
initUI();
}
Map<String, List<Integer>> map1 = new HashMap<String, List<Integer>>();
Map<String, List<Integer>> map2 = new HashMap<String, List<Integer>>();
Map<String, List<Integer>> map3 = new HashMap<String, List<Integer>>();
Map<String, List<String>> listMap = new HashMap<String, List<String>>();
String[] excelPre = null;
String[] createInfo = null;
Map<String, List<String>> map1_2 = new HashMap<>();
Map<String, List<String>> map2_3 = new HashMap<>();
List<String> list_1 = new ArrayList<>();// 一级所有值:不管是否重复
List<String> jcomboxList_1 = new ArrayList<>();// 一级所有值:不管是否重复
List<String> list_2 = new ArrayList<>();// 二级所有值:不管是否重复
List<String> list_3 = new ArrayList<>();// 三级所有值:不管是否重复
private void readProperty() throws IOException {
excelPre=session.getPreferenceService().getStringValues("Connor_AVIC_NewDocumentBasicM");
createInfo = session.getPreferenceService().getStringValues("Connor_AVIC_AlterDocumentCreationM");
createLabel = new JLabel[createInfo.length];
createText = new JTextField[createInfo.length];
createCom = new JComboBox[createInfo.length];
}
JLabel[] createLabel = null;
JTextField[] createText = null;
JComboBox<String>[] createCom = null;
Dimension dimension = new Dimension(150, 30);
Map<JLabel, Object> basicMap = new HashMap<JLabel, Object>();
Map<JLabel, String> basicPropertyMap = new HashMap<JLabel, String>();
Map<JLabel, Object> createMap = new HashMap<JLabel, Object>();
Map<JLabel, Object> searchMap = new HashMap<JLabel, Object>();
DefaultComboBoxModel model1 = null;
DefaultComboBoxModel model2 = null;
DefaultComboBoxModel model3 = null;
JLabel[] basicLabel=null;
JLabel[] searchLabel=null;
JTextField[] basicText=null;
private void initUI() {
this.setTitle("军机文档修改");
okButton = new JButton("修改");
okButton.addActionListener(this);
this.getRootPane().setDefaultButton(searchButton);//设置当前面板的默认选中按钮
celButton = new JButton("取消");
celButton.addActionListener(this);
searchButton = new JButton("查询");
searchButton.addActionListener(this);
selectButton = new JButton("选择");
selectButton.addActionListener(this);
this.setLayout(new BorderLayout());
this.setSize(850, 550);
mainJpanel = new JPanel(new PropertyLayout());
mainJpanel.setPreferredSize(new Dimension(950, 450));
leftJpanel = new JPanel(new PropertyLayout());
leftJpanel.setPreferredSize(new Dimension(500, 450));
basicInfoJpanel = new JPanel(new PropertyLayout());
selectItemJpanel = new JPanel(new PropertyLayout());
selectItemJpanel.setPreferredSize(new Dimension(500, 300));
rightJpanel = new JPanel(new PropertyLayout());
rightJpanel.setPreferredSize(new Dimension(450, 350));
createInfoJpanel = new JPanel(new PropertyLayout());
// createInfoJpanel.setPreferredSize(new Dimension(400, 280));
basicInfoJpanel.add("1.1.left.top",new JLabel("<html><body><font size=3 color=#3CB371>零组件基本信息</font></body></html>"));
basicLabel=new JLabel[excelPre.length-2];
basicText=new JTextField[excelPre.length-2];
int a=2;
for (int i = 1; i < excelPre.length-1; i++) {
String[] proValue = excelPre[i].split("=");
if(i>3) {
basicLabel[i-1]=new JLabel(proValue[0]);
basicLabel[i-1].setPreferredSize(new Dimension(90,25));
String value2= proValue[1];
if(value2.toLowerCase().startsWith("itemrevisionmaster")) {
basicInfoJpanel.add(a+".1.left.top",new JLabel(" "));
basicInfoJpanel.add(a+".2.left.top", basicLabel[i-1]);
basicText[i-1]=new JTextField(15);
basicInfoJpanel.add(a+".3.left.top", basicText[i-1]);
basicMap.put(basicLabel[i-1],basicText[i-1]);
basicPropertyMap.put(basicLabel[i-1], value2.split("\\.")[1]);
}
// else if(value2.toLowerCase().startsWith("sheet")) {
// basicText[i-1]=new JTextField(15);
// basicInfoJpanel.add(a+".3.left.top", basicText[i-1]);
// basicMap.put(basicLabel[i-1],basicText[i-1]);
// basicPropertyMap.put(basicLabel[i-1], value2.split("\\.")[1]);
// }
a++;
}
}
leftJpanel.add("1.1.left.top",basicInfoJpanel);
int i=1;
selectItemJpanel.add(i+".1.left.top",new JLabel("<html><body><font size=4 color=#3CB371>选 择 零 组 件</font></body></html>"));
i++;
// selectItemJpanel.add(i+".1.left.top",new JLabel(" 查询选择零组件"));
// i++;
String[] values=session.getPreferenceService().getStringValues("Connor_AVIC_SearchM");
searchLabel=new JLabel[values.length-1];
searchField=new JTextField[values.length-1];
for (int j = 0; j < searchField.length; j++) {
searchField[j]=new JTextField(15);
searchLabel[j]=new JLabel(values[j+1]);
searchLabel[j].setPreferredSize(new Dimension(90,25));
searchMap.put(searchLabel[j], searchField[j]);
}
// session.search(arg0, arg1, arg2)
for (int j = 1; j < values.length; j++) {
// String string = values[j];
selectItemJpanel.add(i+".1.left.top",new JLabel(" "));
selectItemJpanel.add(i+".2.left.top",searchLabel[j-1]);
selectItemJpanel.add(i+".3.left.top",searchField[j-1]);
if(j==values.length-1) {
selectItemJpanel.add(i+".4.left.top",searchButton);
}
i++;
}
selectItemJpanel.add(i+".1.left.top",new JLabel(" "));
JLabel label= new JLabel("查询结果");
label.setPreferredSize(new Dimension(90,25));
selectItemJpanel.add(i+".2.left.top",label);
resultPanel=new JPanel(new PropertyLayout());
scrollPane=new JScrollPane(resultPanel);
scrollPane.setPreferredSize(new Dimension(250,150));
scrollPane.getVerticalScrollBar().setUnitIncrement(20);
selectItemJpanel.add(i+".3.left.top",scrollPane);
selectItemJpanel.add(i+".4.left.top",selectButton);
// leftJpanel.add("2.1.left.top",selectItemJpanel);
createInfoJpanel.add("1.1.left.top",
new JLabel("<html><body><font size=3 color=#3CB371>创建信息</font></body></html>"));
int b = 2;
for (int j = 0; j < createInfo.length; j++) {
createInfoJpanel.add(b + ".1.left.top", new JLabel(" "));
String[] string = createInfo[j].split("=");
createLabel[j] = new JLabel(string[0]);
createLabel[j].setPreferredSize(new Dimension(90, 25));
createInfoJpanel.add(b + ".2.left.top", createLabel[j]);
String[] string2=string[1].split(":");
if (string2.length > 1) {
if(string2[0].startsWith("#")) {//TODO
createCom[j] = new MultiCombo(session.getPreferenceService().getStringValues(string2[0].substring(1)));
createCom[j].setPreferredSize(new Dimension(250, 30));
createCom[j].setEditable(true);
createMap.put(createLabel[j], createCom[j]);
createInfoJpanel.add(b+".3.left.top", createCom[j]);
try {
String[] propertyInfo=string2[1].split("\\.");
if(propertyInfo[0].toUpperCase().equals("REVMASTER")) {
((MultiCombo)createCom[j]).setValue(form.getProperty(propertyInfo[1]));
}else if(propertyInfo[0].toUpperCase().equals("ITEM")) {
((MultiCombo)createCom[j]).setValue(itemX.getProperty(propertyInfo[1]));
}
} catch (Exception e1) {
e1.printStackTrace();
}
b++;
continue;
}
DefaultComboBoxModel<String> model;
String[] lovs = string2[0].split(";");
List<String> list = new ArrayList<String>();
for (int k = 0; k < lovs.length; k++) {
list.add(lovs[k]);
}
model = new DefaultComboBoxModel<String>(list.toArray(new String[list.size()]));
createCom[j] = new JComboBox(model);
String[] propertyInfo=string2[1].split("\\.");
String propertyValue="";
if(propertyInfo[0].toUpperCase().equals("REVMASTER")) {
try {
propertyValue=form.getTCProperty(propertyInfo[1]).getDisplayValue();
} catch (Exception e1) {
e1.printStackTrace();
}
}else if(propertyInfo[0].toUpperCase().equals("ITEM")) {
try {
propertyValue=itemX.getTCProperty(propertyInfo[1]).getDisplayValue();
} catch (Exception e1) {
e1.printStackTrace();
}
}
createCom[j].setSelectedItem(propertyValue);
createCom[j].setPreferredSize(new Dimension(100, 30));
createMap.put(createLabel[j], createCom[j]);
createInfoJpanel.add(b + ".3.left.top", createCom[j]);
if(string[0].equals("密级")) {
DocumentUtil.mjCom=createCom[j];
createMap.put(createLabel[j], DocumentUtil.mjCom);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.mjCom);
createCom[j].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
try {
System.out.println("ip_clearance==========="+session.getUser().getStringProperty("ip_clearance"));
} catch (TCException e2) {
e2.printStackTrace();
}
System.out.println("选择了====="+e.getItem().toString());
if (e.getStateChange() == ItemEvent.SELECTED) {
try {
KPropertyLOVDisplayer.checkIP(e.getItem().toString());
} catch (Exception e1) {
DocumentUtil.mjCom.setSelectedIndex(-1);
MessageBox.post("用户密级低于数据修改后的密级,不能够执行此操作!","",MessageBox.INFORMATION);
}
}
}
});
}
} else {
createText[j] = new JTextField(15);
createMap.put(createLabel[j], createText[j]);
String[] propertyInfo=string[1].split("\\.");
String propertyValue="";
TCComponent x=null;
if(propertyInfo[0].toUpperCase().equals("REVMASTER")) {
x=form;
}else if(propertyInfo[0].toUpperCase().equals("REV")) {
x=rev;
}else if(propertyInfo[0].toUpperCase().equals("ITEM")) {
x=itemX;
}else if(propertyInfo[0].toUpperCase().equals("DATASET")) {
if(dataset!=null) {
x=dataset;
}
}
if(x!=null) {
try {
System.out.println(x==null);
System.out.println(propertyInfo[1]);
System.out.println(x.getTCProperty(propertyInfo[1])==null);
propertyValue=x.getTCProperty(propertyInfo[1]).getDisplayValue();
} catch (Exception e1) {
e1.printStackTrace();
}
createText[j].setText(propertyValue);
createInfoJpanel.add(b + ".3.left.top", createText[j]);
}
}
b++;
}
rightJpanel.add("1.1.left.top", createInfoJpanel);
mainJpanel.add("1.1.left.top",leftJpanel);
mainJpanel.add("1.2.left.top", rightJpanel);
bottomJpanel = new JPanel(new FlowLayout());
bottomJpanel.add(okButton);
bottomJpanel.add(celButton);
// 通过读取首选项,设置那些控件不可编辑(如果jlabel有*,*也得加上)
String[] editable = session.getPreferenceService().getStringValues("Connor_AVIC_AlterEditableM");
for (int j = 0; j < editable.length; j++) {
boolean boo = false;
String string = editable[j];
boo = DocumentUtil.setEditable(createMap, string);
if (boo == false) {
boo = DocumentUtil.setEditable(basicMap, string);
if (boo == false) {
DocumentUtil.setEditable(searchMap, string);
}
}
}
zjtsyq=new JCheckBox("<html><body><font size=3 color=#FF0000>主机特殊要求</font></body></html>");
zjtsyq.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JTextField field=null;
JTextField field1=null;
JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("文件编号")) {
field=((JTextField)me.getValue());
}
}
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().startsWith("产品型号")) {
field1=((JTextField)me.getValue());
}
if(me.getKey().getText().startsWith("图样代号")) {
field2=((JTextField)me.getValue());
}
}
if(zjtsyq.isSelected()) {
field.setEditable(true);
field1.setEditable(true);
field2.setEditable(true);
}else {
field.setEditable(false);
field1.setEditable(false);
field2.setEditable(false);
}
}
});
for(Map.Entry<JLabel, String> me:basicPropertyMap.entrySet()) {
String property=me.getKey().getText();
System.out.println("property========="+property);
try {
String value=form.getProperty(me.getValue());
System.out.println("value========="+value);
JTextField field=(JTextField) basicMap.get(me.getKey());
field.setText(value);
} catch (Exception e1) {
// Auto-generated catch block
e1.printStackTrace();
}
}
// this.add(zjtsyq,BorderLayout.NORTH);
this.add(mainJpanel, BorderLayout.CENTER);
this.add(bottomJpanel, BorderLayout.SOUTH);
this.pack();
this.centerToScreen();
this.showDialog();
}
JPanel resultPanel = new JPanel(new PropertyLayout());
JScrollPane scrollPane = new JScrollPane(resultPanel);
Map<JRadioButton, String> radioMap=new HashMap<JRadioButton, String>();
@Override
public void actionPerformed(ActionEvent e) {
Object sourceObj = e.getSource();
if (sourceObj.equals(okButton)) {
try {
TCComponentDataset newdataset =null;
if(dataset!=null) {
newdataset=dataset;
}
// 名称
JTextField field2 = null;
// 实体文件名称
JTextField field3 = null;
for (Map.Entry<JLabel, Object> me : createMap.entrySet()) {
if (me.getKey().getText().startsWith("名称")) {
field2 = ((JTextField) me.getValue());
}else if (me.getKey().getText().startsWith("实体文件名称")) {
field3 = ((JTextField) me.getValue());
}
}
rev.setStringProperty("object_name", field2.getText());
objectName = field3.getText();
if(newdataset!=null) {
newdataset.setStringProperty("object_name", field3.getText());
}
String[] propertyName = session.getPreferenceService().getStringValues("Connor_AVIC_SetFormPropertyM");
Map<String, String> mapX = new HashMap<>();
for (int i = 0; i < propertyName.length; i++) {
String[] value = propertyName[i].split("=");
mapX.put(value[0], value[1]);
}
Map<String, String> propertyValue = new HashMap<>();
for (Entry<JLabel, Object> me : basicMap.entrySet()) {
if (mapX.containsKey(me.getKey().getText())) {
String value = "";
try {
value = ((JTextField) me.getValue()).getText();
} catch (Exception e1) {
value = (String) ((JComboBox<String>) me.getValue()).getSelectedItem();
}
propertyValue.put(mapX.get(me.getKey().getText()), value);
}
}
for (Entry<JLabel, Object> me : createMap.entrySet()) {
if (mapX.containsKey(me.getKey().getText())) {
String value = "";
Object comp = me.getValue();
if(comp instanceof MultiCombo)
value = ((MultiCombo)comp).getValue();//TODO
else if(comp instanceof JTextField)
value=((JTextField)comp).getText();
else
value=(String)((JComboBox<String>)comp).getSelectedItem();
TCComponent tarForm=((TCComponent) app.getTargetComponent()).getRelatedComponents("IMAN_master_form_rev")[0];
if(!tarForm.getProperty("ac5_DocumentNumber").equals(value)) {
if(me.getKey().getText().contains("文件编号")) {
TCComponent[] comps;
try {
comps = session.search("DocSearch1", new String[] {"文档编号"}, new String[] {value});
if(comps.length>0) {
MessageBox.post("","文件编号不唯一,请修改",MessageBox.INFORMATION);
return;
}else {
this.disposeDialog();
this.dispose();
}
} catch (Exception e1) {
// Auto-generated catch block
e1.printStackTrace();
}
}
}else {
this.disposeDialog();
this.dispose();
}
propertyValue.put(mapX.get(me.getKey().getText()), value);
}
this.disposeDialog();
this.dispose();
}
for (Entry<String, String> me : propertyValue.entrySet()) {
TCComponent tccomponentX = form;
String objectType = me.getKey().split("\\.")[0];
String valueType = me.getKey().split("\\.")[1].split(":")[1];
String pname = me.getKey().split("\\.")[1].split(":")[0];
if (objectType.toLowerCase().equals("itemrevisionmaster")) {
tccomponentX = form;
}
if (valueType.toLowerCase().equals("text")) {
tccomponentX.setStringProperty(pname, me.getValue());
} else if (valueType.toLowerCase().equals("lov")) {
String trueValue = (String) tccomponentX.getTCProperty(pname).getLOV().getListOfValues()
.getRealValue(me.getValue());
tccomponentX.setStringProperty(pname, trueValue);
if(pname.equals("ip_classification")) {
System.out.println("设置密级================"+trueValue);
itemX.setStringProperty(pname, trueValue);
form.setStringProperty(pname, trueValue);
itemFormX.setStringProperty(pname, trueValue);
rev.setStringProperty(pname, trueValue);
}
}
}
if(newdataset!=null) {
// 通过cmd的方式运行wsf将属性输出到文件上要注意excel和word两种
// 下载文件
String testPath = "";
testPath = DocumentUtil.downLoadFile(newdataset);
// 获得属性文件
String dataFile = "";
if (testPath.endsWith(".doc") || testPath.endsWith(".docm") || testPath.endsWith(".docx")
|| testPath.endsWith(".xlsm") || testPath.endsWith(".xlsx") || testPath.endsWith(".xls")) {
try {
dataFile = DocumentUtil.jk_SetCAXAFile("Connor_AVIC_NewDocumentThesignM",session,newdataset, true);
} catch (Exception e1) {
e1.printStackTrace();
}
}
String wsfType = "word";
if (testPath.endsWith(".doc") || testPath.endsWith(".docm") || testPath.endsWith(".docx")) {
wsfType = "word";
} else if (testPath.endsWith(".xlsm") || testPath.endsWith(".xlsx") || testPath.endsWith(".xls")) {
wsfType = "excel";
}
// 获取wsf文件所在位置,替换命名引用
String wsfpath = null;
File file = new File(testPath);
String path = testPath.substring(0, testPath.lastIndexOf("\\") + 1);
String suffix = testPath.substring(testPath.lastIndexOf("."), testPath.length());
System.out.println(path);
System.out.println(suffix);
try {
if (wsfType.equals("word")) {
wsfpath = DocumentUtil.getFileFromClass(getClass(), "SubstMacros-MSWord.wsf", System.getenv("Temp"));
DocumentUtil.runWsf(wsfpath, new String[] { testPath, dataFile });
// 文件重命名
testPath = path + objectName + suffix;
File fileDelete=new File(testPath);
if(fileDelete.exists()) {
fileDelete.delete();
}
file.renameTo(new File(testPath));
newdataset.setFiles(new String[] { testPath }, new String[] { "word" });
} else if (wsfType.equals("excel")) {
wsfpath =DocumentUtil.getFileFromClass(getClass(), "SubstMacros-MSExcel.wsf", System.getenv("Temp"));
DocumentUtil.runWsf(wsfpath, new String[] { testPath, dataFile });
// 文件重命名
testPath = path + objectName + suffix;
File fileDelete=new File(testPath);
if(fileDelete.exists()) {
fileDelete.delete();
}
file.renameTo(new File(testPath));
newdataset.setFiles(new String[] { testPath }, new String[] { "excel" });
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
} catch (TCException e1) {
e1.printStackTrace();
}
MessageBox.post("完成","",MessageBox.INFORMATION);
} else if (sourceObj.equals(celButton)) {
this.disposeDialog();
this.dispose();
}else if(sourceObj.equals(searchButton)){
this.getRootPane().setDefaultButton(selectButton);//设置当前面板的默认选中按钮
String[] values=session.getPreferenceService().getStringValues("Connor_AVIC_SearchM");
String[] selectItem=new String[values.length-1];
String[] selectValue=new String[values.length-1];
int i=0;
boolean isNull=true;
for(Entry<JLabel, Object> me:searchMap.entrySet()) {
String key=me.getKey().getText();
JTextField field=(JTextField) me.getValue();
String value=field.getText().trim();
if(value.length()==0) {
value="*";
}else {
value="*"+value+"*";
isNull=false;
}
selectItem[i]=key;
selectValue[i]=value;
i++;
}
if(isNull==true) {
MessageBox.post("所搜条目不能全为空","",MessageBox.INFORMATION);
}else {
try {
TCComponent[] comps=session.search(values[0], selectItem, selectValue);
System.out.println("共有========"+comps.length);
this.disposeDialog();
this.showDialog();
radioButton=new JRadioButton[comps.length];
radioMap=new HashMap<JRadioButton, String>();
resultPanel.removeAll();
// scrollPane.remove(resultPanel);
bg=new ButtonGroup();
//查询结果设置成可配置的属性
String[] properties=session.getPreferenceService().getStringValues("Connor_AVIC_SearchPropertiesM");
if(comps.length==0) {
MessageBox.post("查询结果为空","",MessageBox.INFORMATION);
}
for (int j = 0; j < comps.length; j++) {
TCComponent tcComponent = comps[j];
String name="";
for (int k = 0; k < properties.length; k++) {
//区分版本和对象
TCComponent tcComponent0=null;
String[] ps=properties[k].split("\\.");
System.out.println();
if(ps[0].toUpperCase().equals("REV")){
tcComponent0=tcComponent;
}else if(ps[0].toUpperCase().equals("REVMASTER")) {
tcComponent0=tcComponent.getRelatedComponents("IMAN_master_form_rev")[0];
}else if(ps[0].toUpperCase().equals("ITEM")) {
tcComponent0=((TCComponentItemRevision)tcComponent).getItem();
}
name=name+tcComponent0.getProperty(ps[1]);
if(k<properties.length-1) {
name=name+"-";
}
}
radioButton[j]=new JRadioButton(name);
radioMap.put(radioButton[j], tcComponent.getProperty("item_id"));
bg.add(radioButton[j]);
resultPanel.add((j+1)+".1.left.top",radioButton[j]);
}
// scrollPane.add(resultPanel);
} catch (Exception e1) {
e1.printStackTrace();
}
}
// this.disposeDialog();
// this.dispose();
}else if(sourceObj.equals(selectButton)){
this.getRootPane().setDefaultButton(okButton);//设置当前面板的默认选中按钮
String item_id="";
for(int i=0;i<radioButton.length;i++) {
if(radioButton[i].isSelected()) {
item_id=radioMap.get(radioButton[i]);
// item_id=radioButton[i].getText();
break;
}
}
if(item_id.length()==0) {
MessageBox.post("","",MessageBox.INFORMATION);
}else {
try {
TCComponent[] comp=session.search("零组件 ID", new String[] {"零组件 ID"}, new String[] {item_id});
TCComponentItem item=((TCComponentItem)comp[0]);
TCComponent form=item.getLatestItemRevision().getRelatedComponents("IMAN_master_form_rev")[0];
for(Map.Entry<JLabel, String> me:basicPropertyMap.entrySet()) {
String property=me.getKey().getText();
System.out.println("property========="+property);
String value=form.getProperty(me.getValue());
System.out.println("value========="+value);
JTextField field=(JTextField) basicMap.get(me.getKey());
field.setText(value);
//如果是图样代号取搜索对象的item_id
if(property.startsWith("图样代号")) {
field.setText(item.getProperty("item_id"));
}
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
//创建属性赋值
//名称:型号+文档类别+流水(允许手工修改)
// JTextField field0=null;
// JComboBox<String> combox1=null;
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().startsWith("产品型号")) {
// field0=((JTextField)me.getValue());
}
if(me.getKey().getText().startsWith("文档类别")) {
// combox1=((JComboBox)me.getValue());
}
}
//点击选择不在更新名称,实体文件名称和文件编号
// JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("名称")) {
// field2=((JTextField)me.getValue());
}
}
}
}
String objectName = "";
}

@ -0,0 +1,780 @@
package com.connor.pro105.plm.creatTechWord;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.swing.ButtonGroup;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.AbstractAIFDialog;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentDataset;
import com.teamcenter.rac.kernel.TCComponentForm;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.stylesheet.KPropertyLOVDisplayer;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.rac.util.PropertyLayout;
@SuppressWarnings("unchecked")
public class AlterTechWordDialogS extends AbstractAIFDialog implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
private AbstractAIFApplication app;
private TCSession session;
private JPanel mainJpanel;
private JPanel leftJpanel;
private JPanel basicInfoJpanel;
private JPanel selectItemJpanel;
private JPanel rightJpanel;
private JPanel createInfoJpanel;
// private JTextField pathJTextField;
// private String selectType;
// private String selectSecondDoc;
// private String selectDocCategory;
private JButton okButton;
private JButton celButton;
private JButton searchButton;
private JButton selectButton;
private JCheckBox zjtsyq;
JTextField[] searchField = null;
// JTextField itemNameField=new JTextField(15);
JRadioButton[] radioButton = null;
ButtonGroup bg = new ButtonGroup();
private JPanel bottomJpanel;
// private String exportFile;
// private ProgressBarThread wait;
private TCComponentItemRevision rev=null;
private TCComponentForm form=null;
private TCComponentItem itemX=null;
private TCComponentForm itemFormX=null;
private TCComponentDataset dataset=null;
public AlterTechWordDialogS(AbstractAIFApplication app) {
super(AIFUtility.getActiveDesktop());
this.app = app;
this.session = (TCSession) app.getSession();
rev=(TCComponentItemRevision) app.getTargetComponent();
try {
itemX=rev.getItem();
form=(TCComponentForm) rev.getRelatedComponents("IMAN_master_form_rev")[0];
itemFormX=(TCComponentForm) itemX.getRelatedComponents("IMAN_master_form")[0];
TCComponent[] datasets=rev.getRelatedComponents("IMAN_specification");
if(datasets.length>0) {
dataset=(TCComponentDataset) rev.getRelatedComponents("IMAN_specification")[0];
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void run() {
// super.run();//必须注掉,否则窗口显示不正常
try {
readProperty();// 从excel中读取界面属性信息
} catch (IOException e) {
e.printStackTrace();
}
initUI();
}
Map<String, List<Integer>> map1 = new HashMap<String, List<Integer>>();
Map<String, List<Integer>> map2 = new HashMap<String, List<Integer>>();
Map<String, List<Integer>> map3 = new HashMap<String, List<Integer>>();
Map<String, List<String>> listMap = new HashMap<String, List<String>>();
String[] excelPre = null;
String[] createInfo = null;
Map<String, List<String>> map1_2 = new HashMap<>();
Map<String, List<String>> map2_3 = new HashMap<>();
List<String> list_1 = new ArrayList<>();// 一级所有值:不管是否重复
List<String> jcomboxList_1 = new ArrayList<>();// 一级所有值:不管是否重复
List<String> list_2 = new ArrayList<>();// 二级所有值:不管是否重复
List<String> list_3 = new ArrayList<>();// 三级所有值:不管是否重复
private void readProperty() throws IOException {
excelPre=session.getPreferenceService().getStringValues("Connor_AVIC_NewDocumentBasicS");
createInfo = session.getPreferenceService().getStringValues("Connor_AVIC_AlterDocumentCreationS");
createLabel = new JLabel[createInfo.length];
createText = new JTextField[createInfo.length];
createCom = new JComboBox[createInfo.length];
}
JLabel[] createLabel = null;
JTextField[] createText = null;
JComboBox<String>[] createCom = null;
Dimension dimension = new Dimension(150, 30);
Map<JLabel, Object> basicMap = new HashMap<JLabel, Object>();
Map<JLabel, String> basicPropertyMap = new HashMap<JLabel, String>();
Map<JLabel, Object> createMap = new HashMap<JLabel, Object>();
Map<JLabel, Object> searchMap = new HashMap<JLabel, Object>();
DefaultComboBoxModel<String> model1 = null;
DefaultComboBoxModel<String> model2 = null;
DefaultComboBoxModel<String> model3 = null;
JLabel[] basicLabel=null;
JLabel[] searchLabel=null;
JTextField[] basicText=null;
private void initUI() {
this.setTitle("软件文档修改");
okButton = new JButton("修改");
okButton.addActionListener(this);
this.getRootPane().setDefaultButton(searchButton);//设置当前面板的默认选中按钮
celButton = new JButton("取消");
celButton.addActionListener(this);
searchButton = new JButton("查询");
searchButton.addActionListener(this);
selectButton = new JButton("选择");
selectButton.addActionListener(this);
this.setLayout(new BorderLayout());
this.setSize(850, 550);
mainJpanel = new JPanel(new PropertyLayout());
mainJpanel.setPreferredSize(new Dimension(950, 450));
leftJpanel = new JPanel(new PropertyLayout());
leftJpanel.setPreferredSize(new Dimension(500, 450));
basicInfoJpanel = new JPanel(new PropertyLayout());
selectItemJpanel = new JPanel(new PropertyLayout());
selectItemJpanel.setPreferredSize(new Dimension(500, 300));
rightJpanel = new JPanel(new PropertyLayout());
rightJpanel.setPreferredSize(new Dimension(450, 350));
createInfoJpanel = new JPanel(new PropertyLayout());
// createInfoJpanel.setPreferredSize(new Dimension(400, 280));
basicInfoJpanel.add("1.1.left.top",new JLabel("<html><body><font size=3 color=#3CB371>零组件基本信息</font></body></html>"));
basicLabel=new JLabel[excelPre.length-2];
basicText=new JTextField[excelPre.length-2];
int a=2;
for (int i = 1; i < excelPre.length-1; i++) {
String[] proValue = excelPre[i].split("=");
if(i>3) {
basicLabel[i-1]=new JLabel(proValue[0]);
basicLabel[i-1].setPreferredSize(new Dimension(90,25));
String value2= proValue[1];
if(value2.toLowerCase().startsWith("itemrevisionmaster")) {
basicInfoJpanel.add(a+".1.left.top",new JLabel(" "));
basicInfoJpanel.add(a+".2.left.top", basicLabel[i-1]);
basicText[i-1]=new JTextField(15);
basicInfoJpanel.add(a+".3.left.top", basicText[i-1]);
basicMap.put(basicLabel[i-1],basicText[i-1]);
basicPropertyMap.put(basicLabel[i-1], value2.split("\\.")[1]);
}
// else if(value2.toLowerCase().startsWith("sheet")) {
// basicText[i-1]=new JTextField(15);
// basicInfoJpanel.add(a+".3.left.top", basicText[i-1]);
// basicMap.put(basicLabel[i-1],basicText[i-1]);
// basicPropertyMap.put(basicLabel[i-1], value2.split("\\.")[1]);
// }
a++;
}
}
leftJpanel.add("1.1.left.top",basicInfoJpanel);
int i=1;
selectItemJpanel.add(i+".1.left.top",new JLabel("<html><body><font size=4 color=#3CB371>选 择 零 组 件</font></body></html>"));
i++;
// selectItemJpanel.add(i+".1.left.top",new JLabel(" 查询选择零组件"));
// i++;
String[] values=session.getPreferenceService().getStringValues("Connor_AVIC_SearchS");
searchLabel=new JLabel[values.length-1];
searchField=new JTextField[values.length-1];
for (int j = 0; j < searchField.length; j++) {
searchField[j]=new JTextField(15);
searchLabel[j]=new JLabel(values[j+1]);
searchLabel[j].setPreferredSize(new Dimension(90,25));
searchMap.put(searchLabel[j], searchField[j]);
}
// session.search(arg0, arg1, arg2)
for (int j = 1; j < values.length; j++) {
// String string = values[j];
selectItemJpanel.add(i+".1.left.top",new JLabel(" "));
selectItemJpanel.add(i+".2.left.top",searchLabel[j-1]);
selectItemJpanel.add(i+".3.left.top",searchField[j-1]);
if(j==values.length-1) {
selectItemJpanel.add(i+".4.left.top",searchButton);
}
i++;
}
selectItemJpanel.add(i+".1.left.top",new JLabel(" "));
JLabel label= new JLabel("查询结果");
label.setPreferredSize(new Dimension(90,25));
selectItemJpanel.add(i+".2.left.top",label);
resultPanel=new JPanel(new PropertyLayout());
scrollPane=new JScrollPane(resultPanel);
scrollPane.setPreferredSize(new Dimension(250,150));
scrollPane.getVerticalScrollBar().setUnitIncrement(20);
selectItemJpanel.add(i+".3.left.top",scrollPane);
selectItemJpanel.add(i+".4.left.top",selectButton);
// leftJpanel.add("2.1.left.top",selectItemJpanel);
createInfoJpanel.add("1.1.left.top",
new JLabel("<html><body><font size=3 color=#3CB371>创建信息</font></body></html>"));
int b = 2;
for (int j = 0; j < createInfo.length; j++) {
createInfoJpanel.add(b + ".1.left.top", new JLabel(" "));
String[] string = createInfo[j].split("=");
createLabel[j] = new JLabel(string[0]);
createLabel[j].setPreferredSize(new Dimension(90, 25));
createInfoJpanel.add(b + ".2.left.top", createLabel[j]);
String[] string2=string[1].split(":");
if (string2.length > 1) {
if(string2[0].startsWith("#")) {//TODO
createCom[j] = new MultiCombo(session.getPreferenceService().getStringValues(string2[0].substring(1)));
createCom[j].setPreferredSize(new Dimension(250, 30));
createCom[j].setEditable(true);
createMap.put(createLabel[j], createCom[j]);
createInfoJpanel.add(b+".3.left.top", createCom[j]);
try {
String[] propertyInfo=string2[1].split("\\.");
if(propertyInfo[0].toUpperCase().equals("REVMASTER")) {
((MultiCombo)createCom[j]).setValue(form.getProperty(propertyInfo[1]));
}else if(propertyInfo[0].toUpperCase().equals("ITEM")) {
((MultiCombo)createCom[j]).setValue(itemX.getProperty(propertyInfo[1]));
}
} catch (Exception e1) {
e1.printStackTrace();
}
b++;
continue;
}
DefaultComboBoxModel<String> model;
String[] lovs = string2[0].split(";");
List<String> list = new ArrayList<String>();
for (int k = 0; k < lovs.length; k++) {
list.add(lovs[k]);
}
model = new DefaultComboBoxModel<String>(list.toArray(new String[list.size()]));
createCom[j] = new JComboBox<>(model);
String[] propertyInfo=string2[1].split("\\.");
String propertyValue="";
if(propertyInfo[0].toUpperCase().equals("REVMASTER")) {
try {
propertyValue=form.getTCProperty(propertyInfo[1]).getDisplayValue();
} catch (TCException e1) {
e1.printStackTrace();
}
}
createCom[j].setSelectedItem(propertyValue);
createCom[j].setPreferredSize(new Dimension(100, 30));
createMap.put(createLabel[j], createCom[j]);
createInfoJpanel.add(b + ".3.left.top", createCom[j]);
if(string[0].equals("密级")) {
DocumentUtil.mjCom=createCom[j];
createMap.put(createLabel[j], DocumentUtil.mjCom);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.mjCom);
createCom[j].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
try {
System.out.println("ip_clearance==========="+session.getUser().getStringProperty("ip_clearance"));
} catch (TCException e2) {
e2.printStackTrace();
}
System.out.println("选择了====="+e.getItem().toString());
if (e.getStateChange() == ItemEvent.SELECTED) {
try {
KPropertyLOVDisplayer.checkIP(e.getItem().toString());
} catch (Exception e1) {
DocumentUtil.mjCom.setSelectedIndex(-1);
MessageBox.post("用户密级低于数据修改后的密级,不能够执行此操作!","",MessageBox.INFORMATION);
}
}
}
});
}
} else {
createText[j] = new JTextField(15);
createMap.put(createLabel[j], createText[j]);
String[] propertyInfo=string[1].split("\\.");
String propertyValue="";
TCComponent x=null;
if(propertyInfo[0].toUpperCase().equals("REVMASTER")) {
x=form;
}else if(propertyInfo[0].toUpperCase().equals("REV")) {
x=rev;
}else if(propertyInfo[0].toUpperCase().equals("DATASET")) {
if(dataset!=null) {
x=dataset;
}
}
if(x!=null) {
try {
System.out.println(x==null);
System.out.println(propertyInfo[1]);
System.out.println(x.getTCProperty(propertyInfo[1])==null);
propertyValue=x.getTCProperty(propertyInfo[1]).getDisplayValue();
} catch (TCException e1) {
e1.printStackTrace();
}
createText[j].setText(propertyValue);
createInfoJpanel.add(b + ".3.left.top", createText[j]);
}
}
b++;
}
rightJpanel.add("1.1.left.top", createInfoJpanel);
mainJpanel.add("1.1.left.top",leftJpanel);
mainJpanel.add("1.2.left.top", rightJpanel);
bottomJpanel = new JPanel(new FlowLayout());
bottomJpanel.add(okButton);
bottomJpanel.add(celButton);
// 通过读取首选项,设置那些控件不可编辑(如果jlabel有*,*也得加上)
String[] editable = session.getPreferenceService().getStringValues("Connor_AVIC_AlterEditableS");
for (int j = 0; j < editable.length; j++) {
boolean boo = false;
String string = editable[j];
boo = DocumentUtil.setEditable(createMap, string);
if (boo == false) {
boo = DocumentUtil.setEditable(basicMap, string);
if (boo == false) {
DocumentUtil.setEditable(searchMap, string);
}
}
}
zjtsyq=new JCheckBox("<html><body><font size=3 color=#FF0000>主机特殊要求</font></body></html>");
zjtsyq.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JTextField field=null;
JTextField field1=null;
JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("文件编号")) {
field=((JTextField)me.getValue());
}
}
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().startsWith("产品型号")) {
field1=((JTextField)me.getValue());
}
if(me.getKey().getText().startsWith("图样代号")) {
field2=((JTextField)me.getValue());
}
}
if(zjtsyq.isSelected()) {
field.setEditable(true);
field1.setEditable(true);
field2.setEditable(true);
}else {
field.setEditable(false);
field1.setEditable(false);
field2.setEditable(false);
}
}
});
for(Map.Entry<JLabel, String> me:basicPropertyMap.entrySet()) {
String property=me.getKey().getText();
System.out.println("property========="+property);
try {
String value=form.getProperty(me.getValue());
System.out.println("value========="+value);
JTextField field=(JTextField) basicMap.get(me.getKey());
field.setText(value);
} catch (Exception e1) {
// Auto-generated catch block
e1.printStackTrace();
}
}
// this.add(zjtsyq,BorderLayout.NORTH);
this.add(mainJpanel, BorderLayout.CENTER);
this.add(bottomJpanel, BorderLayout.SOUTH);
this.pack();
this.centerToScreen();
this.showDialog();
}
JPanel resultPanel = new JPanel(new PropertyLayout());
JScrollPane scrollPane = new JScrollPane(resultPanel);
Map<JRadioButton, String> radioMap=new HashMap<JRadioButton, String>();
@Override
public void actionPerformed(ActionEvent e) {
Object sourceObj = e.getSource();
if (sourceObj.equals(okButton)) {
try {
TCComponentDataset newdataset =null;
if(dataset!=null) {
newdataset=dataset;
}
// 名称
JTextField field2 = null;
for (Map.Entry<JLabel, Object> me : createMap.entrySet()) {
if (me.getKey().getText().startsWith("名称")) {
field2 = ((JTextField) me.getValue());
}
}
rev.setStringProperty("object_name", field2.getText());
// 实体文件名称
JTextField field3 = null;
for (Map.Entry<JLabel, Object> me : createMap.entrySet()) {
if (me.getKey().getText().startsWith("实体文件名称")) {
field3 = ((JTextField) me.getValue());
}
}
objectName = field3.getText();
if(newdataset!=null) {
newdataset.setStringProperty("object_name", field3.getText());
}
String[] propertyName = session.getPreferenceService().getStringValues("Connor_AVIC_SetFormPropertyS");
Map<String, String> mapX = new HashMap<>();
for (int i = 0; i < propertyName.length; i++) {
String[] value = propertyName[i].split("=");
mapX.put(value[0], value[1]);
}
Map<String, String> propertyValue = new HashMap<>();
for (java.util.Map.Entry<JLabel, Object> me : basicMap.entrySet()) {
if (mapX.containsKey(me.getKey().getText())) {
String value = "";
try {
value = ((JTextField) me.getValue()).getText();
} catch (Exception e1) {
value = (String) ((JComboBox<String>) me.getValue()).getSelectedItem();
}
propertyValue.put(mapX.get(me.getKey().getText()), value);
}
}
for (java.util.Map.Entry<JLabel, Object> me : createMap.entrySet()) {
if (mapX.containsKey(me.getKey().getText())) {
String value = "";
Object comp = me.getValue();
if(comp instanceof MultiCombo)
value = ((MultiCombo)comp).getValue();//TODO
else if(comp instanceof JTextField)
value=((JTextField)comp).getText();
else
value=(String)((JComboBox<String>)comp).getSelectedItem();
TCComponent tarForm=((TCComponent) app.getTargetComponent()).getRelatedComponents("IMAN_master_form_rev")[0];
if(!tarForm.getProperty("ac5_DocumentNumber").equals(value)) {
if(me.getKey().getText().contains("文件编号")) {
TCComponent[] comps;
try {
comps = session.search("DocSearch1", new String[] {"文档编号"}, new String[] {value});
if(comps.length>0) {
MessageBox.post("","文件编号不唯一,请修改",MessageBox.INFORMATION);
return;
}else {
this.disposeDialog();
this.dispose();
}
} catch (Exception e1) {
// Auto-generated catch block
e1.printStackTrace();
}
}
}else {
this.disposeDialog();
this.dispose();
}
propertyValue.put(mapX.get(me.getKey().getText()), value);
}
this.disposeDialog();
this.dispose();
}
for (java.util.Map.Entry<String, String> me : propertyValue.entrySet()) {
TCComponent tccomponentX = form;
String objectType = me.getKey().split("\\.")[0];
String valueType = me.getKey().split("\\.")[1].split(":")[1];
String pname = me.getKey().split("\\.")[1].split(":")[0];
if (objectType.toLowerCase().equals("itemrevisionmaster")) {
tccomponentX = form;
}
if (valueType.toLowerCase().equals("text")) {
tccomponentX.setStringProperty(pname, me.getValue());
} else if (valueType.toLowerCase().equals("lov")) {
String trueValue = (String) tccomponentX.getTCProperty(pname).getLOV().getListOfValues()
.getRealValue(me.getValue());
tccomponentX.setStringProperty(pname, trueValue);
if(pname.equals("ip_classification")) {
System.out.println("设置密级================"+trueValue);
itemX.setStringProperty(pname, trueValue);
form.setStringProperty(pname, trueValue);
itemFormX.setStringProperty(pname, trueValue);
rev.setStringProperty(pname, trueValue);
}
}
}
if(newdataset!=null) {
// 通过cmd的方式运行wsf将属性输出到文件上要注意excel和word两种
// 下载文件
String testPath = "";
testPath = DocumentUtil.downLoadFile(newdataset);
// 获得属性文件
String dataFile = "";
if (testPath.endsWith(".doc") || testPath.endsWith(".docm") || testPath.endsWith(".docx")
|| testPath.endsWith(".xlsm") || testPath.endsWith(".xlsx") || testPath.endsWith(".xls")) {
try {
dataFile = DocumentUtil.jk_SetCAXAFile("Connor_AVIC_NewDocumentThesignS",session,newdataset, true);
} catch (Exception e1) {
e1.printStackTrace();
}
}
String wsfType = "word";
if (testPath.endsWith(".doc") || testPath.endsWith(".docm") || testPath.endsWith(".docx")) {
wsfType = "word";
} else if (testPath.endsWith(".xlsm") || testPath.endsWith(".xlsx") || testPath.endsWith(".xls")) {
wsfType = "excel";
}
// 获取wsf文件所在位置,替换命名引用
String wsfpath = null;
File file = new File(testPath);
String path = testPath.substring(0, testPath.lastIndexOf("\\") + 1);
String suffix = testPath.substring(testPath.lastIndexOf("."), testPath.length());
System.out.println(path);
System.out.println(suffix);
try {
if (wsfType.equals("word")) {
wsfpath = DocumentUtil.getFileFromClass(getClass(), "SubstMacros-MSWord.wsf", System.getenv("Temp"));
DocumentUtil.runWsf(wsfpath, new String[] { testPath, dataFile });
// 文件重命名
testPath = path + objectName + suffix;
File fileDelete=new File(testPath);
if(fileDelete.exists()) {
fileDelete.delete();
}
file.renameTo(new File(testPath));
newdataset.setFiles(new String[] { testPath }, new String[] { "word" });
} else if (wsfType.equals("excel")) {
wsfpath =DocumentUtil.getFileFromClass(getClass(), "SubstMacros-MSExcel.wsf", System.getenv("Temp"));
DocumentUtil.runWsf(wsfpath, new String[] { testPath, dataFile });
// 文件重命名
testPath = path + objectName + suffix;
File fileDelete=new File(testPath);
if(fileDelete.exists()) {
fileDelete.delete();
}
file.renameTo(new File(testPath));
newdataset.setFiles(new String[] { testPath }, new String[] { "excel" });
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
} catch (TCException e1) {
e1.printStackTrace();
}
MessageBox.post("完成","",MessageBox.INFORMATION);
} else if (sourceObj.equals(celButton)) {
this.disposeDialog();
this.dispose();
}else if(sourceObj.equals(searchButton)){
this.getRootPane().setDefaultButton(selectButton);//设置当前面板的默认选中按钮
String[] values=session.getPreferenceService().getStringValues("Connor_AVIC_SearchS");
String[] selectItem=new String[values.length-1];
String[] selectValue=new String[values.length-1];
int i=0;
boolean isNull=true;
for(java.util.Map.Entry<JLabel, Object> me:searchMap.entrySet()) {
String key=me.getKey().getText();
JTextField field=(JTextField) me.getValue();
String value=field.getText().trim();
if(value.length()==0) {
value="*";
}else {
value="*"+value+"*";
isNull=false;
}
selectItem[i]=key;
selectValue[i]=value;
i++;
}
if(isNull==true) {
MessageBox.post("所搜条目不能全为空","",MessageBox.INFORMATION);
}else {
try {
TCComponent[] comps=session.search(values[0], selectItem, selectValue);
System.out.println("共有========"+comps.length);
this.disposeDialog();
this.showDialog();
radioButton=new JRadioButton[comps.length];
radioMap=new HashMap<JRadioButton, String>();
resultPanel.removeAll();
// scrollPane.remove(resultPanel);
bg=new ButtonGroup();
//查询结果设置成可配置的属性
String[] properties=session.getPreferenceService().getStringValues("Connor_AVIC_SearchPropertiesS");
if(comps.length==0) {
MessageBox.post("查询结果为空","",MessageBox.INFORMATION);
}
for (int j = 0; j < comps.length; j++) {
TCComponent tcComponent = comps[j];
String name="";
for (int k = 0; k < properties.length; k++) {
//区分版本和对象
TCComponent tcComponent0=null;
String[] ps=properties[k].split("\\.");
System.out.println();
if(ps[0].toUpperCase().equals("REV")){
tcComponent0=tcComponent;
}else if(ps[0].toUpperCase().equals("REVMASTER")) {
tcComponent0=tcComponent.getRelatedComponents("IMAN_master_form_rev")[0];
}
name=name+tcComponent0.getProperty(ps[1]);
if(k<properties.length-1) {
name=name+"-";
}
}
radioButton[j]=new JRadioButton(name);
radioMap.put(radioButton[j], tcComponent.getProperty("item_id"));
bg.add(radioButton[j]);
resultPanel.add((j+1)+".1.left.top",radioButton[j]);
}
// scrollPane.add(resultPanel);
} catch (Exception e1) {
e1.printStackTrace();
}
}
// this.disposeDialog();
// this.dispose();
}else if(sourceObj.equals(selectButton)){
this.getRootPane().setDefaultButton(okButton);//设置当前面板的默认选中按钮
String item_id="";
for(int i=0;i<radioButton.length;i++) {
if(radioButton[i].isSelected()) {
item_id=radioMap.get(radioButton[i]);
// item_id=radioButton[i].getText();
break;
}
}
if(item_id.length()==0) {
MessageBox.post("","",MessageBox.INFORMATION);
}else {
try {
TCComponent[] comp=session.search("零组件 ID", new String[] {"零组件 ID"}, new String[] {item_id});
TCComponentItem item=((TCComponentItem)comp[0]);
TCComponent form=item.getLatestItemRevision().getRelatedComponents("IMAN_master_form_rev")[0];
for(Map.Entry<JLabel, String> me:basicPropertyMap.entrySet()) {
String property=me.getKey().getText();
System.out.println("property========="+property);
String value=form.getProperty(me.getValue());
System.out.println("value========="+value);
JTextField field=(JTextField) basicMap.get(me.getKey());
field.setText(value);
//如果是图样代号取搜索对象的item_id
if(property.startsWith("图样代号")) {
field.setText(item.getProperty("item_id"));
}
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
//创建属性赋值
//名称:型号+文档类别+流水(允许手工修改)
// JTextField field0=null;
// JComboBox<String> combox1=null;
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().startsWith("产品型号")) {
// field0=((JTextField)me.getValue());
}
if(me.getKey().getText().startsWith("文档类别")) {
// combox1=((JComboBox)me.getValue());
}
}
//点击选择不在更新名称,实体文件名称和文件编号
// JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("名称")) {
// field2=((JTextField)me.getValue());
}
}
}
}
String objectName = "";
}

@ -0,0 +1,779 @@
package com.connor.pro105.plm.creatTechWord;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.swing.ButtonGroup;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.AbstractAIFDialog;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentDataset;
import com.teamcenter.rac.kernel.TCComponentForm;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.stylesheet.KPropertyLOVDisplayer;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.rac.util.PropertyLayout;
@SuppressWarnings("unchecked")
public class AlterTechWordDialogW extends AbstractAIFDialog implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
private AbstractAIFApplication app;
private TCSession session;
private JPanel mainJpanel;
private JPanel leftJpanel;
private JPanel basicInfoJpanel;
private JPanel selectItemJpanel;
private JPanel rightJpanel;
private JPanel createInfoJpanel;
// private JTextField pathJTextField;
// private String selectType;
// private String selectSecondDoc;
// private String selectDocCategory;
private JButton okButton;
private JButton celButton;
private JButton searchButton;
private JButton selectButton;
private JCheckBox zjtsyq;
JTextField[] searchField = null;
// JTextField itemNameField=new JTextField(15);
JRadioButton[] radioButton = null;
ButtonGroup bg = new ButtonGroup();
private JPanel bottomJpanel;
// private String exportFile;
// private ProgressBarThread wait;
private TCComponentItemRevision rev=null;
private TCComponentForm form=null;
private TCComponentItem itemX=null;
private TCComponentForm itemFormX=null;
private TCComponentDataset dataset=null;
public AlterTechWordDialogW(AbstractAIFApplication app) {
super(AIFUtility.getActiveDesktop());
this.app = app;
this.session = (TCSession) app.getSession();
rev=(TCComponentItemRevision) app.getTargetComponent();
try {
itemX=rev.getItem();
form=(TCComponentForm) rev.getRelatedComponents("IMAN_master_form_rev")[0];
itemFormX=(TCComponentForm) itemX.getRelatedComponents("IMAN_master_form")[0];
TCComponent[] datasets=rev.getRelatedComponents("IMAN_specification");
if(datasets.length>0) {
dataset=(TCComponentDataset) rev.getRelatedComponents("IMAN_specification")[0];
}
} catch (TCException e) {
e.printStackTrace();
}
}
@Override
public void run() {
// super.run();//必须注掉,否则窗口显示不正常
try {
readProperty();// 从excel中读取界面属性信息
} catch (IOException e) {
e.printStackTrace();
}
initUI();
}
Map<String, List<Integer>> map1 = new HashMap<String, List<Integer>>();
Map<String, List<Integer>> map2 = new HashMap<String, List<Integer>>();
Map<String, List<Integer>> map3 = new HashMap<String, List<Integer>>();
Map<String, List<String>> listMap = new HashMap<String, List<String>>();
String[] excelPre = null;
String[] createInfo = null;
Map<String, List<String>> map1_2 = new HashMap<>();
Map<String, List<String>> map2_3 = new HashMap<>();
List<String> list_1 = new ArrayList<>();// 一级所有值:不管是否重复
List<String> jcomboxList_1 = new ArrayList<>();// 一级所有值:不管是否重复
List<String> list_2 = new ArrayList<>();// 二级所有值:不管是否重复
List<String> list_3 = new ArrayList<>();// 三级所有值:不管是否重复
private void readProperty() throws IOException {
excelPre=session.getPreferenceService().getStringValues("Connor_AVIC_NewDocumentBasicW");
createInfo = session.getPreferenceService().getStringValues("Connor_AVIC_AlterDocumentCreationW");
createLabel = new JLabel[createInfo.length];
createText = new JTextField[createInfo.length];
createCom = new JComboBox[createInfo.length];
}
JLabel[] createLabel = null;
JTextField[] createText = null;
JComboBox<String>[] createCom = null;
Dimension dimension = new Dimension(150, 30);
Map<JLabel, Object> basicMap = new HashMap<JLabel, Object>();
Map<JLabel, String> basicPropertyMap = new HashMap<JLabel, String>();
Map<JLabel, Object> createMap = new HashMap<JLabel, Object>();
Map<JLabel, Object> searchMap = new HashMap<JLabel, Object>();
DefaultComboBoxModel<String> model1 = null;
DefaultComboBoxModel<String> model2 = null;
DefaultComboBoxModel<String> model3 = null;
JLabel[] basicLabel=null;
JLabel[] searchLabel=null;
JTextField[] basicText=null;
private void initUI() {
this.setTitle("无型别文档修改");
okButton = new JButton("修改");
okButton.addActionListener(this);
this.getRootPane().setDefaultButton(searchButton);//设置当前面板的默认选中按钮
celButton = new JButton("取消");
celButton.addActionListener(this);
searchButton = new JButton("查询");
searchButton.addActionListener(this);
selectButton = new JButton("选择");
selectButton.addActionListener(this);
this.setLayout(new BorderLayout());
this.setSize(850, 550);
mainJpanel = new JPanel(new PropertyLayout());
mainJpanel.setPreferredSize(new Dimension(950, 450));
leftJpanel = new JPanel(new PropertyLayout());
leftJpanel.setPreferredSize(new Dimension(500, 450));
basicInfoJpanel = new JPanel(new PropertyLayout());
selectItemJpanel = new JPanel(new PropertyLayout());
selectItemJpanel.setPreferredSize(new Dimension(500, 300));
rightJpanel = new JPanel(new PropertyLayout());
rightJpanel.setPreferredSize(new Dimension(450, 350));
createInfoJpanel = new JPanel(new PropertyLayout());
// createInfoJpanel.setPreferredSize(new Dimension(400, 280));
basicInfoJpanel.add("1.1.left.top",new JLabel("<html><body><font size=3 color=#3CB371>零组件基本信息</font></body></html>"));
basicLabel=new JLabel[excelPre.length-2];
basicText=new JTextField[excelPre.length-2];
int a=2;
for (int i = 1; i < excelPre.length-1; i++) {
String[] proValue = excelPre[i].split("=");
if(i>3) {
basicLabel[i-1]=new JLabel(proValue[0]);
basicLabel[i-1].setPreferredSize(new Dimension(90,25));
String value2= proValue[1];
if(value2.toLowerCase().startsWith("itemrevisionmaster")) {
basicInfoJpanel.add(a+".1.left.top",new JLabel(" "));
basicInfoJpanel.add(a+".2.left.top", basicLabel[i-1]);
basicText[i-1]=new JTextField(15);
basicInfoJpanel.add(a+".3.left.top", basicText[i-1]);
basicMap.put(basicLabel[i-1],basicText[i-1]);
basicPropertyMap.put(basicLabel[i-1], value2.split("\\.")[1]);
}
// else if(value2.toLowerCase().startsWith("sheet")) {
// basicText[i-1]=new JTextField(15);
// basicInfoJpanel.add(a+".3.left.top", basicText[i-1]);
// basicMap.put(basicLabel[i-1],basicText[i-1]);
// basicPropertyMap.put(basicLabel[i-1], value2.split("\\.")[1]);
// }
a++;
}
}
leftJpanel.add("1.1.left.top",basicInfoJpanel);
int i=1;
selectItemJpanel.add(i+".1.left.top",new JLabel("<html><body><font size=4 color=#3CB371>选 择 零 组 件</font></body></html>"));
i++;
// selectItemJpanel.add(i+".1.left.top",new JLabel(" 查询选择零组件"));
// i++;
String[] values=session.getPreferenceService().getStringValues("Connor_AVIC_SearchW");
searchLabel=new JLabel[values.length-1];
searchField=new JTextField[values.length-1];
for (int j = 0; j < searchField.length; j++) {
searchField[j]=new JTextField(15);
searchLabel[j]=new JLabel(values[j+1]);
searchLabel[j].setPreferredSize(new Dimension(90,25));
searchMap.put(searchLabel[j], searchField[j]);
}
// session.search(arg0, arg1, arg2)
for (int j = 1; j < values.length; j++) {
// String string = values[j];
selectItemJpanel.add(i+".1.left.top",new JLabel(" "));
selectItemJpanel.add(i+".2.left.top",searchLabel[j-1]);
selectItemJpanel.add(i+".3.left.top",searchField[j-1]);
if(j==values.length-1) {
selectItemJpanel.add(i+".4.left.top",searchButton);
}
i++;
}
selectItemJpanel.add(i+".1.left.top",new JLabel(" "));
JLabel label= new JLabel("查询结果");
label.setPreferredSize(new Dimension(90,25));
selectItemJpanel.add(i+".2.left.top",label);
resultPanel=new JPanel(new PropertyLayout());
scrollPane=new JScrollPane(resultPanel);
scrollPane.setPreferredSize(new Dimension(250,150));
scrollPane.getVerticalScrollBar().setUnitIncrement(20);
selectItemJpanel.add(i+".3.left.top",scrollPane);
selectItemJpanel.add(i+".4.left.top",selectButton);
// leftJpanel.add("2.1.left.top",selectItemJpanel);
createInfoJpanel.add("1.1.left.top",
new JLabel("<html><body><font size=3 color=#3CB371>创建信息</font></body></html>"));
int b = 2;
for (int j = 0; j < createInfo.length; j++) {
createInfoJpanel.add(b + ".1.left.top", new JLabel(" "));
String[] string = createInfo[j].split("=");
createLabel[j] = new JLabel(string[0]);
createLabel[j].setPreferredSize(new Dimension(90, 25));
createInfoJpanel.add(b + ".2.left.top", createLabel[j]);
String[] string2=string[1].split(":");
if (string2.length > 1) {
if(string2[0].startsWith("#")) {//TODO
createCom[j] = new MultiCombo(session.getPreferenceService().getStringValues(string2[0].substring(1)));
createCom[j].setPreferredSize(new Dimension(250, 30));
createCom[j].setEditable(true);
createMap.put(createLabel[j], createCom[j]);
createInfoJpanel.add(b+".3.left.top", createCom[j]);
try {
String[] propertyInfo=string2[1].split("\\.");
if(propertyInfo[0].toUpperCase().equals("REVMASTER")) {
((MultiCombo)createCom[j]).setValue(form.getProperty(propertyInfo[1]));
}else if(propertyInfo[0].toUpperCase().equals("ITEM")) {
((MultiCombo)createCom[j]).setValue(itemX.getProperty(propertyInfo[1]));
}
} catch (Exception e1) {
e1.printStackTrace();
}
b++;
continue;
}
DefaultComboBoxModel<String> model;
String[] lovs = string2[0].split(";");
List<String> list = new ArrayList<String>();
for (int k = 0; k < lovs.length; k++) {
list.add(lovs[k]);
}
model = new DefaultComboBoxModel<String>(list.toArray(new String[list.size()]));
createCom[j] = new JComboBox<>(model);
String[] propertyInfo=string2[1].split("\\.");
String propertyValue="";
if(propertyInfo[0].toUpperCase().equals("REVMASTER")) {
try {
propertyValue=form.getTCProperty(propertyInfo[1]).getDisplayValue();
} catch (TCException e1) {
e1.printStackTrace();
}
}
createCom[j].setSelectedItem(propertyValue);
createCom[j].setPreferredSize(new Dimension(100, 30));
createMap.put(createLabel[j], createCom[j]);
createInfoJpanel.add(b + ".3.left.top", createCom[j]);
if(string[0].equals("密级")) {
DocumentUtil.mjCom=createCom[j];
createMap.put(createLabel[j], DocumentUtil.mjCom);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.mjCom);
createCom[j].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
try {
System.out.println("ip_clearance==========="+session.getUser().getStringProperty("ip_clearance"));
} catch (TCException e2) {
e2.printStackTrace();
}
System.out.println("选择了====="+e.getItem().toString());
if (e.getStateChange() == ItemEvent.SELECTED) {
try {
KPropertyLOVDisplayer.checkIP(e.getItem().toString());
} catch (Exception e1) {
DocumentUtil.mjCom.setSelectedIndex(-1);
MessageBox.post("用户密级低于数据修改后的密级,不能够执行此操作!","",MessageBox.INFORMATION);
}
}
}
});
}
} else {
createText[j] = new JTextField(15);
createMap.put(createLabel[j], createText[j]);
String[] propertyInfo=string[1].split("\\.");
String propertyValue="";
TCComponent x=null;
if(propertyInfo[0].toUpperCase().equals("REVMASTER")) {
x=form;
}else if(propertyInfo[0].toUpperCase().equals("REV")) {
x=rev;
}else if(propertyInfo[0].toUpperCase().equals("DATASET")) {
if(dataset!=null) {
x=dataset;
}
}
if(x!=null) {
try {
System.out.println(x==null);
System.out.println(propertyInfo[1]);
System.out.println(x.getTCProperty(propertyInfo[1])==null);
propertyValue=x.getTCProperty(propertyInfo[1]).getDisplayValue();
} catch (TCException e1) {
e1.printStackTrace();
}
createText[j].setText(propertyValue);
createInfoJpanel.add(b + ".3.left.top", createText[j]);
}
}
b++;
}
rightJpanel.add("1.1.left.top", createInfoJpanel);
mainJpanel.add("1.1.left.top",leftJpanel);
mainJpanel.add("1.2.left.top", rightJpanel);
bottomJpanel = new JPanel(new FlowLayout());
bottomJpanel.add(okButton);
bottomJpanel.add(celButton);
// 通过读取首选项,设置那些控件不可编辑(如果jlabel有*,*也得加上)
String[] editable = session.getPreferenceService().getStringValues("Connor_AVIC_AlterEditableW");
for (int j = 0; j < editable.length; j++) {
boolean boo = false;
String string = editable[j];
boo = DocumentUtil.setEditable(createMap, string);
if (boo == false) {
boo = DocumentUtil.setEditable(basicMap, string);
if (boo == false) {
DocumentUtil.setEditable(searchMap, string);
}
}
}
zjtsyq=new JCheckBox("<html><body><font size=3 color=#FF0000>主机特殊要求</font></body></html>");
zjtsyq.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JTextField field=null;
JTextField field1=null;
JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("文件编号")) {
field=((JTextField)me.getValue());
}
}
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().startsWith("产品型号")) {
field1=((JTextField)me.getValue());
}
if(me.getKey().getText().startsWith("图样代号")) {
field2=((JTextField)me.getValue());
}
}
if(zjtsyq.isSelected()) {
field.setEditable(true);
field1.setEditable(true);
field2.setEditable(true);
}else {
field.setEditable(false);
field1.setEditable(false);
field2.setEditable(false);
}
}
});
for(Map.Entry<JLabel, String> me:basicPropertyMap.entrySet()) {
String property=me.getKey().getText();
System.out.println("property========="+property);
try {
String value=form.getProperty(me.getValue());
System.out.println("value========="+value);
JTextField field=(JTextField) basicMap.get(me.getKey());
field.setText(value);
} catch (Exception e1) {
// Auto-generated catch block
e1.printStackTrace();
}
}
// this.add(zjtsyq,BorderLayout.NORTH);
this.add(mainJpanel, BorderLayout.CENTER);
this.add(bottomJpanel, BorderLayout.SOUTH);
this.pack();
this.centerToScreen();
this.showDialog();
}
JPanel resultPanel = new JPanel(new PropertyLayout());
JScrollPane scrollPane = new JScrollPane(resultPanel);
Map<JRadioButton, String> radioMap=new HashMap<JRadioButton, String>();
@Override
public void actionPerformed(ActionEvent e) {
Object sourceObj = e.getSource();
if (sourceObj.equals(okButton)) {
try {
TCComponentDataset newdataset =null;
if(dataset!=null) {
newdataset=dataset;
}
// 名称
JTextField field2 = null;
for (Map.Entry<JLabel, Object> me : createMap.entrySet()) {
if (me.getKey().getText().startsWith("名称")) {
field2 = ((JTextField) me.getValue());
}
}
rev.setStringProperty("object_name", field2.getText());
// 实体文件名称
JTextField field3 = null;
for (Map.Entry<JLabel, Object> me : createMap.entrySet()) {
if (me.getKey().getText().startsWith("实体文件名称")) {
field3 = ((JTextField) me.getValue());
}
}
objectName = field3.getText();
if(newdataset!=null) {
newdataset.setStringProperty("object_name", field3.getText());
}
String[] propertyName = session.getPreferenceService().getStringValues("Connor_AVIC_SetFormPropertyW");
Map<String, String> mapX = new HashMap<>();
for (int i = 0; i < propertyName.length; i++) {
String[] value = propertyName[i].split("=");
mapX.put(value[0], value[1]);
}
Map<String, String> propertyValue = new HashMap<>();
for (java.util.Map.Entry<JLabel, Object> me : basicMap.entrySet()) {
if (mapX.containsKey(me.getKey().getText())) {
String value = "";
try {
value = ((JTextField) me.getValue()).getText();
} catch (Exception e1) {
value = (String) ((JComboBox<String>) me.getValue()).getSelectedItem();
}
propertyValue.put(mapX.get(me.getKey().getText()), value);
}
}
for (java.util.Map.Entry<JLabel, Object> me : createMap.entrySet()) {
if (mapX.containsKey(me.getKey().getText())) {
String value = "";
Object comp = me.getValue();
if(comp instanceof MultiCombo)
value = ((MultiCombo)comp).getValue();//TODO
else if(comp instanceof JTextField)
value=((JTextField)comp).getText();
else
value=(String)((JComboBox<String>)comp).getSelectedItem();
TCComponent tarForm=((TCComponent) app.getTargetComponent()).getRelatedComponents("IMAN_master_form_rev")[0];
if(!tarForm.getProperty("ac5_DocumentNumber").equals(value)) {
if(me.getKey().getText().contains("文件编号")) {
TCComponent[] comps;
try {
comps = session.search("DocSearch1", new String[] {"文档编号"}, new String[] {value});
if(comps.length>0) {
MessageBox.post("","文件编号不唯一,请修改",MessageBox.INFORMATION);
return;
}else {
this.disposeDialog();
this.dispose();
}
} catch (Exception e1) {
// Auto-generated catch block
e1.printStackTrace();
}
}
}else {
this.disposeDialog();
this.dispose();
}
propertyValue.put(mapX.get(me.getKey().getText()), value);
}
this.disposeDialog();
this.dispose();
}
for (java.util.Map.Entry<String, String> me : propertyValue.entrySet()) {
TCComponent tccomponentX = form;
String objectType = me.getKey().split("\\.")[0];
String valueType = me.getKey().split("\\.")[1].split(":")[1];
String pname = me.getKey().split("\\.")[1].split(":")[0];
if (objectType.toLowerCase().equals("itemrevisionmaster")) {
tccomponentX = form;
}
if (valueType.toLowerCase().equals("text")) {
tccomponentX.setStringProperty(pname, me.getValue());
} else if (valueType.toLowerCase().equals("lov")) {
String trueValue = (String) tccomponentX.getTCProperty(pname).getLOV().getListOfValues()
.getRealValue(me.getValue());
tccomponentX.setStringProperty(pname, trueValue);
if(pname.equals("ip_classification")) {
System.out.println("设置密级================"+trueValue);
itemX.setStringProperty(pname, trueValue);
form.setStringProperty(pname, trueValue);
itemFormX.setStringProperty(pname, trueValue);
rev.setStringProperty(pname, trueValue);
}
}
}
if(newdataset!=null) {
// 通过cmd的方式运行wsf将属性输出到文件上要注意excel和word两种
// 下载文件
String testPath = "";
testPath = DocumentUtil.downLoadFile(newdataset);
// 获得属性文件
String dataFile = "";
if (testPath.endsWith(".doc") || testPath.endsWith(".docm") || testPath.endsWith(".docx")
|| testPath.endsWith(".xlsm") || testPath.endsWith(".xlsx") || testPath.endsWith(".xls")) {
try {
dataFile = DocumentUtil.jk_SetCAXAFile("Connor_AVIC_NewDocumentThesignW",session,newdataset, true);
} catch (TCException e1) {
e1.printStackTrace();
}
}
String wsfType = "word";
if (testPath.endsWith(".doc") || testPath.endsWith(".docm") || testPath.endsWith(".docx")) {
wsfType = "word";
} else if (testPath.endsWith(".xlsm") || testPath.endsWith(".xlsx") || testPath.endsWith(".xls")) {
wsfType = "excel";
}
// 获取wsf文件所在位置,替换命名引用
String wsfpath = null;
File file = new File(testPath);
String path = testPath.substring(0, testPath.lastIndexOf("\\") + 1);
String suffix = testPath.substring(testPath.lastIndexOf("."), testPath.length());
System.out.println(path);
System.out.println(suffix);
try {
if (wsfType.equals("word")) {
wsfpath = DocumentUtil.getFileFromClass(getClass(), "SubstMacros-MSWord.wsf", System.getenv("Temp"));
DocumentUtil.runWsf(wsfpath, new String[] { testPath, dataFile });
// 文件重命名
testPath = path + objectName + suffix;
File fileDelete=new File(testPath);
if(fileDelete.exists()) {
fileDelete.delete();
}
file.renameTo(new File(testPath));
newdataset.setFiles(new String[] { testPath }, new String[] { "word" });
} else if (wsfType.equals("excel")) {
wsfpath =DocumentUtil.getFileFromClass(getClass(), "SubstMacros-MSExcel.wsf", System.getenv("Temp"));
DocumentUtil.runWsf(wsfpath, new String[] { testPath, dataFile });
// 文件重命名
testPath = path + objectName + suffix;
File fileDelete=new File(testPath);
if(fileDelete.exists()) {
fileDelete.delete();
}
file.renameTo(new File(testPath));
newdataset.setFiles(new String[] { testPath }, new String[] { "excel" });
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
} catch (TCException e1) {
e1.printStackTrace();
}
MessageBox.post("完成","",MessageBox.INFORMATION);
} else if (sourceObj.equals(celButton)) {
this.disposeDialog();
this.dispose();
}else if(sourceObj.equals(searchButton)){
this.getRootPane().setDefaultButton(selectButton);//设置当前面板的默认选中按钮
String[] values=session.getPreferenceService().getStringValues("Connor_AVIC_SearchW");
String[] selectItem=new String[values.length-1];
String[] selectValue=new String[values.length-1];
int i=0;
boolean isNull=true;
for(java.util.Map.Entry<JLabel, Object> me:searchMap.entrySet()) {
String key=me.getKey().getText();
JTextField field=(JTextField) me.getValue();
String value=field.getText().trim();
if(value.length()==0) {
value="*";
}else {
value="*"+value+"*";
isNull=false;
}
selectItem[i]=key;
selectValue[i]=value;
i++;
}
if(isNull==true) {
MessageBox.post("所搜条目不能全为空","",MessageBox.INFORMATION);
}else {
try {
TCComponent[] comps=session.search(values[0], selectItem, selectValue);
System.out.println("共有========"+comps.length);
this.disposeDialog();
this.showDialog();
radioButton=new JRadioButton[comps.length];
radioMap=new HashMap<JRadioButton, String>();
resultPanel.removeAll();
// scrollPane.remove(resultPanel);
bg=new ButtonGroup();
//查询结果设置成可配置的属性
String[] properties=session.getPreferenceService().getStringValues("Connor_AVIC_SearchPropertiesW");
if(comps.length==0) {
MessageBox.post("查询结果为空","",MessageBox.INFORMATION);
}
for (int j = 0; j < comps.length; j++) {
TCComponent tcComponent = comps[j];
String name="";
for (int k = 0; k < properties.length; k++) {
//区分版本和对象
TCComponent tcComponent0=null;
String[] ps=properties[k].split("\\.");
System.out.println();
if(ps[0].toUpperCase().equals("REV")){
tcComponent0=tcComponent;
}else if(ps[0].toUpperCase().equals("REVMASTER")) {
tcComponent0=tcComponent.getRelatedComponents("IMAN_master_form_rev")[0];
}
name=name+tcComponent0.getProperty(ps[1]);
if(k<properties.length-1) {
name=name+"-";
}
}
radioButton[j]=new JRadioButton(name);
radioMap.put(radioButton[j], tcComponent.getProperty("item_id"));
bg.add(radioButton[j]);
resultPanel.add((j+1)+".1.left.top",radioButton[j]);
}
// scrollPane.add(resultPanel);
} catch (Exception e1) {
e1.printStackTrace();
}
}
// this.disposeDialog();
// this.dispose();
}else if(sourceObj.equals(selectButton)){
this.getRootPane().setDefaultButton(okButton);//设置当前面板的默认选中按钮
String item_id="";
for(int i=0;i<radioButton.length;i++) {
if(radioButton[i].isSelected()) {
item_id=radioMap.get(radioButton[i]);
// item_id=radioButton[i].getText();
break;
}
}
if(item_id.length()==0) {
MessageBox.post("","",MessageBox.INFORMATION);
}else {
try {
TCComponent[] comp=session.search("零组件 ID", new String[] {"零组件 ID"}, new String[] {item_id});
TCComponentItem item=((TCComponentItem)comp[0]);
TCComponent form=item.getLatestItemRevision().getRelatedComponents("IMAN_master_form_rev")[0];
for(Map.Entry<JLabel, String> me:basicPropertyMap.entrySet()) {
String property=me.getKey().getText();
System.out.println("property========="+property);
String value=form.getProperty(me.getValue());
System.out.println("value========="+value);
JTextField field=(JTextField) basicMap.get(me.getKey());
field.setText(value);
//如果是图样代号取搜索对象的item_id
if(property.startsWith("图样代号")) {
field.setText(item.getProperty("item_id"));
}
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
//创建属性赋值
//名称:型号+文档类别+流水(允许手工修改)
// JTextField field0=null;
// JComboBox<String> combox1=null;
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().startsWith("产品型号")) {
// field0=((JTextField)me.getValue());
}
if(me.getKey().getText().startsWith("文档类别")) {
// combox1=((JComboBox)me.getValue());
}
}
//点击选择不在更新名称,实体文件名称和文件编号
// JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("名称")) {
// field2=((JTextField)me.getValue());
}
}
}
}
String objectName = "";
}

@ -0,0 +1,86 @@
package com.connor.pro105.plm.creatTechWord;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.common.NotDefinedException;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.util.MessageBox;
public class AlterTechWordHandler extends AbstractHandler {
;
@Override
public Object execute(ExecutionEvent arg0) throws ExecutionException {
String commandID=arg0.getCommand().getId();
AbstractAIFApplication app=AIFUtility.getCurrentApplication();
if(app.getTargetComponent()==null) {
MessageBox.post("请选择文档版本","",MessageBox.INFORMATION);
}else {
try {
System.out.println(app.getTargetComponent().getProperty("object_type"));
if(commandID.equals("alterTechWordC")) {
if( app.getTargetComponent().getProperty("object_type").equals("民机技术文档版本")||app.getTargetComponent().getProperty("object_type").equals("Civil Doc Revision")
) {
if(((TCComponent)app.getTargetComponent()).getProperty("release_status_list").length()>0) {
MessageBox.post("此文件已发布,不可修改","",MessageBox.INFORMATION);
} else {
AlterTechWordAction action=new AlterTechWordAction(commandID,app,null);
new Thread(action).start();
}
}else {
MessageBox.post("请选择民机技术文档版本","",MessageBox.INFORMATION);
}
}else if(commandID.equals("alterTechWordM")) {
if( app.getTargetComponent().getProperty("object_type").equals("军机技术文档版本")||app.getTargetComponent().getProperty("object_type").equals("Military Doc Revision")
) {
if(((TCComponent)app.getTargetComponent()).getProperty("release_status_list").length()>0) {
MessageBox.post("此文件已发布,不可修改","",MessageBox.INFORMATION);
} else {
AlterTechWordAction action=new AlterTechWordAction(commandID,app,null);
new Thread(action).start();
}
}else {
MessageBox.post("请选择军机技术文档版本","",MessageBox.INFORMATION);
}
}else if(commandID.equals("alterTechWordW")) {
if( app.getTargetComponent().getProperty("object_type").equals("无型别技术文档版本")||app.getTargetComponent().getProperty("object_type").equals("General Doc Revision")
) {
if(((TCComponent)app.getTargetComponent()).getProperty("release_status_list").length()>0) {
MessageBox.post("此文件已发布,不可修改","",MessageBox.INFORMATION);
} else {
AlterTechWordAction action=new AlterTechWordAction(commandID,app,null);
new Thread(action).start();
}
}else {
MessageBox.post("请选择无型别技术文档版本","",MessageBox.INFORMATION);
}
}else if(commandID.equals("alterTechWordS")) {
if( app.getTargetComponent().getProperty("object_type").equals("软件技术文档版本")||app.getTargetComponent().getProperty("object_type").equals("Soft Tech Doc Revision")
) {
if(((TCComponent)app.getTargetComponent()).getProperty("release_status_list").length()>0) {
MessageBox.post("此文件已发布,不可修改","",MessageBox.INFORMATION);
} else {
AlterTechWordAction action=new AlterTechWordAction(commandID,app,null);
new Thread(action).start();
}
}else {
MessageBox.post("请选择软件技术文档版本","",MessageBox.INFORMATION);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
}

@ -0,0 +1,52 @@
package com.connor.pro105.plm.creatTechWord;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.common.actions.AbstractAIFAction;
import com.teamcenter.rac.kernel.TCComponentBOMLine;
import com.teamcenter.rac.kernel.TCComponentBOMViewRevision;
import com.teamcenter.rac.kernel.TCComponentBOMWindow;
import com.teamcenter.rac.kernel.TCComponentBOMWindowType;
public class CreatTechWordAction extends AbstractAIFAction {
private AbstractAIFApplication app;
String opType;
String commandID;
public CreatTechWordAction(String commandID,String opType, AbstractAIFApplication app, String String) {
super(app, String);
this.opType=opType;
this.app=app;
this.commandID=commandID;
}
@Override
public void run() {
if(commandID.equals("creatTechWordC")) {
CreatTechWordDialogC dialog=new CreatTechWordDialogC(opType,app);
new Thread(dialog).start();
}else if(commandID.equals("creatTechWordM")) {
CreatTechWordDialogM dialog=new CreatTechWordDialogM(opType,app);
new Thread(dialog).start();
}else if(commandID.equals("creatTechWordW")) {
CreatTechWordDialogW dialog=new CreatTechWordDialogW(opType,app);
new Thread(dialog).start();
}else if(commandID.equals("creatTechWordS")) {
CreatTechWordDialogS dialog=new CreatTechWordDialogS(opType,app);
new Thread(dialog).start();
}
}
}

@ -0,0 +1,121 @@
package com.connor.pro105.plm.creatTechWord;
public class CreatTechWordBean {
private String item_id;//项目风险号
public String getItem_id() {
return item_id;
}
public void setItem_id(String item_id) {
this.item_id = item_id;
}
public String getXmlh() {
return xmlh;
}
public void setXmlh(String xmlh) {
this.xmlh = xmlh;
}
public String getHxc8jingli() {
return hxc8jingli;
}
public void setHxc8jingli(String hxc8jingli) {
this.hxc8jingli = hxc8jingli;
}
public String getHxc8cp() {
return hxc8cp;
}
public void setHxc8cp(String hxc8cp) {
this.hxc8cp = hxc8cp;
}
public String getHxc8kh() {
return hxc8kh;
}
public void setHxc8kh(String hxc8kh) {
this.hxc8kh = hxc8kh;
}
public String getHxc8cxdm() {
return hxc8cxdm;
}
public void setHxc8cxdm(String hxc8cxdm) {
this.hxc8cxdm = hxc8cxdm;
}
public String getHxc8scjd() {
return hxc8scjd;
}
public void setHxc8scjd(String hxc8scjd) {
this.hxc8scjd = hxc8scjd;
}
public String getHxc8ycl() {
return hxc8ycl;
}
public void setHxc8ycl(String hxc8ycl) {
this.hxc8ycl = hxc8ycl;
}
public String getHxc8jieduan() {
return hxc8jieduan;
}
public void setHxc8jieduan(String hxc8jieduan) {
this.hxc8jieduan = hxc8jieduan;
}
public String getHxc8miaoshu() {
return hxc8miaoshu;
}
public void setHxc8miaoshu(String hxc8miaoshu) {
this.hxc8miaoshu = hxc8miaoshu;
}
public String getHxc8result() {
return hxc8result;
}
public void setHxc8result(String hxc8result) {
this.hxc8result = hxc8result;
}
public String getHxc8risk() {
return hxc8risk;
}
public void setHxc8risk(String hxc8risk) {
this.hxc8risk = hxc8risk;
}
public String getHxc8plan() {
return hxc8plan;
}
public void setHxc8plan(String hxc8plan) {
this.hxc8plan = hxc8plan;
}
public String getHxc8finish() {
return hxc8finish;
}
public void setHxc8finish(String hxc8finish) {
this.hxc8finish = hxc8finish;
}
public String getHxc8zr() {
return hxc8zr;
}
public void setHxc8zr(String hxc8zr) {
this.hxc8zr = hxc8zr;
}
public String getHxc8open() {
return hxc8open;
}
public void setHxc8open(String hxc8open) {
this.hxc8open = hxc8open;
}
private String xmlh;//项目令号
private String hxc8jingli;//项目经理
private String hxc8cp;//产品名称
private String hxc8kh;//客户
private String hxc8cxdm;//车型代码
private String hxc8scjd;//生产基地
private String hxc8ycl;//年预测量
private String hxc8jieduan;//项目阶段
private String hxc8miaoshu;//风险/问题描述
private String hxc8result;//影响/后果
private String hxc8risk;//风险等级
private String hxc8plan;//响应措施/计划
private String hxc8finish;//计划完成日期
private String hxc8zr;//责任人
private String hxc8open;//开放/关闭
}

@ -0,0 +1,850 @@
package com.connor.pro105.plm.creatTechWord;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.swing.ButtonGroup;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.AbstractAIFDialog;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentDataset;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemType;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.stylesheet.KPropertyLOVDisplayer;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.rac.util.PropertyLayout;
@SuppressWarnings("unchecked")
public class CreatTechWordDialogC extends AbstractAIFDialog implements ActionListener{
/**
*
*/
private static final long serialVersionUID = 1L;
private AbstractAIFApplication app;
private TCSession session;
private JPanel mainJpanel;
private JPanel leftJpanel;
private JPanel basicInfoJpanel;
private JPanel selectItemJpanel;
private JPanel rightJpanel;
private JCheckBox zjtsyq;
private JPanel createInfoJpanel;
// private JTextField pathJTextField;
private String selectSecondDoc;
private String selectDocCategory;
private JButton okButton;
private JButton celButton;
private JButton searchButton;
private JButton selectButton;
JTextField[] searchField=null;
// JTextField itemNameField=new JTextField(15);
JRadioButton[] radioButton=null;
ButtonGroup bg=new ButtonGroup();
private JPanel bottomJpanel;
// private String exportFile;
// private ProgressBarThread wait;
String opType;
public CreatTechWordDialogC(String opType, AbstractAIFApplication app) {
super(AIFUtility.getActiveDesktop());
this.app=app;
this.opType=opType;
this.session=(TCSession) app.getSession();
}
@Override
public void run() {
// super.run();//必须注掉,否则窗口显示不正常
try {
DocumentUtil.readProperty( session, "Connor_AVIC_NewDocumentBasicC", "Connor_AVIC_NewDocumentCreationC");//从excel中读取界面属性信息
} catch (IOException e) {
e.printStackTrace();
}
initUI();
}
Dimension dimension=new Dimension(250,30);
JLabel[] basicLabel=null;
JLabel[] searchLabel=null;
JTextField[] basicText=null;
JComboBox<String>[] basicCom=null;
Map<JLabel, Object> basicMap=new HashMap<JLabel, Object>();
Map<JLabel, String> basicPropertyMap=new HashMap<JLabel, String>();
Map<JLabel, Object> basicMap2=new LinkedHashMap<JLabel, Object>();//用来存放后缀等信息
Map<JLabel, Object> createMap=new HashMap<JLabel, Object>();
Map<JLabel, Object> searchMap=new HashMap<JLabel, Object>();
DefaultComboBoxModel<String> model1=null;
DefaultComboBoxModel<String> model2=null;
DefaultComboBoxModel<String> model3=null;
List<String> listq=null;
private void initUI() {
this.setTitle("民机文档创建");
okButton=new JButton("创建");
okButton.addActionListener(this);
celButton=new JButton("取消");
celButton.addActionListener(this);
searchButton=new JButton("查询");
this.getRootPane().setDefaultButton(searchButton);//设置当前面板的默认选中按钮
searchButton.addActionListener(this);
selectButton=new JButton("选择");
selectButton.addActionListener(this);
this.setLayout(new BorderLayout());
this.setSize(850, 550);
mainJpanel = new JPanel(new PropertyLayout());
mainJpanel.setPreferredSize(new Dimension(950, 600));
leftJpanel = new JPanel(new PropertyLayout());
leftJpanel.setPreferredSize(new Dimension(500, 600));
basicInfoJpanel = new JPanel(new PropertyLayout());
selectItemJpanel = new JPanel(new PropertyLayout());
selectItemJpanel.setPreferredSize(new Dimension(500, 300));
rightJpanel = new JPanel(new PropertyLayout());
rightJpanel.setPreferredSize(new Dimension(550, 350));
createInfoJpanel = new JPanel(new PropertyLayout());
// createInfoJpanel.setPreferredSize(new Dimension(400, 280));
basicInfoJpanel.add("1.1.left.top",new JLabel("<html><body><font size=4 color=#3CB371>零组件基本信息</font></body></html>"));
basicLabel=new JLabel[DocumentUtil.excelPre.length-2];
basicText=new JTextField[DocumentUtil.excelPre.length-2];
basicCom=new JComboBox[3];
String houzhui="";
int a=2;
for (int i = 1; i < DocumentUtil.excelPre.length-1; i++) {
String[] proValue = DocumentUtil.excelPre[i].split("=");
basicLabel[i-1]=new JLabel(proValue[0]);
basicLabel[i-1].setPreferredSize(new Dimension(90,25));
String value2= proValue[1];
basicInfoJpanel.add(a+".1.left.top",new JLabel(" "));
basicInfoJpanel.add(a+".2.left.top", basicLabel[i-1]);
if(value2.toLowerCase().startsWith("itemrevisionmaster")) {
basicText[i-1]=new JTextField(15);
basicInfoJpanel.add(a+".3.left.top", basicText[i-1]);
basicMap.put(basicLabel[i-1],basicText[i-1]);
basicPropertyMap.put(basicLabel[i-1], value2.split("\\.")[1]);
}else if(value2.toLowerCase().startsWith("sheet")){
// 如果是sheet就从表格中获取值 一级简号=sheet.itemrevisionmaster.ac5_yjjh
basicText[i-1]=new JTextField(15);
basicInfoJpanel.add(a+".3.left.top", basicText[i-1]);
basicMap.put(basicLabel[i-1],basicText[i-1]);
basicMap2.put(basicLabel[i-1],basicText[i-1]);
// basicPropertyMap.put(basicLabel[i-1], value2.split("\\.")[1]);
}else {
if(i==1) {
model1=new DefaultComboBoxModel<String>(DocumentUtil.jcomboxList_1.toArray(new String[DocumentUtil.jcomboxList_1.size()]));
basicCom[0]=new JComboBox<>(model1);
basicCom[0].setPreferredSize(dimension);
basicCom[0].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getItem() != null) {
DocumentUtil.selectType = (String) e.getItem();
System.out.println("1选择了==="+DocumentUtil.selectType);
List<String> list=DocumentUtil.map1_2.get(DocumentUtil.selectType);
List<String> list2=new ArrayList<>();
model2.removeAllElements();
// basicCom[1].removeAllItems();
for (int j = 0; j < list.size(); j++) {
String string = list.get(j);
System.out.println(string);
list2.add(string.split("###")[1]);
model2.addElement(string.split("###")[1]);
// basicCom[1].addItem(string.split("###")[1]);
}
// model2=new DefaultComboBoxModel<String>(list2.toArray(new String[list2.size()]));
// basicCom[1]=new JComboBox(model2);
}
}
});
}else if(i==2) {
String xx=DocumentUtil.jcomboxList_1.get(0);
List<String> list=DocumentUtil.map1_2.get(xx);
List<String> list2=new ArrayList<>();
for (int j = 0; j < list.size(); j++) {
String string = list.get(j);
System.out.println(string);
list2.add(string.split("###")[1]);
}
model2=new DefaultComboBoxModel<String>(list2.toArray(new String[list2.size()]));
basicCom[1]=new JComboBox<>(model2);
basicCom[1].setPreferredSize(dimension);
basicCom[1].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange()==ItemEvent.SELECTED) {
if(DocumentUtil.selectType==null) {
DocumentUtil.selectType = (String) basicCom[0].getSelectedItem();
}
selectSecondDoc = (String) e.getItem();
System.out.println("2选择了==="+DocumentUtil.selectType+"###"+selectSecondDoc+"www");
List<String> list=DocumentUtil.map2_3.get(DocumentUtil.selectType+"###"+selectSecondDoc);
listq=new ArrayList<String>();
model3.removeAllElements();
// basicCom[2].removeAllItems();
for (int j = 0; j < list.size(); j++) {
String string = list.get(j);
System.out.println(Thread.currentThread().getStackTrace()[1].getLineNumber()+string);
model3.addElement(string.split("-")[0]);//不加载后缀
listq.add(string);
// basicCom[2].addItem(string);
}
DocumentUtil.sethouzhui(listq, selectDocCategory, basicMap2);
}
}
});
}else if(i==3) {
String xx=DocumentUtil.jcomboxList_1.get(0);
List<String> list=DocumentUtil.map1_2.get(xx);
List<String> list2=DocumentUtil.map2_3.get(list.get(0));
final List<String> list2New=new ArrayList<String>();
for (int j = 0; j < list2.size(); j++) {
list2New.add(list2.get(j).split("-")[0]);
}
houzhui=list2.get(0);
System.out.println("houzhui======"+houzhui);
model3=new DefaultComboBoxModel<String>(list2New.toArray(new String[list2New.size()]));
basicCom[2]=new JComboBox<>(model3);
basicCom[2].setPreferredSize(dimension);
basicCom[2].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange()==ItemEvent.SELECTED) {
selectDocCategory = (String) e.getItem();
System.out.println("3选择了==="+selectDocCategory);
DocumentUtil.reset(basicMap, createMap);
// setFileName2();
if(listq==null) {
System.out.println("3选择了0==="+(String)basicCom[0].getItemAt(0)+"###"+(String)basicCom[1].getItemAt(0)+"www");
selectSecondDoc = (String)basicCom[1].getSelectedItem();
DocumentUtil.selectType= (String)basicCom[0].getSelectedItem();
System.out.println("3选择了1==="+DocumentUtil.selectType+"###"+selectSecondDoc+"www");
List<String> list=DocumentUtil.map2_3.get(DocumentUtil.selectType+"###"+selectSecondDoc);
listq=new ArrayList<String>();
// basicCom[2].removeAllItems();
for (int j = 0; j < list.size(); j++) {
String string = list.get(j);
System.out.println(Thread.currentThread().getStackTrace()[1].getLineNumber()+string);
model3.addElement(string.split("-")[0]);//不加载后缀
listq.add(string);
// basicCom[2].addItem(string);
}
}
DocumentUtil.sethouzhui(listq, selectDocCategory, basicMap2);
}
}
});
}
basicInfoJpanel.add(a+".3.left.top", basicCom[i-1]);
basicMap.put(basicLabel[i-1],basicCom[i-1]);
}
a++;
}
/*
* for(java.util.Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
* basicInfoJpanel.add(a+".1.left.top",new JLabel(" "));
* basicInfoJpanel.add(a+".2.left.top", me.getKey());
* basicInfoJpanel.add(a+".3.left.top", (Component) me.getValue()); a++; }
*/
/*
* for (int i = 1; i < excelPre.length; i++) { String[] proValue =
* excelPre[i].split("="); basicInfoJpanel.add(i+".1.left.top",new
* JLabel(" ")); basicInfoJpanel.add(i+".2.left.top", new JLabel(proValue[0]));
*
* }
*/
//首次加载
int count1 = 1;
for (Map.Entry<JLabel, Object> me : basicMap2.entrySet()) {
JTextField field = (JTextField) me.getValue();
field.setText(houzhui.split("-")[count1]);
count1++;
}
leftJpanel.add("1.1.left.top",basicInfoJpanel);
int i=1;
selectItemJpanel.add(i+".1.left.top",new JLabel("<html><body><font size=4 color=#3CB371>选 择 零 组 件</font></body></html>"));
i++;
// selectItemJpanel.add(i+".1.left.top",new JLabel(" 查询选择零组件"));
// i++;
String[] values=session.getPreferenceService().getStringValues("Connor_AVIC_SearchC");
searchLabel=new JLabel[values.length-1];
searchField=new JTextField[values.length-1];
for (int j = 0; j < searchField.length; j++) {
searchField[j]=new JTextField(15);
searchLabel[j]=new JLabel(values[j+1]);
searchLabel[j].setPreferredSize(new Dimension(90,25));
searchMap.put(searchLabel[j], searchField[j]);
}
// session.search(arg0, arg1, arg2)
for (int j = 1; j < values.length; j++) {
// String string = values[j];
selectItemJpanel.add(i+".1.left.top",new JLabel(" "));
selectItemJpanel.add(i+".2.left.top",searchLabel[j-1]);
selectItemJpanel.add(i+".3.left.top",searchField[j-1]);
if(j==values.length-1) {
selectItemJpanel.add(i+".4.left.top",searchButton);
}
i++;
}
selectItemJpanel.add(i+".1.left.top",new JLabel(" "));
JLabel label= new JLabel("查询结果");
label.setPreferredSize(new Dimension(90,25));
selectItemJpanel.add(i+".2.left.top",label);
resultPanel=new JPanel(new PropertyLayout());
scrollPane=new JScrollPane(resultPanel);
scrollPane.setPreferredSize(new Dimension(250,150));
scrollPane.getVerticalScrollBar().setUnitIncrement(20);
selectItemJpanel.add(i+".3.left.top",scrollPane);
selectItemJpanel.add(i+".4.left.top",selectButton);
leftJpanel.add("2.1.left.top",selectItemJpanel);
createInfoJpanel.add("1.1.left.top",new JLabel("<html><body><font size=3 color=#3CB371>创建信息</font></body></html>"));
int b=2;
for (int j = 0; j < DocumentUtil.createInfo.length; j++) {
createInfoJpanel.add(b+".1.left.top",new JLabel(" "));
String[] string = DocumentUtil.createInfo[j].split("=");
DocumentUtil.createLabel[j]=new JLabel(string[0]);
DocumentUtil.createLabel[j].setPreferredSize(new Dimension(90,25));
createInfoJpanel.add(b+".2.left.top",DocumentUtil.createLabel[j]);
if(string.length>1) {
if(string[1].startsWith("#")) {//TODO
DocumentUtil.createCom[j] = new MultiCombo(session.getPreferenceService().getStringValues(string[1].substring(1)));
DocumentUtil.createCom[j].setPreferredSize(new Dimension(250, 30));
DocumentUtil.createCom[j].setEditable(true);
createMap.put(DocumentUtil.createLabel[j], DocumentUtil.createCom[j]);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.createCom[j]);
b++;
continue;
}
DefaultComboBoxModel<String> model;
String[] lovs=string[1].split(";");
List<String> list=new ArrayList<String>();
for (int k = 0; k < lovs.length; k++) {
list.add(lovs[k]);
}
model=new DefaultComboBoxModel<String>(list.toArray(new String[list.size()]));
DocumentUtil.createCom[j]=new JComboBox<>(model);
DocumentUtil.createCom[j].setPreferredSize(new Dimension(150, 30));
createMap.put(DocumentUtil.createLabel[j], DocumentUtil.createCom[j]);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.createCom[j]);
if(string[0].equals("密级")) {
DocumentUtil.mjCom=DocumentUtil.createCom[j];
createMap.put(DocumentUtil.createLabel[j], DocumentUtil.mjCom);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.mjCom);
DocumentUtil.createCom[j].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
try {
System.out.println("ip_clearance==========="+session.getUser().getStringProperty("ip_clearance"));
} catch (Exception e2) {
e2.printStackTrace();
}
System.out.println("选择了====="+e.getItem().toString());
if (e.getStateChange() == ItemEvent.SELECTED) {
try {
KPropertyLOVDisplayer.checkIP(e.getItem().toString());
} catch (Exception e1) {
DocumentUtil.mjCom.setSelectedIndex(-1);
MessageBox.post("用户密级低于数据修改后的密级,不能够执行此操作!","",MessageBox.INFORMATION);
}
}
}
});
}
}else {
DocumentUtil.createText[j]=new JTextField(15);
createMap.put(DocumentUtil.createLabel[j], DocumentUtil.createText[j]);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.createText[j]);
}
b++;
}
for(java.util.Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("编制部门")) {
String groupName=null;
try {
// groupName = session.getGroup().getFullName();//需要本地化
groupName=session.getGroup().getProperty("display_name");//取最底层的组
if(groupName.split("\\.").length>0) {
groupName=groupName.split("\\.")[0];
}
} catch (Exception e1) {
e1.printStackTrace();
}
((JTextField)me.getValue()).setText(groupName);
}
}
rightJpanel.add("1.1.left.top",createInfoJpanel);
mainJpanel.add("1.1.left.top",leftJpanel);
mainJpanel.add("1.2.left.top",rightJpanel);
bottomJpanel=new JPanel(new FlowLayout());
bottomJpanel.add(okButton);
bottomJpanel.add(celButton);
//通过读取首选项,设置那些控件不可编辑(如果jlabel有*,*也得加上)
String[] editable=session.getPreferenceService().getStringValues("Connor_AVIC_editableC");
for (int j = 0; j < editable.length; j++) {
boolean boo=false;
String string = editable[j];
boo=DocumentUtil.setEditable(createMap,string);
if(boo==false) {
boo=DocumentUtil.setEditable(basicMap,string);
if(boo==false) {
DocumentUtil.setEditable(searchMap,string);
}
}
}
zjtsyq=new JCheckBox("<html><body><font size=3 color=#FF0000>主机特殊要求</font></body></html>");
zjtsyq.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JTextField field=null;
JTextField field1=null;
JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("文件编号")) {
field=((JTextField)me.getValue());
}
}
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().startsWith("产品型号")) {
field1=((JTextField)me.getValue());
}
if(me.getKey().getText().startsWith("图样代号")) {
field2=((JTextField)me.getValue());
}
}
if(zjtsyq.isSelected()) {
field.setEditable(true);
field.setText("");
field1.setEditable(true);
field2.setEditable(true);
}else {
field.setEditable(false);
field.setText("");
field1.setEditable(false);
field2.setEditable(false);
}
}
});
this.add(zjtsyq,BorderLayout.NORTH);
this.add(mainJpanel,BorderLayout.CENTER);
this.add(bottomJpanel,BorderLayout.SOUTH);
this.pack();
this.centerToScreen();
this.showDialog();
}
JPanel resultPanel=new JPanel(new PropertyLayout());
JScrollPane scrollPane=new JScrollPane(resultPanel);
@Override
public void actionPerformed(ActionEvent e) {
Object sourceObj = e.getSource();
if(sourceObj.equals(selectButton)){
this.getRootPane().setDefaultButton(okButton);//设置当前面板的默认选中按钮
String item_id="";
for(int i=0;i<radioButton.length;i++) {
if(radioButton[i].isSelected()) {
item_id=radioMap.get(radioButton[i]);
// item_id=radioButton[i].getText();
break;
}
}
if(item_id.length()==0) {
MessageBox.post("","",MessageBox.INFORMATION);
}else {
try {
TCComponent[] comp=session.search("零组件 ID", new String[] {"零组件 ID"}, new String[] {item_id});
TCComponentItem item=((TCComponentItem)comp[0]);
TCComponent form=item.getLatestItemRevision().getRelatedComponents("IMAN_master_form_rev")[0];
for(Map.Entry<JLabel, String> me:basicPropertyMap.entrySet()) {
String property=me.getKey().getText();
System.out.println("property========="+property);
String value=form.getProperty(me.getValue());
System.out.println("value========="+value);
JTextField field=(JTextField) basicMap.get(me.getKey());
field.setText(value);
//如果是图样代号取搜索对象的item_id
if(property.startsWith("图样代号")) {
field.setText(item.getProperty("item_id"));
}
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
//创建属性赋值
//名称:型号+文档类别+流水(允许手工修改)
// JTextField field0=null;
// JComboBox<String> combox1=null;
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().startsWith("产品型号")) {
// field0=((JTextField)me.getValue());
}
if(me.getKey().getText().startsWith("文档类别")) {
// combox1=((JComboBox)me.getValue());
}
}
//点击选择不在更新名称,实体文件名称和文件编号
// JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("名称")) {
// field2=((JTextField)me.getValue());
}
}
String yjjh="";//一级简号
for(Map.Entry<JLabel, Object> me: basicMap2.entrySet()) {
if(me.getKey().getText().equals(DocumentUtil.wz)) {
yjjh=((JTextField)me.getValue()).getText();
}
}
DocumentUtil.setFileName2("Connor_AVIC_NewDocumentSerialC", basicMap,createMap, zjtsyq, session, basicCom,yjjh);
}else if(sourceObj.equals(okButton)){
//增加必填项的校验
JTextField fieldX=null;
String message="";
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().contains("*")&& me.getValue() instanceof JTextField) {
fieldX=((JTextField)me.getValue());
if(fieldX.getText().trim().length()==0) {
message=message+me.getKey().getText()+";";
}
}
}
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("*")) {
fieldX=((JTextField)me.getValue());
if(fieldX.getText().trim().length()==0) {
message=message+me.getKey().getText()+";";
}
}
}
if(message.length()>0) {
MessageBox.post("请检查必填项:"+message,"",MessageBox.INFORMATION);
}else {
//校验名称是否带有非法字符
JTextField fieldName=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("实体文件名称")) {
fieldName=((JTextField)me.getValue());
}
}
String filename=fieldName.getText();
if(DocumentUtil.isValidFileName(filename)==false) {
MessageBox.post("实体文件名称含有非法字符,请联系管理员修改模板配置文件","",MessageBox.INFORMATION);
}else {
if(zjtsyq.isSelected()==true) {
JTextField field=null;
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().startsWith("产品型号")) {
field=((JTextField)me.getValue());
}
}
if(field.getText().length()>0) {
// this.disposeDialog();
// this.dispose();
}else {
MessageBox.post("产品型号不能为空","",MessageBox.INFORMATION);
}
}else {
// this.disposeDialog();
// this.dispose();
}
// 创建
String yjjh="";//一级简号
for(Map.Entry<JLabel, Object> me: basicMap2.entrySet()) {
if(me.getKey().getText().equals(DocumentUtil.wz)) {
yjjh=((JTextField)me.getValue()).getText();
}
}
DocumentUtil.setFileName("Connor_AVIC_NewDocumentSerialC", basicMap, createMap, session, zjtsyq, basicCom,yjjh);
try {
Map<String,String> map=DocumentUtil.getPuid("Connor_AVIC_NewDocumentBasicC",session);
DocumentUtil.selectType=(String) basicCom[0].getSelectedItem();
selectSecondDoc=(String) basicCom[1].getSelectedItem();
selectDocCategory=(String) basicCom[2].getSelectedItem();
String puid="";
for (Map.Entry<String, String> me:map.entrySet()) {
String keyName=me.getKey();
if(keyName.contains(DocumentUtil.selectType+"-"+selectSecondDoc+"-"+selectDocCategory)) {
puid=map.get(keyName);
}
}
// String puid=map.get(DocumentUtil.selectType+"-"+selectSecondDoc+"-"+selectDocCategory);
// System.out.println(DocumentUtil.selectType+"-"+selectSecondDoc+"-"+selectDocCategory);
System.out.println(puid);
try {
TCComponentDataset comp=(TCComponentDataset) session.stringToComponent(puid);
TCComponentDataset newdataset=null;
if(comp==null) {
if(puid.length()>0) {
MessageBox.post("找不到该类的文档模板","",MessageBox.INFORMATION);
return;
}else {
newdataset=null;
}
}else {
newdataset=comp.saveAs(null);
}
// 名称
// JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("名称")) {
// field2=((JTextField)me.getValue());
}
}
//实体文件名称
// JTextField field3=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("实体文件名称")) {
// field3=((JTextField)me.getValue());
}
}
// objectName=field3.getText();
// newdataset.setStringProperty("object_name", field3.getText());
if(newdataset!=null) {
newdataset.setStringProperty("object_name", DocumentUtil.entityFileName);
}
TCComponent compX= (TCComponent) app.getTargetComponent();
TCComponentItemType type = (TCComponentItemType) session.getTypeComponent("Document");
// JTextField field4=null;
// //军机以型别作为版本值
JComboBox<String> field5=null;
JComboBox<String> field6=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("文件编号")) {
// field4=((JTextField)me.getValue());
}
if(me.getKey().getText().startsWith("型别")) {
field5=(JComboBox<String>)me.getValue();
}
if(me.getKey().getText().startsWith("版本")) {
field6=(JComboBox<String>)me.getValue();
}
}
// TCComponentItem item=type.create(field4.getText(), field5.getSelectedItem()+"00", "Ac5_MilitaryDoc", field2.getText(), "", null);
if (DocumentUtil.fileCode.length() > 0) {
boolean create = false;
try {
// 查询
// TCComponent[] comps = session.search("DocSearch1", new String[] { "文档编号" }, new String[] { DocumentUtil.fileCode });
TCComponent[] comps=session.search("零组件 ID", new String[] {"零组件 ID"}, new String[] {DocumentUtil.fileCode});
if (comps.length > 0) {
create = false;
} else {
create = true;
}
} catch (Exception e2) {
e2.printStackTrace();
}
if (create == false) {
// MessageBox.post("文件编号"+DocumentUtil.fileCode+"不唯一,请修改","",MessageBox.INFORMATION);
MessageBox.post("ID"+DocumentUtil.fileCode+"不符合唯一性规则,请重新填写","",MessageBox.INFORMATION);
} else {
this.disposeDialog();
this.dispose();
DocumentUtil.createNewItem("Connor_AVIC_NewDocumentThesignC", getClass(), session, basicMap, createMap,
DocumentUtil.entityFileName, DocumentUtil.fileCode, type, DocumentUtil.fileName,
compX, field5, field6, newdataset, "Ac5_CivilDoc", "Connor_AVIC_SetFormPropertyC", DocumentUtil.yjjh);
}
}else {
MessageBox.post("请填写文件编号","",MessageBox.INFORMATION);
}
} catch (Exception e1) {
e1.printStackTrace();
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
}else if(sourceObj.equals(celButton)){
this.disposeDialog();
this.dispose();
}else if(sourceObj.equals(searchButton)){
this.getRootPane().setDefaultButton(selectButton);//设置当前面板的默认选中按钮
String[] values=session.getPreferenceService().getStringValues("Connor_AVIC_SearchC");
String[] selectItem=new String[values.length-1];
String[] selectValue=new String[values.length-1];
int i=0;
boolean isNull=true;
for(java.util.Map.Entry<JLabel, Object> me:searchMap.entrySet()) {
String key=me.getKey().getText();
JTextField field=(JTextField) me.getValue();
String value=field.getText().trim();
if(value.length()==0) {
value="*";
}else {
value="*"+value+"*";
isNull=false;
}
selectItem[i]=key;
selectValue[i]=value;
i++;
}
if(isNull==true) {
MessageBox.post("所搜条目不能全为空","",MessageBox.INFORMATION);
}else {
try {
// TCComponent[] comps=session.search(values[0], selectItem, selectValue);
TCComponent[] comps=DocumentUtil.getResult(session,searchMap,values[0]);
System.out.println("共有========"+comps.length);
this.disposeDialog();
this.showDialog();
radioButton=new JRadioButton[comps.length];
radioMap=new HashMap<JRadioButton, String>();
resultPanel.removeAll();
// scrollPane.remove(resultPanel);
bg=new ButtonGroup();
//查询结果设置成可配置的属性
String[] properties=session.getPreferenceService().getStringValues("Connor_AVIC_SearchPropertiesC");
if(comps.length==0) {
MessageBox.post("查询结果为空","",MessageBox.INFORMATION);
}
for (int j = 0; j < comps.length; j++) {
TCComponent tcComponent = comps[j];
String name="";
for (int k = 0; k < properties.length; k++) {
//区分版本和对象
TCComponent tcComponent0=null;
String[] ps=properties[k].split("\\.");
System.out.println();
if(ps[0].toUpperCase().equals("REV")){
tcComponent0=tcComponent;
}else if(ps[0].toUpperCase().equals("REVMASTER")) {
tcComponent0=tcComponent.getRelatedComponents("IMAN_master_form_rev")[0];
}
name=name+tcComponent0.getProperty(ps[1]);
if(k<properties.length-1) {
name=name+"-";
}
}
radioButton[j]=new JRadioButton(name);
radioMap.put(radioButton[j], tcComponent.getProperty("item_id"));
bg.add(radioButton[j]);
resultPanel.add((j+1)+".1.left.top",radioButton[j]);
}
// scrollPane.add(resultPanel);
} catch (Exception e1) {
e1.printStackTrace();
}
}
// this.disposeDialog();
// this.dispose();
}
}
// String objectName="";
Map<JRadioButton, String> radioMap=new HashMap<JRadioButton, String>();
}

@ -0,0 +1,883 @@
package com.connor.pro105.plm.creatTechWord;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.swing.ButtonGroup;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.AbstractAIFDialog;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentDataset;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCComponentItemType;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.stylesheet.KPropertyLOVDisplayer;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.rac.util.PropertyLayout;
public class CreatTechWordDialogM extends AbstractAIFDialog implements ActionListener{
/**
*
*/
private static final long serialVersionUID = 1L;
private AbstractAIFApplication app;
private TCSession session;
private JPanel mainJpanel;
private JPanel leftJpanel;
private JPanel basicInfoJpanel;
private JPanel selectItemJpanel;
private JPanel rightJpanel;
private JCheckBox zjtsyq;
private JPanel createInfoJpanel;
private String selectType;
private String selectSecondDoc;
private String selectDocCategory;
private JButton okButton;
private JButton celButton;
private JButton searchButton;
private JButton selectButton;
JTextField[] searchField=null;
// JTextField itemNameField=new JTextField(15);
JRadioButton[] radioButton=null;
ButtonGroup bg=new ButtonGroup();
private JPanel bottomJpanel;
String opType;
public CreatTechWordDialogM(String opType, AbstractAIFApplication app) {
super(AIFUtility.getActiveDesktop());
this.app=app;
this.opType=opType;
this.session=(TCSession) app.getSession();
}
@Override
public void run() {
// super.run();//必须注掉,否则窗口显示不正常
try {
DocumentUtil.readProperty( session, "Connor_AVIC_NewDocumentBasicM", "Connor_AVIC_NewDocumentCreationM");//从excel中读取界面属性信息
} catch (IOException e) {
e.printStackTrace();
}
initUI();
}
Dimension dimension=new Dimension(250,30);
JLabel[] basicLabel=null;
JLabel[] searchLabel=null;
JTextField[] basicText=null;
JComboBox<String>[] basicCom=null;
Map<JLabel, Object> basicMap=new HashMap<JLabel, Object>();
Map<JLabel, Object> basicMap2=new LinkedHashMap<JLabel, Object>();//用来存放后缀等信息
Map<JLabel, String> basicPropertyMap=new HashMap<JLabel, String>();
Map<JLabel, Object> createMap=new HashMap<JLabel, Object>();
Map<JLabel, Object> searchMap=new HashMap<JLabel, Object>();
DefaultComboBoxModel<String> model1=null;
DefaultComboBoxModel<String> model2=null;
DefaultComboBoxModel<String> model3=null;
List<String> listq=null;
@SuppressWarnings("unchecked")
private void initUI() {
this.setTitle("军机文档创建");
okButton=new JButton("创建");
okButton.addActionListener(this);
celButton=new JButton("取消");
celButton.addActionListener(this);
searchButton=new JButton("查询");
this.getRootPane().setDefaultButton(searchButton);//设置当前面板的默认选中按钮
searchButton.addActionListener(this);
selectButton=new JButton("选择");
selectButton.addActionListener(this);
this.setLayout(new BorderLayout());
this.setSize(850, 550);
mainJpanel = new JPanel(new PropertyLayout());
mainJpanel.setPreferredSize(new Dimension(950, 600));
leftJpanel = new JPanel(new PropertyLayout());
leftJpanel.setPreferredSize(new Dimension(500, 600));
basicInfoJpanel = new JPanel(new PropertyLayout());
selectItemJpanel = new JPanel(new PropertyLayout());
selectItemJpanel.setPreferredSize(new Dimension(500, 300));
rightJpanel = new JPanel(new PropertyLayout());
rightJpanel.setPreferredSize(new Dimension(550, 350));
createInfoJpanel = new JPanel(new PropertyLayout());
// createInfoJpanel.setPreferredSize(new Dimension(400, 280));
basicInfoJpanel.add("1.1.left.top",new JLabel("<html><body><font size=3 color=#3CB371>零组件基本信息</font></body></html>"));
basicLabel=new JLabel[DocumentUtil.excelPre.length-2];
basicText=new JTextField[DocumentUtil.excelPre.length-2];
basicCom=new JComboBox[3];
int a=2;
String houzhui="";
for (int i = 1; i < DocumentUtil.excelPre.length-1; i++) {
String[] proValue = DocumentUtil.excelPre[i].split("=");
basicLabel[i-1]=new JLabel(proValue[0]);
basicLabel[i-1].setPreferredSize(new Dimension(90,25));
String value2= proValue[1];
basicInfoJpanel.add(a+".1.left.top",new JLabel(" "));
basicInfoJpanel.add(a+".2.left.top", basicLabel[i-1]);
if(value2.toLowerCase().startsWith("itemrevisionmaster")) {
basicText[i-1]=new JTextField(15);
basicInfoJpanel.add(a+".3.left.top", basicText[i-1]);
basicMap.put(basicLabel[i-1],basicText[i-1]);
basicPropertyMap.put(basicLabel[i-1], value2.split("\\.")[1]);
}else if(value2.toLowerCase().startsWith("sheet")){
// 如果是sheet就从表格中获取值 一级简号=sheet.itemrevisionmaster.ac5_yjjh
basicText[i-1]=new JTextField(15);
basicInfoJpanel.add(a+".3.left.top", basicText[i-1]);
basicMap.put(basicLabel[i-1],basicText[i-1]);
basicMap2.put(basicLabel[i-1],basicText[i-1]);
// basicPropertyMap.put(basicLabel[i-1], value2.split("\\.")[1]);
}else{
if(i==1) {
model1=new DefaultComboBoxModel<String>(DocumentUtil.jcomboxList_1.toArray(new String[DocumentUtil.jcomboxList_1.size()]));
basicCom[0]=new JComboBox<>(model1);
basicCom[0].setPreferredSize(dimension);
basicCom[0].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getItem() != null) {
selectType = (String) e.getItem();
System.out.println("1选择了==="+selectType);
List<String> list=DocumentUtil.map1_2.get(selectType);
List<String> list2=new ArrayList<>();
model2.removeAllElements();
// basicCom[1].removeAllItems();
for (int j = 0; j < list.size(); j++) {
String string = list.get(j);
System.out.println("212"+string);
list2.add(string.split("###")[1]);
model2.addElement(string.split("###")[1]);
// basicCom[1].addItem(string.split("###")[1]);
}
// model2=new DefaultComboBoxModel<String>(list2.toArray(new String[list2.size()]));
// basicCom[1]=new JComboBox(model2);
}
}
});
}else if(i==2) {
String xx=DocumentUtil.jcomboxList_1.get(0);
List<String> list=DocumentUtil.map1_2.get(xx);
List<String> list2=new ArrayList<>();
for (int j = 0; j < list.size(); j++) {
String string = list.get(j);
System.out.println("228"+string);
list2.add(string.split("###")[1]);
}
model2=new DefaultComboBoxModel<String>(list2.toArray(new String[list2.size()]));
basicCom[1]=new JComboBox<>(model2);
basicCom[1].setPreferredSize(dimension);
basicCom[1].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange()==ItemEvent.SELECTED) {
if(selectType==null) {
selectType = (String) basicCom[0].getSelectedItem();
}
selectSecondDoc = (String) e.getItem();
System.out.println("2选择了==="+selectType+"###"+selectSecondDoc+"www");
List<String> list=DocumentUtil.map2_3.get(selectType+"###"+selectSecondDoc);
listq=new ArrayList<String>();
model3.removeAllElements();
// basicCom[2].removeAllItems();
for (int j = 0; j < list.size(); j++) {
String string = list.get(j);
System.out.println(Thread.currentThread().getStackTrace()[1].getLineNumber()+string);
model3.addElement(string.split("-")[0]);//不加载后缀
listq.add(string);
// basicCom[2].addItem(string);
}
DocumentUtil.sethouzhui(listq, selectDocCategory, basicMap2);
}
}
});
}else if(i==3) {
String xx=DocumentUtil.jcomboxList_1.get(0);
List<String> list=DocumentUtil.map1_2.get(xx);
List<String> list2=DocumentUtil.map2_3.get(list.get(0));
final List<String> list2New=new ArrayList<String>();
for (int j = 0; j < list2.size(); j++) {
list2New.add(list2.get(j).split("-")[0]);
}
houzhui=list2.get(0);
System.out.println("houzhui======"+houzhui);
// 给文本框设置
model3=new DefaultComboBoxModel<String>(list2New.toArray(new String[list2New.size()]));
basicCom[2]=new JComboBox<>(model3);
basicCom[2].setPreferredSize(dimension);
basicCom[2].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange()==ItemEvent.SELECTED) {
selectDocCategory = (String) e.getItem();
System.out.println("3选择了==="+selectDocCategory);
// setFileName2();
DocumentUtil.reset(basicMap, createMap);
// 20200727 新增配置
if(listq==null) {
System.out.println("3选择了0==="+(String)basicCom[0].getItemAt(0)+"###"+(String)basicCom[1].getItemAt(0)+"www");
selectSecondDoc = (String)basicCom[1].getSelectedItem();
selectType= (String)basicCom[0].getSelectedItem();
System.out.println("3选择了1==="+selectType+"###"+selectSecondDoc+"www");
List<String> list=DocumentUtil.map2_3.get(selectType+"###"+selectSecondDoc);
listq=new ArrayList<String>();
// basicCom[2].removeAllItems();
for (int j = 0; j < list.size(); j++) {
String string = list.get(j);
System.out.println(Thread.currentThread().getStackTrace()[1].getLineNumber()+string);
model3.addElement(string.split("-")[0]);//不加载后缀
listq.add(string);
// basicCom[2].addItem(string);
}
}
DocumentUtil.sethouzhui(listq, selectDocCategory, basicMap2);
// String houzhui1=list2.get(0);
System.out.println("end");
}
}
});
}
basicInfoJpanel.add(a+".3.left.top", basicCom[i-1]);
basicMap.put(basicLabel[i-1],basicCom[i-1]);
}
a++;
}
//首次加载
int count1 = 1;
for (Map.Entry<JLabel, Object> me : basicMap2.entrySet()) {
JTextField field = (JTextField) me.getValue();
field.setText(houzhui.split("-")[count1]);
count1++;
}
leftJpanel.add("1.1.left.top",basicInfoJpanel);
int i=1;
selectItemJpanel.add(i+".1.left.top",new JLabel("<html><body><font size=4 color=#3CB371>选 择 零 组 件</font></body></html>"));
i++;
// selectItemJpanel.add(i+".1.left.top",new JLabel(" 查询选择零组件"));
// i++;
String[] values=session.getPreferenceService().getStringValues("Connor_AVIC_SearchM");
searchLabel=new JLabel[values.length-1];
searchField=new JTextField[values.length-1];
for (int j = 0; j < searchField.length; j++) {
searchField[j]=new JTextField(15);
searchLabel[j]=new JLabel(values[j+1]);
searchLabel[j].setPreferredSize(new Dimension(90,25));
searchMap.put(searchLabel[j], searchField[j]);
}
// session.search(arg0, arg1, arg2)
for (int j = 1; j < values.length; j++) {
// String string = values[j];
selectItemJpanel.add(i+".1.left.top",new JLabel(" "));
selectItemJpanel.add(i+".2.left.top",searchLabel[j-1]);
selectItemJpanel.add(i+".3.left.top",searchField[j-1]);
if(j==values.length-1) {
selectItemJpanel.add(i+".4.left.top",searchButton);
}
i++;
}
selectItemJpanel.add(i+".1.left.top",new JLabel(" "));
JLabel label= new JLabel("查询结果");
label.setPreferredSize(new Dimension(90,25));
selectItemJpanel.add(i+".2.left.top",label);
resultPanel=new JPanel(new PropertyLayout());
scrollPane=new JScrollPane(resultPanel);
scrollPane.setPreferredSize(new Dimension(250,150));
scrollPane.getVerticalScrollBar().setUnitIncrement(20);
selectItemJpanel.add(i+".3.left.top",scrollPane);
selectItemJpanel.add(i+".4.left.top",selectButton);
leftJpanel.add("2.1.left.top",selectItemJpanel);
createInfoJpanel.add("1.1.left.top",new JLabel("<html><body><font size=3 color=#3CB371>创建信息</font></body></html>"));
int b=2;
for (int j = 0; j < DocumentUtil.createInfo.length; j++) {
createInfoJpanel.add(b+".1.left.top",new JLabel(" "));
String[] string = DocumentUtil.createInfo[j].split("=");
DocumentUtil.createLabel[j]=new JLabel(string[0]);
DocumentUtil.createLabel[j].setPreferredSize(new Dimension(90,25));
createInfoJpanel.add(b+".2.left.top",DocumentUtil.createLabel[j]);
if(string.length>1) {
if(string[1].startsWith("#")) {//TODO
DocumentUtil.createCom[j] = new MultiCombo(session.getPreferenceService().getStringValues(string[1].substring(1)));
DocumentUtil.createCom[j].setPreferredSize(new Dimension(250, 30));
DocumentUtil.createCom[j].setEditable(true);
createMap.put(DocumentUtil.createLabel[j], DocumentUtil.createCom[j]);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.createCom[j]);
b++;
continue;
}
DefaultComboBoxModel<String> model;
String[] lovs=string[1].split(";");
List<String> list=new ArrayList<String>();
for (int k = 0; k < lovs.length; k++) {
list.add(lovs[k]);
}
model=new DefaultComboBoxModel<String>(list.toArray(new String[list.size()]));
DocumentUtil.createCom[j]=new JComboBox<>(model);
DocumentUtil.createCom[j].setPreferredSize(new Dimension(150, 30));
createMap.put(DocumentUtil.createLabel[j], DocumentUtil.createCom[j]);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.createCom[j]);
if(string[0].equals("密级")) {
DocumentUtil.mjCom=DocumentUtil.createCom[j];
createMap.put(DocumentUtil.createLabel[j], DocumentUtil.mjCom);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.mjCom);
DocumentUtil.createCom[j].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
try {
System.out.println("ip_clearance==========="+session.getUser().getStringProperty("ip_clearance"));
} catch (Exception e2) {
e2.printStackTrace();
}
System.out.println("选择了====="+e.getItem().toString());
if (e.getStateChange() == ItemEvent.SELECTED) {
try {
KPropertyLOVDisplayer.checkIP(e.getItem().toString());
} catch (Exception e1) {
DocumentUtil.mjCom.setSelectedIndex(-1);
MessageBox.post("用户密级低于数据修改后的密级,不能够执行此操作!","",MessageBox.INFORMATION);
}
}
}
});
}
}else {
DocumentUtil.createText[j]=new JTextField(15);
createMap.put(DocumentUtil.createLabel[j], DocumentUtil.createText[j]);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.createText[j]);
}
b++;
}
for(java.util.Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("编制部门")) {
String groupName=null;
try {
// groupName = session.getGroup().getFullName();//需要本地化
groupName=session.getGroup().getProperty("display_name");
if(groupName.split("\\.").length>0) {
groupName=groupName.split("\\.")[0];
}
} catch (Exception e1) {
e1.printStackTrace();
}
((JTextField)me.getValue()).setText(groupName);
}
}
rightJpanel.add("1.1.left.top",createInfoJpanel);
mainJpanel.add("1.1.left.top",leftJpanel);
mainJpanel.add("1.2.left.top",rightJpanel);
bottomJpanel=new JPanel(new FlowLayout());
bottomJpanel.add(okButton);
bottomJpanel.add(celButton);
//通过读取首选项,设置那些控件不可编辑(如果jlabel有*,*也得加上)
String[] editable=session.getPreferenceService().getStringValues("Connor_AVIC_editableM");
for (int j = 0; j < editable.length; j++) {
boolean boo=false;
String string = editable[j];
boo=DocumentUtil.setEditable(createMap,string);
if(boo==false) {
boo=DocumentUtil.setEditable(basicMap,string);
if(boo==false) {
DocumentUtil.setEditable(searchMap,string);
}
}
}
zjtsyq=new JCheckBox("<html><body><font size=3 color=#FF0000>主机特殊要求</font></body></html>");
zjtsyq.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JTextField field=null;
JTextField field1=null;
JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("文件编号")) {
field=((JTextField)me.getValue());
}
}
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().contains("产品型号")) {
field1=((JTextField)me.getValue());
}
if(me.getKey().getText().contains("图样代号")) {
field2=((JTextField)me.getValue());
}
}
if(zjtsyq.isSelected()) {
field.setEditable(true);
field.setText("");
field1.setEditable(true);
field2.setEditable(true);
}else {
field.setEditable(false);
field.setText("");
field1.setEditable(false);
field2.setEditable(false);
}
}
});
this.add(zjtsyq,BorderLayout.NORTH);
this.add(mainJpanel,BorderLayout.CENTER);
this.add(bottomJpanel,BorderLayout.SOUTH);
this.pack();
this.centerToScreen();
this.showDialog();
}
JPanel resultPanel=new JPanel(new PropertyLayout());
JScrollPane scrollPane=new JScrollPane(resultPanel);
@SuppressWarnings("unchecked")
@Override
public void actionPerformed(ActionEvent e) {
Object sourceObj = e.getSource();
if(sourceObj.equals(selectButton)){
this.getRootPane().setDefaultButton(okButton);//设置当前面板的默认选中按钮
String item_id="";
for(int i=0;i<radioButton.length;i++) {
if(radioButton[i].isSelected()) {
item_id=radioMap.get(radioButton[i]);
// item_id=radioButton[i].getText();
break;
}
}
if(item_id.length()==0) {
MessageBox.post("请选中对象","",MessageBox.INFORMATION);
}else {
try {
TCComponent[] comp=session.search("零组件 ID", new String[] {"零组件 ID"}, new String[] {item_id});
TCComponentItem item=((TCComponentItem)comp[0]);
TCComponent form=item.getLatestItemRevision().getRelatedComponents("IMAN_master_form_rev")[0];
for(Map.Entry<JLabel, String> me:basicPropertyMap.entrySet()) {
String property=me.getKey().getText();
System.out.println("property========="+property);
String value=form.getProperty(me.getValue());
System.out.println("value========="+value);
JTextField field=(JTextField) basicMap.get(me.getKey());
field.setText(value);
//如果是图样代号取搜索对象的item_id
if(property.contains("图样代号")) {
field.setText(item.getProperty("item_id"));
}
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
//创建属性赋值
//名称:型号+文档类别+流水(允许手工修改)
// JTextField field0=null;
// JComboBox<String> combox1=null;
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().contains("产品型号")) {
// field0=((JTextField)me.getValue());
}
if(me.getKey().getText().startsWith("文档类别")) {
// combox1=((JComboBox)me.getValue());
}
}
//点击选择不在更新名称,实体文件名称和文件编号
// JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("名称")) {
// field2=((JTextField)me.getValue());
}
}
String yjjh="";//一级简号
for(Map.Entry<JLabel, Object> me: basicMap2.entrySet()) {
if(me.getKey().getText().equals(DocumentUtil.wz)) {
yjjh=((JTextField)me.getValue()).getText();
}
}
DocumentUtil.setFileName2("Connor_AVIC_NewDocumentSerialM",basicMap,createMap,zjtsyq, session, basicCom,yjjh);
}else if(sourceObj.equals(okButton)){
//
//增加必填项的校验
JTextField fieldX=null;
String message="";
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().contains("*")&& me.getValue() instanceof JTextField) {
System.out.println("598"+me.getKey().getText());
fieldX=((JTextField)me.getValue());
if(fieldX.getText().trim().length()==0) {
message=message+me.getKey().getText()+";";
}
}
}
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("*")) {
System.out.println("608"+me.getKey().getText());
fieldX=((JTextField)me.getValue());
if(fieldX.getText().trim().length()==0) {
message=message+me.getKey().getText()+";";
}
}
}
if(message.length()>0) {
MessageBox.post("请检查必填项:"+message,"",MessageBox.INFORMATION);
}else {
//校验名称是否带有非法字符
JTextField fieldName=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("实体文件名称")) {
fieldName=((JTextField)me.getValue());
}
}
String filename=fieldName.getText();
if(DocumentUtil.isValidFileName(filename)==false) {
MessageBox.post("实体文件名称含有非法字符,请联系管理员修改模板配置文件","",MessageBox.INFORMATION);
}else {
if(zjtsyq.isSelected()==true) {
JTextField field=null;
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().contains("产品型号")) {
field=((JTextField)me.getValue());
}
}
if(field.getText().length()>0) {
// this.disposeDialog();
// this.dispose();
}else {
MessageBox.post("产品型号不能为空","",MessageBox.INFORMATION);
}
}else {
// this.disposeDialog();
// this.dispose();
}
// 创建
String yjjh="";//一级简号
for(Map.Entry<JLabel, Object> me: basicMap2.entrySet()) {
if(me.getKey().getText().equals(DocumentUtil.wz)) {
yjjh=((JTextField)me.getValue()).getText();
}
}
DocumentUtil.setFileName("Connor_AVIC_NewDocumentSerialM", basicMap, createMap, session, zjtsyq, basicCom,yjjh);
System.out.println("文件编号======"+DocumentUtil.fileCode);
/*
* if(true) { return ; }
*/
try {
Map<String,String> map=DocumentUtil.getPuid("Connor_AVIC_NewDocumentBasicM",session);
selectType=(String) basicCom[0].getSelectedItem();
selectSecondDoc=(String) basicCom[1].getSelectedItem();
selectDocCategory=(String) basicCom[2].getSelectedItem();
String puid="";
for (Map.Entry<String, String> me:map.entrySet()) {
String keyName=me.getKey();
if(keyName.contains(selectType+"-"+selectSecondDoc+"-"+selectDocCategory)) {
puid=map.get(keyName);
}
}
// String puid=map.get(selectType+"-"+selectSecondDoc+"-"+selectDocCategory);
// System.out.println(selectType+"-"+selectSecondDoc+"-"+selectDocCategory);
System.out.println(puid);
try {
TCComponentDataset comp=(TCComponentDataset) session.stringToComponent(puid);
TCComponentDataset newdataset=null;
if(comp==null) {
if(puid.length()>0) {
MessageBox.post("找不到该类的文档模板","",MessageBox.INFORMATION);
return;
}else {
newdataset=null;
}
}else {
newdataset=comp.saveAs(null);
}
// 名称
// JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("名称")) {
// field2=((JTextField)me.getValue());
}
}
//实体文件名称
// JTextField field3=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("实体文件名称")) {
// field3=((JTextField)me.getValue());
}
}
// objectName=field3.getText();
// newdataset.setStringProperty("object_name", field3.getText());
if(newdataset!=null) {
newdataset.setStringProperty("object_name", DocumentUtil.entityFileName);
}
TCComponent compX= (TCComponent) app.getTargetComponent();
TCComponentItemType type=(TCComponentItemType) session.getTypeComponent("Document");
// JTextField field4=null;
//军机以型别作为版本值
JComboBox<String> field5=null;
JComboBox<String> field6=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("文件编号")) {
// field4=((JTextField)me.getValue());
}
if(me.getKey().getText().contains("型别")) {
field5=(JComboBox<String>)me.getValue();
}
if(me.getKey().getText().contains("版本")) {
field6=(JComboBox<String>)me.getValue();
}
}
// TCComponentItem item=type.create(field4.getText(), field5.getSelectedItem()+"00", "Ac5_MilitaryDoc",
// field2.getText(), "", null);
if(DocumentUtil.fileCode.length()>0) {
boolean create=false;
try {
// 查询
// TCComponent[] comps=session.search("DocSearch1", new String[] {"文档编号"},
// new String[] {DocumentUtil.fileCode});//通过DocSearch1版本表单上的文档编号查询是否有重复的对象
TCComponent[] comps=session.search("零组件 ID", new String[] {"零组件 ID"}, new String[] {DocumentUtil.fileCode});
if(comps.length>0) {
create=false;
}else {
create=true;
}
} catch (Exception e2) {
e2.printStackTrace();
}
if(create==false) {
// MessageBox.post("文件编号"+DocumentUtil.fileCode+"不唯一,请修改","",MessageBox.INFORMATION);
MessageBox.post("ID"+DocumentUtil.fileCode+"不符合唯一性规则,请重新填写","",MessageBox.INFORMATION);
}else {
this.disposeDialog();
this.dispose();
DocumentUtil.createNewItem("Connor_AVIC_NewDocumentThesignM",getClass(),session,basicMap,createMap,
DocumentUtil.entityFileName,DocumentUtil.fileCode,type,DocumentUtil.fileName,
compX,field5,field6,newdataset,"Ac5_MilitaryDoc","Connor_AVIC_SetFormPropertyM",DocumentUtil.yjjh);
}
}else {
MessageBox.post("请填写文件编号","",MessageBox.INFORMATION);
}
} catch (Exception e1) {
e1.printStackTrace();
MessageBox.post("错误:"+e1.getMessage(),"",MessageBox.ERROR);
}
} catch (Exception e1) {
e1.printStackTrace();
MessageBox.post("错误:"+e1.getMessage(),"",MessageBox.ERROR);
}
}
}
}else if(sourceObj.equals(celButton)){
this.disposeDialog();
this.dispose();
}else if(sourceObj.equals(searchButton)){
this.getRootPane().setDefaultButton(selectButton);//设置当前面板的默认选中按钮
String[] values=session.getPreferenceService().getStringValues("Connor_AVIC_SearchM");
String[] selectItem=new String[values.length-1];
String[] selectValue=new String[values.length-1];
int i=0;
boolean isNull=true;
for(java.util.Map.Entry<JLabel, Object> me:searchMap.entrySet()) {
JTextField field=(JTextField) me.getValue();
String value=field.getText().trim();
if(value.length()==0) {
// value="*";
}else {
i++;
}
}
selectItem=new String[i];
selectValue=new String[i];
i=0;
for(java.util.Map.Entry<JLabel, Object> me:searchMap.entrySet()) {
String key=me.getKey().getText();
JTextField field=(JTextField) me.getValue();
String value=field.getText().trim();
if(value.length()==0) {
// value="*";
}else {
value="*"+value+"*";
isNull=false;
selectItem[i]=key;
selectValue[i]=value;
i++;
}
}
if(isNull==true) {
MessageBox.post("所搜条目不能全为空","",MessageBox.INFORMATION);
}else {
try {
// TCComponent[] comps=session.search(values[0], selectItem, selectValue);
TCComponent[] comps=DocumentUtil.getResult(session,searchMap,values[0]);
System.out.println("共有========"+comps.length);
this.disposeDialog();
this.showDialog();
radioButton=new JRadioButton[comps.length];
radioMap=new HashMap<JRadioButton, String>();
resultPanel.removeAll();
// scrollPane.remove(resultPanel);
bg=new ButtonGroup();
//查询结果设置成可配置的属性
String[] properties=session.getPreferenceService().getStringValues("Connor_AVIC_SearchPropertiesM");
if(comps.length==0) {
MessageBox.post("查询结果为空","",MessageBox.INFORMATION);
}
for (int j = 0; j < comps.length; j++) {
TCComponent tcComponent = comps[j];
String name="";
for (int k = 0; k < properties.length; k++) {
//区分版本和对象
TCComponent tcComponent0=null;
String[] ps=properties[k].split("\\.");
System.out.println();
if(ps[0].toUpperCase().equals("REV")){
tcComponent0=tcComponent;
}else if(ps[0].toUpperCase().equals("REVMASTER")) {
tcComponent0=tcComponent.getRelatedComponents("IMAN_master_form_rev")[0];
}else if(ps[0].toUpperCase().equals("ITEM")) {
tcComponent0=((TCComponentItemRevision)tcComponent).getItem();
}
name=name+tcComponent0.getProperty(ps[1]);
if(k<properties.length-1) {
name=name+"-";
}
}
System.out.println("name============="+name);
radioButton[j]=new JRadioButton(name);
radioMap.put(radioButton[j], tcComponent.getProperty("item_id"));
bg.add(radioButton[j]);
resultPanel.add((j+1)+".1.left.top",radioButton[j]);
}
// scrollPane.add(resultPanel);
} catch (Exception e1) {
e1.printStackTrace();
}
}
// this.disposeDialog();
// this.dispose();
}
}
// String objectName="";
Map<JRadioButton, String> radioMap=new HashMap<JRadioButton, String>();
}

@ -0,0 +1,890 @@
package com.connor.pro105.plm.creatTechWord;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.swing.ButtonGroup;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.AbstractAIFDialog;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentDataset;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemType;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.stylesheet.KPropertyLOVDisplayer;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.rac.util.PropertyLayout;
@SuppressWarnings("unchecked")
public class CreatTechWordDialogS extends AbstractAIFDialog implements ActionListener{
/**
*
*/
private static final long serialVersionUID = 1L;
private AbstractAIFApplication app;
private TCSession session;
private JPanel mainJpanel;
private JPanel leftJpanel;
private JPanel basicInfoJpanel;
private JPanel selectItemJpanel;
private JPanel rightJpanel;
private JCheckBox zjtsyq;
private JPanel createInfoJpanel;
private String selectType;
private String selectSecondDoc;
private String selectDocCategory;
private JButton okButton;
private JButton celButton;
private JButton searchButton;
private JButton selectButton;
JTextField[] searchField=null;
// JTextField itemNameField=new JTextField(15);
JRadioButton[] radioButton=null;
ButtonGroup bg=new ButtonGroup();
private JPanel bottomJpanel;
String opType;
public CreatTechWordDialogS(String opType, AbstractAIFApplication app) {
super(AIFUtility.getActiveDesktop());
this.app=app;
this.opType=opType;
this.session=(TCSession) app.getSession();
}
@Override
public void run() {
// super.run();//必须注掉,否则窗口显示不正常
try {
DocumentUtil.readProperty( session, "Connor_AVIC_NewDocumentBasicS", "Connor_AVIC_NewDocumentCreationS");//从excel中读取界面属性信息
} catch (IOException e) {
e.printStackTrace();
}
initUI();
}
Dimension dimension=new Dimension(250,30);
JLabel[] basicLabel=null;
JLabel[] searchLabel=null;
JTextField[] basicText=null;
JComboBox<String>[] basicCom=null;
Map<JLabel, Object> basicMap=new HashMap<JLabel, Object>();
Map<JLabel, Object> basicMap2=new LinkedHashMap<JLabel, Object>();//用来存放后缀等信息
Map<JLabel, String> basicPropertyMap=new HashMap<JLabel, String>();
Map<JLabel, Object> createMap=new HashMap<JLabel, Object>();
Map<JLabel, Object> searchMap=new HashMap<JLabel, Object>();
DefaultComboBoxModel<String> model1=null;
DefaultComboBoxModel<String> model2=null;
DefaultComboBoxModel<String> model3=null;
List<String> listq=null;
private void initUI() {
this.setTitle("软件文档创建");
okButton=new JButton("创建");
okButton.addActionListener(this);
celButton=new JButton("取消");
celButton.addActionListener(this);
searchButton=new JButton("查询");
this.getRootPane().setDefaultButton(searchButton);//设置当前面板的默认选中按钮
searchButton.addActionListener(this);
selectButton=new JButton("选择");
selectButton.addActionListener(this);
this.setLayout(new BorderLayout());
this.setSize(850, 550);
mainJpanel = new JPanel(new PropertyLayout());
mainJpanel.setPreferredSize(new Dimension(950, 600));
leftJpanel = new JPanel(new PropertyLayout());
leftJpanel.setPreferredSize(new Dimension(500, 600));
basicInfoJpanel = new JPanel(new PropertyLayout());
selectItemJpanel = new JPanel(new PropertyLayout());
selectItemJpanel.setPreferredSize(new Dimension(500, 300));
rightJpanel = new JPanel(new PropertyLayout());
rightJpanel.setPreferredSize(new Dimension(550, 350));
createInfoJpanel = new JPanel(new PropertyLayout());
// createInfoJpanel.setPreferredSize(new Dimension(400, 280));
basicInfoJpanel.add("1.1.left.top",new JLabel("<html><body><font size=3 color=#3CB371>零组件基本信息</font></body></html>"));
basicLabel=new JLabel[DocumentUtil.excelPre.length-2];
basicText=new JTextField[DocumentUtil.excelPre.length-2];
basicCom=new JComboBox[3];
int a=2;
String houzhui="";
for (int i = 1; i < DocumentUtil.excelPre.length-1; i++) {
String[] proValue = DocumentUtil.excelPre[i].split("=");
basicLabel[i-1]=new JLabel(proValue[0]);
basicLabel[i-1].setPreferredSize(new Dimension(90,25));
String value2= proValue[1];
basicInfoJpanel.add(a+".1.left.top",new JLabel(" "));
basicInfoJpanel.add(a+".2.left.top", basicLabel[i-1]);
if(value2.toLowerCase().startsWith("itemrevisionmaster")) {
basicText[i-1]=new JTextField(15);
basicInfoJpanel.add(a+".3.left.top", basicText[i-1]);
basicMap.put(basicLabel[i-1],basicText[i-1]);
basicPropertyMap.put(basicLabel[i-1], value2.split("\\.")[1]);
}else if(value2.toLowerCase().startsWith("sheet")){
// 如果是sheet就从表格中获取值 一级简号=sheet.itemrevisionmaster.ac5_yjjh
basicText[i-1]=new JTextField(15);
basicInfoJpanel.add(a+".3.left.top", basicText[i-1]);
basicMap.put(basicLabel[i-1],basicText[i-1]);
basicMap2.put(basicLabel[i-1],basicText[i-1]);
// basicPropertyMap.put(basicLabel[i-1], value2.split("\\.")[1]);
}else{
if(i==1) {
model1=new DefaultComboBoxModel<String>(DocumentUtil.jcomboxList_1.toArray(new String[DocumentUtil.jcomboxList_1.size()]));
basicCom[0]=new JComboBox<>(model1);
basicCom[0].setPreferredSize(dimension);
basicCom[0].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getItem() != null) {
selectType = (String) e.getItem();
System.out.println("1选择了==="+selectType);
List<String> list=DocumentUtil.map1_2.get(selectType);
List<String> list2=new ArrayList<>();
model2.removeAllElements();
// basicCom[1].removeAllItems();
for (int j = 0; j < list.size(); j++) {
String string = list.get(j);
System.out.println("212"+string);
list2.add(string.split("###")[1]);
model2.addElement(string.split("###")[1]);
// basicCom[1].addItem(string.split("###")[1]);
}
// model2=new DefaultComboBoxModel<String>(list2.toArray(new String[list2.size()]));
// basicCom[1]=new JComboBox(model2);
}
}
});
}else if(i==2) {
String xx=DocumentUtil.jcomboxList_1.get(0);
List<String> list=DocumentUtil.map1_2.get(xx);
List<String> list2=new ArrayList<>();
for (int j = 0; j < list.size(); j++) {
String string = list.get(j);
System.out.println("228"+string);
list2.add(string.split("###")[1]);
}
model2=new DefaultComboBoxModel<String>(list2.toArray(new String[list2.size()]));
basicCom[1]=new JComboBox<>(model2);
basicCom[1].setPreferredSize(dimension);
basicCom[1].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange()==ItemEvent.SELECTED) {
if(selectType==null) {
selectType = (String) basicCom[0].getSelectedItem();
}
selectSecondDoc = (String) e.getItem();
System.out.println("2选择了==="+selectType+"###"+selectSecondDoc+"www");
List<String> list=DocumentUtil.map2_3.get(selectType+"###"+selectSecondDoc);
listq=new ArrayList<String>();
model3.removeAllElements();
// basicCom[2].removeAllItems();
for (int j = 0; j < list.size(); j++) {
String string = list.get(j);
System.out.println(Thread.currentThread().getStackTrace()[1].getLineNumber()+string);
model3.addElement(string.split("-")[0]);//不加载后缀
listq.add(string);
// basicCom[2].addItem(string);
}
DocumentUtil.sethouzhui(listq, selectDocCategory, basicMap2);
}
}
});
}else if(i==3) {
String xx=DocumentUtil.jcomboxList_1.get(0);
List<String> list=DocumentUtil.map1_2.get(xx);
List<String> list2=DocumentUtil.map2_3.get(list.get(0));
final List<String> list2New=new ArrayList<String>();
for (int j = 0; j < list2.size(); j++) {
list2New.add(list2.get(j).split("-")[0]);
}
houzhui=list2.get(0);
System.out.println("houzhui======"+houzhui);
// 给文本框设置
model3=new DefaultComboBoxModel<String>(list2New.toArray(new String[list2New.size()]));
basicCom[2]=new JComboBox<>(model3);
basicCom[2].setPreferredSize(dimension);
basicCom[2].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange()==ItemEvent.SELECTED) {
selectDocCategory = (String) e.getItem();
System.out.println("3选择了==="+selectDocCategory);
// setFileName2();
DocumentUtil.reset(basicMap, createMap);
// 20200727 新增配置
if(listq==null) {
System.out.println("3选择了0==="+(String)basicCom[0].getItemAt(0)+"###"+(String)basicCom[1].getItemAt(0)+"www");
selectSecondDoc = (String)basicCom[1].getSelectedItem();
selectType= (String)basicCom[0].getSelectedItem();
System.out.println("3选择了1==="+selectType+"###"+selectSecondDoc+"www");
List<String> list=DocumentUtil.map2_3.get(selectType+"###"+selectSecondDoc);
listq=new ArrayList<String>();
// basicCom[2].removeAllItems();
for (int j = 0; j < list.size(); j++) {
String string = list.get(j);
System.out.println(Thread.currentThread().getStackTrace()[1].getLineNumber()+string);
model3.addElement(string.split("-")[0]);//不加载后缀
listq.add(string);
// basicCom[2].addItem(string);
}
}
DocumentUtil.sethouzhui(listq, selectDocCategory, basicMap2);
// String houzhui1=list2.get(0);
System.out.println("end");
}
}
});
}
basicInfoJpanel.add(a+".3.left.top", basicCom[i-1]);
basicMap.put(basicLabel[i-1],basicCom[i-1]);
}
a++;
}
//首次加载
int count1 = 1;
for (Map.Entry<JLabel, Object> me : basicMap2.entrySet()) {
JTextField field = (JTextField) me.getValue();
field.setText(houzhui.split("-")[count1]);
count1++;
}
leftJpanel.add("1.1.left.top",basicInfoJpanel);
int i=1;
selectItemJpanel.add(i+".1.left.top",new JLabel("<html><body><font size=4 color=#3CB371>选 择 零 组 件</font></body></html>"));
i++;
// selectItemJpanel.add(i+".1.left.top",new JLabel(" 查询选择零组件"));
// i++;
String[] values=session.getPreferenceService().getStringValues("Connor_AVIC_SearchS");
searchLabel=new JLabel[values.length-1];
searchField=new JTextField[values.length-1];
for (int j = 0; j < searchField.length; j++) {
searchField[j]=new JTextField(15);
searchLabel[j]=new JLabel(values[j+1]);
searchLabel[j].setPreferredSize(new Dimension(90,25));
searchMap.put(searchLabel[j], searchField[j]);
}
// session.search(arg0, arg1, arg2)
for (int j = 1; j < values.length; j++) {
// String string = values[j];
selectItemJpanel.add(i+".1.left.top",new JLabel(" "));
selectItemJpanel.add(i+".2.left.top",searchLabel[j-1]);
selectItemJpanel.add(i+".3.left.top",searchField[j-1]);
if(j==values.length-1) {
selectItemJpanel.add(i+".4.left.top",searchButton);
}
i++;
}
selectItemJpanel.add(i+".1.left.top",new JLabel(" "));
JLabel label= new JLabel("查询结果");
label.setPreferredSize(new Dimension(90,25));
selectItemJpanel.add(i+".2.left.top",label);
resultPanel=new JPanel(new PropertyLayout());
scrollPane=new JScrollPane(resultPanel);
scrollPane.setPreferredSize(new Dimension(250,150));
scrollPane.getVerticalScrollBar().setUnitIncrement(20);
selectItemJpanel.add(i+".3.left.top",scrollPane);
selectItemJpanel.add(i+".4.left.top",selectButton);
leftJpanel.add("2.1.left.top",selectItemJpanel);
createInfoJpanel.add("1.1.left.top",new JLabel("<html><body><font size=3 color=#3CB371>创建信息</font></body></html>"));
int b=2;
for (int j = 0; j < DocumentUtil.createInfo.length; j++) {
createInfoJpanel.add(b+".1.left.top",new JLabel(" "));
String[] string = DocumentUtil.createInfo[j].split("=");
DocumentUtil.createLabel[j]=new JLabel(string[0]);
DocumentUtil.createLabel[j].setPreferredSize(new Dimension(90,25));
createInfoJpanel.add(b+".2.left.top",DocumentUtil.createLabel[j]);
if(string.length>1) {
if(string[1].startsWith("#")) {//TODO
DocumentUtil.createCom[j] = new MultiCombo(session.getPreferenceService().getStringValues(string[1].substring(1)));
DocumentUtil.createCom[j].setPreferredSize(new Dimension(250, 30));
DocumentUtil.createCom[j].setEditable(true);
createMap.put(DocumentUtil.createLabel[j], DocumentUtil.createCom[j]);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.createCom[j]);
b++;
continue;
}
DefaultComboBoxModel<String> model;
String[] lovs=string[1].split(";");
List<String> list=new ArrayList<String>();
for (int k = 0; k < lovs.length; k++) {
list.add(lovs[k]);
}
model=new DefaultComboBoxModel<String>(list.toArray(new String[list.size()]));
DocumentUtil.createCom[j]=new JComboBox<>(model);
DocumentUtil.createCom[j].setPreferredSize(new Dimension(150, 30));
createMap.put(DocumentUtil.createLabel[j], DocumentUtil.createCom[j]);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.createCom[j]);
if(string[0].equals("密级")) {
DocumentUtil.mjCom=DocumentUtil.createCom[j];
createMap.put(DocumentUtil.createLabel[j], DocumentUtil.mjCom);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.mjCom);
DocumentUtil.createCom[j].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
try {
System.out.println("ip_clearance==========="+session.getUser().getStringProperty("ip_clearance"));
} catch (TCException e2) {
e2.printStackTrace();
}
System.out.println("选择了====="+e.getItem().toString());
if (e.getStateChange() == ItemEvent.SELECTED) {
try {
KPropertyLOVDisplayer.checkIP(e.getItem().toString());
} catch (Exception e1) {
DocumentUtil.mjCom.setSelectedIndex(-1);
MessageBox.post("用户密级低于数据修改后的密级,不能够执行此操作!","",MessageBox.INFORMATION);
}
}
}
});
}
}else {
DocumentUtil.createText[j]=new JTextField(15);
createMap.put(DocumentUtil.createLabel[j], DocumentUtil.createText[j]);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.createText[j]);
}
b++;
}
for(java.util.Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("编制部门")) {
String groupName=null;
try {
// groupName = session.getGroup().getFullName();//需要本地化
groupName=session.getGroup().getProperty("display_name");
if(groupName.split("\\.").length>0) {
groupName=groupName.split("\\.")[0];
}
} catch (TCException e1) {
e1.printStackTrace();
}
((JTextField)me.getValue()).setText(groupName);
}
}
rightJpanel.add("1.1.left.top",createInfoJpanel);
mainJpanel.add("1.1.left.top",leftJpanel);
mainJpanel.add("1.2.left.top",rightJpanel);
bottomJpanel=new JPanel(new FlowLayout());
bottomJpanel.add(okButton);
bottomJpanel.add(celButton);
//通过读取首选项,设置那些控件不可编辑(如果jlabel有*,*也得加上)
String[] editable=session.getPreferenceService().getStringValues("Connor_AVIC_editableS");
for (int j = 0; j < editable.length; j++) {
boolean boo=false;
String string = editable[j];
boo=DocumentUtil.setEditable(createMap,string);
if(boo==false) {
boo=DocumentUtil.setEditable(basicMap,string);
if(boo==false) {
DocumentUtil.setEditable(searchMap,string);
}
}
}
zjtsyq=new JCheckBox("<html><body><font size=3 color=#FF0000>主机特殊要求</font></body></html>");
zjtsyq.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JTextField field=null;
JTextField field1=null;
JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("文件编号")) {
field=((JTextField)me.getValue());
}
}
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().contains("产品型号")) {
field1=((JTextField)me.getValue());
}
if(me.getKey().getText().contains("图样代号")) {
field2=((JTextField)me.getValue());
}
}
if(zjtsyq.isSelected()) {
field.setEditable(true);
field.setText("");
field1.setEditable(true);
field2.setEditable(true);
}else {
field.setEditable(false);
field.setText("");
field1.setEditable(false);
field2.setEditable(false);
}
}
});
this.add(zjtsyq,BorderLayout.NORTH);
this.add(mainJpanel,BorderLayout.CENTER);
this.add(bottomJpanel,BorderLayout.SOUTH);
this.pack();
this.centerToScreen();
this.showDialog();
}
JPanel resultPanel=new JPanel(new PropertyLayout());
JScrollPane scrollPane=new JScrollPane(resultPanel);
@Override
public void actionPerformed(ActionEvent e) {
Object sourceObj = e.getSource();
if(sourceObj.equals(selectButton)){
this.getRootPane().setDefaultButton(okButton);//设置当前面板的默认选中按钮
String item_id="";
for(int i=0;i<radioButton.length;i++) {
if(radioButton[i].isSelected()) {
item_id=radioMap.get(radioButton[i]);
// item_id=radioButton[i].getText();
break;
}
}
if(item_id.length()==0) {
MessageBox.post("请选中对象","",MessageBox.INFORMATION);
}else {
try {
TCComponent[] comp=session.search("零组件 ID", new String[] {"零组件 ID"}, new String[] {item_id});
TCComponentItem item=((TCComponentItem)comp[0]);
TCComponent form=item.getLatestItemRevision().getRelatedComponents("IMAN_master_form_rev")[0];
for(Map.Entry<JLabel, String> me:basicPropertyMap.entrySet()) {
String property=me.getKey().getText();
System.out.println("property========="+property);
String value=form.getProperty(me.getValue());
System.out.println("value========="+value);
JTextField field=(JTextField) basicMap.get(me.getKey());
field.setText(value);
//如果是图样代号取搜索对象的item_id
if(property.contains("图样代号")) {
field.setText(item.getProperty("item_id"));
}
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
//创建属性赋值
//名称:型号+文档类别+流水(允许手工修改)
// JTextField field0=null;
// JComboBox<String> combox1=null;
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().contains("产品型号")) {
// field0=((JTextField)me.getValue());
}
if(me.getKey().getText().startsWith("文档类别")) {
// combox1=((JComboBox)me.getValue());
}
}
//点击选择不在更新名称,实体文件名称和文件编号
// JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("名称")) {
// field2=((JTextField)me.getValue());
}
}
String yjjh="";//一级简号
for(Map.Entry<JLabel, Object> me: basicMap2.entrySet()) {
if(me.getKey().getText().equals(DocumentUtil.wz)) {
yjjh=((JTextField)me.getValue()).getText();
}
}
DocumentUtil.setFileName2("Connor_AVIC_NewDocumentSerialS",basicMap,createMap,zjtsyq, session, basicCom,yjjh);
}else if(sourceObj.equals(okButton)){
//
//增加必填项的校验
JTextField fieldX=null;
String message="";
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().contains("*")&& me.getValue() instanceof JTextField) {
System.out.println("598"+me.getKey().getText());
fieldX=((JTextField)me.getValue());
if(fieldX.getText().trim().length()==0) {
message=message+me.getKey().getText()+";";
}
}
}
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("*")) {
System.out.println("608"+me.getKey().getText());
fieldX=((JTextField)me.getValue());
if(fieldX.getText().trim().length()==0) {
message=message+me.getKey().getText()+";";
}
}
}
if(message.length()>0) {
MessageBox.post("请检查必填项:"+message,"",MessageBox.INFORMATION);
}else {
//校验名称是否带有非法字符
JTextField fieldName=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("实体文件名称")) {
fieldName=((JTextField)me.getValue());
}
}
String filename=fieldName.getText();
if(DocumentUtil.isValidFileName(filename)==false) {
MessageBox.post("实体文件名称含有非法字符,请联系管理员修改模板配置文件","",MessageBox.INFORMATION);
}else {
if(zjtsyq.isSelected()==true) {
JTextField field=null;
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().contains("产品型号")) {
field=((JTextField)me.getValue());
}
}
if(field.getText().length()>0) {
// this.disposeDialog();
// this.dispose();
}else {
MessageBox.post("产品型号不能为空","",MessageBox.INFORMATION);
}
}else {
// this.disposeDialog();
// this.dispose();
}
// 创建
String yjjh="";//一级简号
for(Map.Entry<JLabel, Object> me: basicMap2.entrySet()) {
if(me.getKey().getText().equals(DocumentUtil.wz)) {
yjjh=((JTextField)me.getValue()).getText();
}
}
DocumentUtil.setFileName("Connor_AVIC_NewDocumentSerialS", basicMap, createMap, session, zjtsyq, basicCom,yjjh);
System.out.println("文件编号======"+DocumentUtil.fileCode);
/*
* if(true) { return ; }
*/
try {
Map<String,String> map=DocumentUtil.getPuid("Connor_AVIC_NewDocumentBasicS",session);
selectType=(String) basicCom[0].getSelectedItem();
selectSecondDoc=(String) basicCom[1].getSelectedItem();
selectDocCategory=(String) basicCom[2].getSelectedItem();
String puid="";
for (Map.Entry<String, String> me:map.entrySet()) {
String keyName=me.getKey();
if(keyName.contains(selectType+"-"+selectSecondDoc+"-"+selectDocCategory)) {
puid=map.get(keyName);
}
}
// String puid=map.get(selectType+"-"+selectSecondDoc+"-"+selectDocCategory);
// System.out.println(selectType+"-"+selectSecondDoc+"-"+selectDocCategory);
System.out.println(puid);
try {
TCComponentDataset comp=(TCComponentDataset) session.stringToComponent(puid);
TCComponentDataset newdataset=null;
if(comp==null) {
if(puid.length()>0) {
MessageBox.post("找不到该类的文档模板","",MessageBox.INFORMATION);
return;
}else {
newdataset=null;
}
}else {
newdataset=comp.saveAs(null);
}
// 名称
// JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("名称")) {
// field2=((JTextField)me.getValue());
}
}
//实体文件名称
// JTextField field3=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("实体文件名称")) {
// field3=((JTextField)me.getValue());
}
}
// objectName=field3.getText();
// newdataset.setStringProperty("object_name", field3.getText());
if(newdataset!=null) {
newdataset.setStringProperty("object_name", DocumentUtil.entityFileName);
}
TCComponent compX= (TCComponent) app.getTargetComponent();
TCComponentItemType type=(TCComponentItemType) session.getTypeComponent("Document");
// JTextField field4=null;
//军机以型别作为版本值
JComboBox<String> field5=null;
JComboBox<String> field6=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("文件编号")) {
// field4=((JTextField)me.getValue());
}
if(me.getKey().getText().contains("型别")) {
field5=(JComboBox<String>)me.getValue();
}
if(me.getKey().getText().contains("版本")) {
field6=(JComboBox<String>)me.getValue();
}
}
// TCComponentItem item=type.create(field4.getText(), field5.getSelectedItem()+"00", "Ac5_MilitaryDoc",
// field2.getText(), "", null);
if(DocumentUtil.fileCode.length()>0) {
boolean create=false;
try {
// 查询
// TCComponent[] comps=session.search("DocSearch1", new String[] {"文档编号"}, new String[] {DocumentUtil.fileCode});
TCComponent[] comps=session.search("零组件 ID", new String[] {"零组件 ID"}, new String[] {DocumentUtil.fileCode});
if(comps.length>0) {
create=false;
}else {
create=true;
}
} catch (Exception e2) {
e2.printStackTrace();
}
if(create==false) {
// MessageBox.post("文件编号"+DocumentUtil.fileCode+"不唯一,请修改","",MessageBox.INFORMATION);
MessageBox.post("ID"+DocumentUtil.fileCode+"不符合唯一性规则,请重新填写","",MessageBox.INFORMATION);
}else {
this.disposeDialog();
this.dispose();
DocumentUtil.createNewItem("Connor_AVIC_NewDocumentThesignS",getClass(),session,basicMap,
createMap,DocumentUtil.entityFileName,DocumentUtil.fileCode,type,DocumentUtil.fileName,
compX,field5,field6,newdataset,"Ac5_SoftTechDoc","Connor_AVIC_SetFormPropertyS",DocumentUtil.yjjh);
}
}else {
MessageBox.post("请填写文件编号","",MessageBox.INFORMATION);
}
} catch (TCException e1) {
e1.printStackTrace();
}
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}else if(sourceObj.equals(celButton)){
this.disposeDialog();
this.dispose();
}else if(sourceObj.equals(searchButton)){
this.getRootPane().setDefaultButton(selectButton);//设置当前面板的默认选中按钮
String[] values=session.getPreferenceService().getStringValues("Connor_AVIC_SearchS");
String[] selectItem=new String[values.length-1];
String[] selectValue=new String[values.length-1];
int i=0;
boolean isNull=true;
for(java.util.Map.Entry<JLabel, Object> me:searchMap.entrySet()) {
JTextField field=(JTextField) me.getValue();
String value=field.getText().trim();
if(value.length()==0) {
// value="*";
}else {
i++;
}
}
selectItem=new String[i];
selectValue=new String[i];
i=0;
for(java.util.Map.Entry<JLabel, Object> me:searchMap.entrySet()) {
String key=me.getKey().getText();
JTextField field=(JTextField) me.getValue();
String value=field.getText().trim();
if(value.length()==0) {
// value="*";
}else {
value="*"+value+"*";
isNull=false;
selectItem[i]=key;
selectValue[i]=value;
i++;
}
}
if(isNull==true) {
MessageBox.post("所搜条目不能全为空","",MessageBox.INFORMATION);
}else {
try {
// TCComponent[] comps=session.search(values[0], selectItem, selectValue);
TCComponent[] comps=DocumentUtil.getResult(session,searchMap,values[0]);
System.out.println("共有========"+comps.length);
this.disposeDialog();
this.showDialog();
radioButton=new JRadioButton[comps.length];
radioMap=new HashMap<JRadioButton, String>();
resultPanel.removeAll();
// scrollPane.remove(resultPanel);
bg=new ButtonGroup();
//查询结果设置成可配置的属性
String[] properties=session.getPreferenceService().getStringValues("Connor_AVIC_SearchPropertiesS");
if(comps.length==0) {
MessageBox.post("查询结果为空","",MessageBox.INFORMATION);
}
for (int j = 0; j < comps.length; j++) {
TCComponent tcComponent = comps[j];
String name="";
for (int k = 0; k < properties.length; k++) {
//区分版本和对象
TCComponent tcComponent0=null;
String[] ps=properties[k].split("\\.");
System.out.println();
if(ps[0].toUpperCase().equals("REV")){
tcComponent0=tcComponent;
}else if(ps[0].toUpperCase().equals("REVMASTER")) {
tcComponent0=tcComponent.getRelatedComponents("IMAN_master_form_rev")[0];
}
name=name+tcComponent0.getProperty(ps[1]);
if(k<properties.length-1) {
name=name+"-";
}
}
System.out.println("name============="+name);
radioButton[j]=new JRadioButton(name);
radioMap.put(radioButton[j], tcComponent.getProperty("item_id"));
bg.add(radioButton[j]);
resultPanel.add((j+1)+".1.left.top",radioButton[j]);
}
// scrollPane.add(resultPanel);
} catch (Exception e1) {
e1.printStackTrace();
}
}
// this.disposeDialog();
// this.dispose();
}
}
// String objectName="";
Map<JRadioButton, String> radioMap=new HashMap<JRadioButton, String>();
}

@ -0,0 +1,891 @@
package com.connor.pro105.plm.creatTechWord;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.swing.ButtonGroup;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.AbstractAIFDialog;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentDataset;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemType;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.stylesheet.KPropertyLOVDisplayer;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.rac.util.PropertyLayout;
@SuppressWarnings("unchecked")
public class CreatTechWordDialogW extends AbstractAIFDialog implements ActionListener{
/**
*
*/
private static final long serialVersionUID = 1L;
private AbstractAIFApplication app;
private TCSession session;
private JPanel mainJpanel;
private JPanel leftJpanel;
private JPanel basicInfoJpanel;
private JPanel selectItemJpanel;
private JPanel rightJpanel;
private JCheckBox zjtsyq;
private JPanel createInfoJpanel;
private String selectType;
private String selectSecondDoc;
private String selectDocCategory;
private JButton okButton;
private JButton celButton;
private JButton searchButton;
private JButton selectButton;
JTextField[] searchField=null;
// JTextField itemNameField=new JTextField(15);
JRadioButton[] radioButton=null;
ButtonGroup bg=new ButtonGroup();
private JPanel bottomJpanel;
String opType;
public CreatTechWordDialogW(String opType, AbstractAIFApplication app) {
super(AIFUtility.getActiveDesktop());
this.app=app;
this.opType=opType;
this.session=(TCSession) app.getSession();
}
@Override
public void run() {
// super.run();//必须注掉,否则窗口显示不正常
try {
DocumentUtil.readProperty( session, "Connor_AVIC_NewDocumentBasicW", "Connor_AVIC_NewDocumentCreationW");//从excel中读取界面属性信息
} catch (Exception e) {
e.printStackTrace();
}
initUI();
}
Dimension dimension=new Dimension(250,30);
JLabel[] basicLabel=null;
JLabel[] searchLabel=null;
JTextField[] basicText=null;
JComboBox<String>[] basicCom=null;
Map<JLabel, Object> basicMap=new HashMap<JLabel, Object>();
Map<JLabel, Object> basicMap2=new LinkedHashMap<JLabel, Object>();//用来存放后缀等信息
Map<JLabel, String> basicPropertyMap=new HashMap<JLabel, String>();
Map<JLabel, Object> createMap=new HashMap<JLabel, Object>();
Map<JLabel, Object> searchMap=new HashMap<JLabel, Object>();
DefaultComboBoxModel<String> model1=null;
DefaultComboBoxModel<String> model2=null;
DefaultComboBoxModel<String> model3=null;
List<String> listq=null;
private void initUI() {
this.setTitle("无型别文档创建");
okButton=new JButton("创建");
okButton.addActionListener(this);
celButton=new JButton("取消");
celButton.addActionListener(this);
searchButton=new JButton("查询");
this.getRootPane().setDefaultButton(searchButton);//设置当前面板的默认选中按钮
searchButton.addActionListener(this);
selectButton=new JButton("选择");
selectButton.addActionListener(this);
this.setLayout(new BorderLayout());
this.setSize(850, 550);
mainJpanel = new JPanel(new PropertyLayout());
mainJpanel.setPreferredSize(new Dimension(950, 600));
leftJpanel = new JPanel(new PropertyLayout());
leftJpanel.setPreferredSize(new Dimension(500, 600));
basicInfoJpanel = new JPanel(new PropertyLayout());
selectItemJpanel = new JPanel(new PropertyLayout());
selectItemJpanel.setPreferredSize(new Dimension(500, 300));
rightJpanel = new JPanel(new PropertyLayout());
rightJpanel.setPreferredSize(new Dimension(550, 350));
createInfoJpanel = new JPanel(new PropertyLayout());
// createInfoJpanel.setPreferredSize(new Dimension(400, 280));
basicInfoJpanel.add("1.1.left.top",new JLabel("<html><body><font size=3 color=#3CB371>零组件基本信息</font></body></html>"));
basicLabel=new JLabel[DocumentUtil.excelPre.length-2];
basicText=new JTextField[DocumentUtil.excelPre.length-2];
basicCom=new JComboBox[3];
int a=2;
String houzhui="";
for (int i = 1; i < DocumentUtil.excelPre.length-1; i++) {
String[] proValue = DocumentUtil.excelPre[i].split("=");
basicLabel[i-1]=new JLabel(proValue[0]);
basicLabel[i-1].setPreferredSize(new Dimension(90,25));
String value2= proValue[1];
basicInfoJpanel.add(a+".1.left.top",new JLabel(" "));
basicInfoJpanel.add(a+".2.left.top", basicLabel[i-1]);
if(value2.toLowerCase().startsWith("itemrevisionmaster")) {
basicText[i-1]=new JTextField(15);
basicInfoJpanel.add(a+".3.left.top", basicText[i-1]);
basicMap.put(basicLabel[i-1],basicText[i-1]);
basicPropertyMap.put(basicLabel[i-1], value2.split("\\.")[1]);
}else if(value2.toLowerCase().startsWith("sheet")){
// 如果是sheet就从表格中获取值 一级简号=sheet.itemrevisionmaster.ac5_yjjh
basicText[i-1]=new JTextField(15);
basicInfoJpanel.add(a+".3.left.top", basicText[i-1]);
basicMap.put(basicLabel[i-1],basicText[i-1]);
basicMap2.put(basicLabel[i-1],basicText[i-1]);
// basicPropertyMap.put(basicLabel[i-1], value2.split("\\.")[1]);
}else{
if(i==1) {
model1=new DefaultComboBoxModel<String>(DocumentUtil.jcomboxList_1.toArray(new String[DocumentUtil.jcomboxList_1.size()]));
basicCom[0]=new JComboBox<>(model1);
basicCom[0].setPreferredSize(dimension);
basicCom[0].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getItem() != null) {
selectType = (String) e.getItem();
System.out.println("1选择了==="+selectType);
List<String> list=DocumentUtil.map1_2.get(selectType);
List<String> list2=new ArrayList<>();
model2.removeAllElements();
// basicCom[1].removeAllItems();
for (int j = 0; j < list.size(); j++) {
String string = list.get(j);
System.out.println("212"+string);
list2.add(string.split("###")[1]);
model2.addElement(string.split("###")[1]);
// basicCom[1].addItem(string.split("###")[1]);
}
// model2=new DefaultComboBoxModel<String>(list2.toArray(new String[list2.size()]));
// basicCom[1]=new JComboBox(model2);
}
}
});
}else if(i==2) {
String xx=DocumentUtil.jcomboxList_1.get(0);
List<String> list=DocumentUtil.map1_2.get(xx);
List<String> list2=new ArrayList<>();
for (int j = 0; j < list.size(); j++) {
String string = list.get(j);
System.out.println("228"+string);
list2.add(string.split("###")[1]);
}
model2=new DefaultComboBoxModel<String>(list2.toArray(new String[list2.size()]));
basicCom[1]=new JComboBox<>(model2);
basicCom[1].setPreferredSize(dimension);
basicCom[1].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange()==ItemEvent.SELECTED) {
selectSecondDoc = (String) e.getItem();
if(selectType==null) {
selectType = (String) basicCom[0].getSelectedItem();
}
System.out.println("2选择了==="+selectType+"###"+selectSecondDoc+"www");
List<String> list=DocumentUtil.map2_3.get(selectType+"###"+selectSecondDoc);
listq=new ArrayList<String>();
model3.removeAllElements();
// basicCom[2].removeAllItems();
for (int j = 0; j < list.size(); j++) {
String string = list.get(j);
System.out.println(Thread.currentThread().getStackTrace()[1].getLineNumber()+string);
model3.addElement(string.split("-")[0]);//不加载后缀
listq.add(string);
// basicCom[2].addItem(string);
}
DocumentUtil.sethouzhui(listq, selectDocCategory, basicMap2);
}
}
});
}else if(i==3) {
String xx=DocumentUtil.jcomboxList_1.get(0);
List<String> list=DocumentUtil.map1_2.get(xx);
List<String> list2=DocumentUtil.map2_3.get(list.get(0));
final List<String> list2New=new ArrayList<String>();
for (int j = 0; j < list2.size(); j++) {
list2New.add(list2.get(j).split("-")[0]);
}
houzhui=list2.get(0);
System.out.println("houzhui======"+houzhui);
// 给文本框设置
model3=new DefaultComboBoxModel<String>(list2New.toArray(new String[list2New.size()]));
basicCom[2]=new JComboBox<>(model3);
basicCom[2].setPreferredSize(dimension);
basicCom[2].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange()==ItemEvent.SELECTED) {
selectDocCategory = (String) e.getItem();
System.out.println("3选择了==="+selectDocCategory);
// setFileName2();
DocumentUtil.reset(basicMap, createMap);
// 20200727 新增配置
if(listq==null) {
System.out.println("3选择了0==="+(String)basicCom[0].getItemAt(0)+"###"+(String)basicCom[1].getItemAt(0)+"www");
selectSecondDoc = (String)basicCom[1].getSelectedItem();
selectType= (String)basicCom[0].getSelectedItem();
System.out.println("3选择了1==="+selectType+"###"+selectSecondDoc+"www");
List<String> list=DocumentUtil.map2_3.get(selectType+"###"+selectSecondDoc);
listq=new ArrayList<String>();
// basicCom[2].removeAllItems();
for (int j = 0; j < list.size(); j++) {
String string = list.get(j);
System.out.println(Thread.currentThread().getStackTrace()[1].getLineNumber()+string);
model3.addElement(string.split("-")[0]);//不加载后缀
listq.add(string);
// basicCom[2].addItem(string);
}
}
DocumentUtil.sethouzhui(listq, selectDocCategory, basicMap2);
// String houzhui1=list2.get(0);
System.out.println("end");
}
}
});
}
basicInfoJpanel.add(a+".3.left.top", basicCom[i-1]);
basicMap.put(basicLabel[i-1],basicCom[i-1]);
}
a++;
}
//首次加载
int count1 = 1;
for (Map.Entry<JLabel, Object> me : basicMap2.entrySet()) {
JTextField field = (JTextField) me.getValue();
field.setText(houzhui.split("-")[count1]);
count1++;
}
leftJpanel.add("1.1.left.top",basicInfoJpanel);
int i=1;
selectItemJpanel.add(i+".1.left.top",new JLabel("<html><body><font size=4 color=#3CB371>选 择 零 组 件</font></body></html>"));
i++;
// selectItemJpanel.add(i+".1.left.top",new JLabel(" 查询选择零组件"));
// i++;
String[] values=session.getPreferenceService().getStringValues("Connor_AVIC_SearchW");
searchLabel=new JLabel[values.length-1];
searchField=new JTextField[values.length-1];
for (int j = 0; j < searchField.length; j++) {
searchField[j]=new JTextField(15);
searchLabel[j]=new JLabel(values[j+1]);
searchLabel[j].setPreferredSize(new Dimension(90,25));
searchMap.put(searchLabel[j], searchField[j]);
}
// session.search(arg0, arg1, arg2)
for (int j = 1; j < values.length; j++) {
// String string = values[j];
selectItemJpanel.add(i+".1.left.top",new JLabel(" "));
selectItemJpanel.add(i+".2.left.top",searchLabel[j-1]);
selectItemJpanel.add(i+".3.left.top",searchField[j-1]);
if(j==values.length-1) {
selectItemJpanel.add(i+".4.left.top",searchButton);
}
i++;
}
selectItemJpanel.add(i+".1.left.top",new JLabel(" "));
JLabel label= new JLabel("查询结果");
label.setPreferredSize(new Dimension(90,25));
selectItemJpanel.add(i+".2.left.top",label);
resultPanel=new JPanel(new PropertyLayout());
scrollPane=new JScrollPane(resultPanel);
scrollPane.setPreferredSize(new Dimension(250,150));
scrollPane.getVerticalScrollBar().setUnitIncrement(20);
selectItemJpanel.add(i+".3.left.top",scrollPane);
selectItemJpanel.add(i+".4.left.top",selectButton);
leftJpanel.add("2.1.left.top",selectItemJpanel);
createInfoJpanel.add("1.1.left.top",new JLabel("<html><body><font size=3 color=#3CB371>创建信息</font></body></html>"));
int b=2;
for (int j = 0; j < DocumentUtil.createInfo.length; j++) {
createInfoJpanel.add(b+".1.left.top",new JLabel(" "));
String[] string = DocumentUtil.createInfo[j].split("=");
DocumentUtil.createLabel[j]=new JLabel(string[0]);
DocumentUtil.createLabel[j].setPreferredSize(new Dimension(90,25));
createInfoJpanel.add(b+".2.left.top",DocumentUtil.createLabel[j]);
if(string.length>1) {
if(string[1].startsWith("#")) {//TODO
DocumentUtil.createCom[j] = new MultiCombo(session.getPreferenceService().getStringValues(string[1].substring(1)));
DocumentUtil.createCom[j].setPreferredSize(new Dimension(250, 30));
DocumentUtil.createCom[j].setEditable(true);
createMap.put(DocumentUtil.createLabel[j], DocumentUtil.createCom[j]);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.createCom[j]);
b++;
continue;
}
DefaultComboBoxModel<String> model;
String[] lovs=string[1].split(";");
List<String> list=new ArrayList<String>();
for (int k = 0; k < lovs.length; k++) {
list.add(lovs[k]);
}
model=new DefaultComboBoxModel<String>(list.toArray(new String[list.size()]));
DocumentUtil.createCom[j]=new JComboBox<>(model);
DocumentUtil.createCom[j].setPreferredSize(new Dimension(150, 30));
createMap.put(DocumentUtil.createLabel[j], DocumentUtil.createCom[j]);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.createCom[j]);
if(string[0].equals("密级")) {
DocumentUtil.mjCom=DocumentUtil.createCom[j];
createMap.put(DocumentUtil.createLabel[j], DocumentUtil.mjCom);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.mjCom);
DocumentUtil.createCom[j].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
try {
System.out.println("ip_clearance==========="+session.getUser().getStringProperty("ip_clearance"));
} catch (Exception e2) {
e2.printStackTrace();
}
System.out.println("选择了====="+e.getItem().toString());
if (e.getStateChange() == ItemEvent.SELECTED) {
try {
KPropertyLOVDisplayer.checkIP(e.getItem().toString());
} catch (Exception e1) {
DocumentUtil.mjCom.setSelectedIndex(-1);
MessageBox.post("用户密级低于数据修改后的密级,不能够执行此操作!","",MessageBox.INFORMATION);
}
}
}
});
}
}else {
DocumentUtil.createText[j]=new JTextField(15);
createMap.put(DocumentUtil.createLabel[j], DocumentUtil.createText[j]);
createInfoJpanel.add(b+".3.left.top",DocumentUtil.createText[j]);
}
b++;
}
for(java.util.Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("编制部门")) {
String groupName=null;
try {
// groupName = session.getGroup().getFullName();//需要本地化
groupName=session.getGroup().getProperty("display_name");
if(groupName.split("\\.").length>0) {
groupName=groupName.split("\\.")[0];
}
} catch (Exception e1) {
e1.printStackTrace();
}
((JTextField)me.getValue()).setText(groupName);
}
}
rightJpanel.add("1.1.left.top",createInfoJpanel);
mainJpanel.add("1.1.left.top",leftJpanel);
mainJpanel.add("1.2.left.top",rightJpanel);
bottomJpanel=new JPanel(new FlowLayout());
bottomJpanel.add(okButton);
bottomJpanel.add(celButton);
//通过读取首选项,设置那些控件不可编辑(如果jlabel有*,*也得加上)
String[] editable=session.getPreferenceService().getStringValues("Connor_AVIC_editableW");
for (int j = 0; j < editable.length; j++) {
boolean boo=false;
String string = editable[j];
boo=DocumentUtil.setEditable(createMap,string);
if(boo==false) {
boo=DocumentUtil.setEditable(basicMap,string);
if(boo==false) {
DocumentUtil.setEditable(searchMap,string);
}
}
}
zjtsyq=new JCheckBox("<html><body><font size=3 color=#FF0000>主机特殊要求</font></body></html>");
zjtsyq.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JTextField field=null;
JTextField field1=null;
JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("文件编号")) {
field=((JTextField)me.getValue());
}
}
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().contains("产品型号")) {
field1=((JTextField)me.getValue());
}
if(me.getKey().getText().contains("图样代号")) {
field2=((JTextField)me.getValue());
}
}
if(zjtsyq.isSelected()) {
field.setEditable(true);
field.setText("");
field1.setEditable(true);
field2.setEditable(true);
}else {
field.setEditable(false);
field.setText("");
field1.setEditable(false);
field2.setEditable(false);
}
}
});
this.add(zjtsyq,BorderLayout.NORTH);
this.add(mainJpanel,BorderLayout.CENTER);
this.add(bottomJpanel,BorderLayout.SOUTH);
this.pack();
this.centerToScreen();
this.showDialog();
}
JPanel resultPanel=new JPanel(new PropertyLayout());
JScrollPane scrollPane=new JScrollPane(resultPanel);
@Override
public void actionPerformed(ActionEvent e) {
Object sourceObj = e.getSource();
if(sourceObj.equals(selectButton)){
this.getRootPane().setDefaultButton(okButton);//设置当前面板的默认选中按钮
String item_id="";
for(int i=0;i<radioButton.length;i++) {
if(radioButton[i].isSelected()) {
item_id=radioMap.get(radioButton[i]);
// item_id=radioButton[i].getText();
break;
}
}
if(item_id.length()==0) {
MessageBox.post("请选中对象","",MessageBox.INFORMATION);
}else {
try {
TCComponent[] comp=session.search("零组件 ID", new String[] {"零组件 ID"}, new String[] {item_id});
TCComponentItem item=((TCComponentItem)comp[0]);
TCComponent form=item.getLatestItemRevision().getRelatedComponents("IMAN_master_form_rev")[0];
for(Map.Entry<JLabel, String> me:basicPropertyMap.entrySet()) {
String property=me.getKey().getText();
System.out.println("property========="+property);
String value=form.getProperty(me.getValue());
System.out.println("value========="+value);
JTextField field=(JTextField) basicMap.get(me.getKey());
field.setText(value);
//如果是图样代号取搜索对象的item_id
if(property.contains("图样代号")) {
field.setText(item.getProperty("item_id"));
}
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
//创建属性赋值
//名称:型号+文档类别+流水(允许手工修改)
// JTextField field0=null;
// JComboBox<String> combox1=null;
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().contains("产品型号")) {
// field0=((JTextField)me.getValue());
}
if(me.getKey().getText().startsWith("文档类别")) {
// combox1=((JComboBox)me.getValue());
}
}
//点击选择不在更新名称,实体文件名称和文件编号
// JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("名称")) {
// field2=((JTextField)me.getValue());
}
}
String yjjh="";//一级简号
for(Map.Entry<JLabel, Object> me: basicMap2.entrySet()) {
if(me.getKey().getText().equals(DocumentUtil.wz)) {
yjjh=((JTextField)me.getValue()).getText();
}
}
DocumentUtil.setFileName2("Connor_AVIC_NewDocumentSerialW",basicMap,createMap,zjtsyq, session, basicCom,yjjh);
}else if(sourceObj.equals(okButton)){
//
//增加必填项的校验
JTextField fieldX=null;
String message="";
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().contains("*")&& me.getValue() instanceof JTextField) {
System.out.println("598"+me.getKey().getText());
fieldX=((JTextField)me.getValue());
if(fieldX.getText().trim().length()==0) {
message=message+me.getKey().getText()+";";
}
}
}
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("*")) {
System.out.println("608"+me.getKey().getText());
fieldX=((JTextField)me.getValue());
if(fieldX.getText().trim().length()==0) {
message=message+me.getKey().getText()+";";
}
}
}
if(message.length()>0) {
MessageBox.post("请检查必填项:"+message,"",MessageBox.INFORMATION);
}else {
//校验名称是否带有非法字符
JTextField fieldName=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("实体文件名称")) {
fieldName=((JTextField)me.getValue());
}
}
String filename=fieldName.getText();
if(DocumentUtil.isValidFileName(filename)==false) {
MessageBox.post("实体文件名称含有非法字符,请联系管理员修改模板配置文件","",MessageBox.INFORMATION);
}else {
if(zjtsyq.isSelected()==true) {
JTextField field=null;
for(Map.Entry<JLabel, Object> me:basicMap.entrySet()) {
if(me.getKey().getText().contains("产品型号")) {
field=((JTextField)me.getValue());
}
}
if(field.getText().length()>0) {
// this.disposeDialog();
// this.dispose();
}else {
MessageBox.post("产品型号不能为空","",MessageBox.INFORMATION);
}
}else {
// this.disposeDialog();
// this.dispose();
}
// 创建
String yjjh="";//一级简号
for(Map.Entry<JLabel, Object> me: basicMap2.entrySet()) {
if(me.getKey().getText().equals(DocumentUtil.wz)) {
yjjh=((JTextField)me.getValue()).getText();
}
}
DocumentUtil.setFileName("Connor_AVIC_NewDocumentSerialW", basicMap, createMap, session, zjtsyq, basicCom,yjjh);
System.out.println("文件编号======"+DocumentUtil.fileCode);
/*
* if(true) { return ; }
*/
try {
Map<String,String> map=DocumentUtil.getPuid("Connor_AVIC_NewDocumentBasicW",session);
selectType=(String) basicCom[0].getSelectedItem();
selectSecondDoc=(String) basicCom[1].getSelectedItem();
selectDocCategory=(String) basicCom[2].getSelectedItem();
String puid="";
for (Map.Entry<String, String> me:map.entrySet()) {
String keyName=me.getKey();
if(keyName.contains(selectType+"-"+selectSecondDoc+"-"+selectDocCategory)) {
puid=map.get(keyName);
}
}
// String puid=map.get(selectType+"-"+selectSecondDoc+"-"+selectDocCategory);
// System.out.println(selectType+"-"+selectSecondDoc+"-"+selectDocCategory);
System.out.println(puid);
try {
TCComponentDataset comp=(TCComponentDataset) session.stringToComponent(puid);
TCComponentDataset newdataset=null;
if(comp==null) {
if(puid.length()>0) {
MessageBox.post("找不到该类的文档模板","",MessageBox.INFORMATION);
return;
}else {
newdataset=null;
}
}else {
newdataset=comp.saveAs(null);
}
// 名称
// JTextField field2=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().startsWith("名称")) {
// field2=((JTextField)me.getValue());
}
}
//实体文件名称
// JTextField field3=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("实体文件名称")) {
// field3=((JTextField)me.getValue());
}
}
// objectName=field3.getText();
// newdataset.setStringProperty("object_name", field3.getText());
if(newdataset!=null) {
newdataset.setStringProperty("object_name", DocumentUtil.entityFileName);
}
TCComponent compX= (TCComponent) app.getTargetComponent();
TCComponentItemType type=(TCComponentItemType) session.getTypeComponent("Document");
// JTextField field4=null;
//军机以型别作为版本值
JComboBox<String> field5=null;
JComboBox<String> field6=null;
for(Map.Entry<JLabel, Object> me:createMap.entrySet()) {
if(me.getKey().getText().contains("文件编号")) {
// field4=((JTextField)me.getValue());
}
if(me.getKey().getText().contains("型别")) {
field5=(JComboBox<String>)me.getValue();
}
if(me.getKey().getText().contains("版本")) {
field6=(JComboBox<String>)me.getValue();
}
}
// TCComponentItem item=type.create(field4.getText(), field5.getSelectedItem()+"00", "Ac5_MilitaryDoc",
// field2.getText(), "", null);
if(DocumentUtil.fileCode.length()>0) {
boolean create=false;
try {
// 查询
// TCComponent[] comps=session.search("DocSearch1", new String[] {"文档编号"}, new String[] {DocumentUtil.fileCode});
TCComponent[] comps=session.search("零组件 ID", new String[] {"零组件 ID"}, new String[] {DocumentUtil.fileCode});
if(comps.length>0) {
create=false;
}else {
create=true;
}
} catch (Exception e2) {
e2.printStackTrace();
}
if(create==false) {
// MessageBox.post("文件编号"+DocumentUtil.fileCode+"不唯一,请修改","",MessageBox.INFORMATION);
MessageBox.post("ID"+DocumentUtil.fileCode+"不符合唯一性规则,请重新填写","",MessageBox.INFORMATION);
}else {
this.disposeDialog();
this.dispose();
DocumentUtil.createNewItem("Connor_AVIC_NewDocumentThesignW",getClass(),session,basicMap,createMap,
DocumentUtil.entityFileName,DocumentUtil.fileCode,type,DocumentUtil.fileName,compX,field5,
field6,newdataset,"Ac5_GeneralDoc","Connor_AVIC_SetFormPropertyW",DocumentUtil.yjjh);
}
}else {
MessageBox.post("请填写文件编号","",MessageBox.INFORMATION);
}
} catch (Exception e1) {
e1.printStackTrace();
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
}else if(sourceObj.equals(celButton)){
this.disposeDialog();
this.dispose();
}else if(sourceObj.equals(searchButton)){
this.getRootPane().setDefaultButton(selectButton);//设置当前面板的默认选中按钮
String[] values=session.getPreferenceService().getStringValues("Connor_AVIC_SearchW");
String[] selectItem=new String[values.length-1];
String[] selectValue=new String[values.length-1];
int i=0;
boolean isNull=true;
for(java.util.Map.Entry<JLabel, Object> me:searchMap.entrySet()) {
JTextField field=(JTextField) me.getValue();
String value=field.getText().trim();
if(value.length()==0) {
// value="*";
}else {
i++;
}
}
selectItem=new String[i];
selectValue=new String[i];
i=0;
for(java.util.Map.Entry<JLabel, Object> me:searchMap.entrySet()) {
String key=me.getKey().getText();
JTextField field=(JTextField) me.getValue();
String value=field.getText().trim();
if(value.length()==0) {
// value="*";
}else {
value="*"+value+"*";
isNull=false;
selectItem[i]=key;
selectValue[i]=value;
i++;
}
}
if(isNull==true) {
MessageBox.post("所搜条目不能全为空","",MessageBox.INFORMATION);
}else {
try {
// TCComponent[] comps=session.search(values[0], selectItem, selectValue);
TCComponent[] comps=DocumentUtil.getResult(session,searchMap,values[0]);
System.out.println("共有========"+comps.length);
this.disposeDialog();
this.showDialog();
radioButton=new JRadioButton[comps.length];
radioMap=new HashMap<JRadioButton, String>();
resultPanel.removeAll();
// scrollPane.remove(resultPanel);
bg=new ButtonGroup();
//查询结果设置成可配置的属性
String[] properties=session.getPreferenceService().getStringValues("Connor_AVIC_SearchPropertiesW");
if(comps.length==0) {
MessageBox.post("查询结果为空","",MessageBox.INFORMATION);
}
for (int j = 0; j < comps.length; j++) {
TCComponent tcComponent = comps[j];
String name="";
for (int k = 0; k < properties.length; k++) {
//区分版本和对象
TCComponent tcComponent0=null;
String[] ps=properties[k].split("\\.");
System.out.println();
if(ps[0].toUpperCase().equals("REV")){
tcComponent0=tcComponent;
}else if(ps[0].toUpperCase().equals("REVMASTER")) {
tcComponent0=tcComponent.getRelatedComponents("IMAN_master_form_rev")[0];
}
name=name+tcComponent0.getProperty(ps[1]);
if(k<properties.length-1) {
name=name+"-";
}
}
System.out.println("name============="+name);
radioButton[j]=new JRadioButton(name);
radioMap.put(radioButton[j], tcComponent.getProperty("item_id"));
bg.add(radioButton[j]);
resultPanel.add((j+1)+".1.left.top",radioButton[j]);
}
// scrollPane.add(resultPanel);
} catch (Exception e1) {
e1.printStackTrace();
}
}
// this.disposeDialog();
// this.dispose();
}
}
// String objectName="";
Map<JRadioButton, String> radioMap=new HashMap<JRadioButton, String>();
}

@ -0,0 +1,85 @@
package com.connor.pro105.plm.creatTechWord;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentFolder;
import com.teamcenter.rac.kernel.TCComponentPseudoFolder;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
public class CreatTechWordHandler extends AbstractHandler {
;
@Override
public Object execute(ExecutionEvent arg0) throws ExecutionException {
System.out.println("CreatTechWordHandler");
try {
String commandID = arg0.getCommand().getId();
String opType = arg0.getCommand().getName();
System.out.println("------------"+opType);
/*
* if(true) { return 0; }
*/
AbstractAIFApplication app = AIFUtility.getCurrentApplication();
TCComponent compX = (TCComponent) app.getTargetComponent();
if(compX == null) {
MessageBox.post(AIFUtility.getActiveDesktop(), "请选择文件夹或伪文件夹", "ERROR", MessageBox.ERROR);
return null;
}
/*TCComponent[] compS= (TCComponent[]) app.getTargetComponents();
TCComponentTask task;
task.performTaskAction(i, s, s1, s2, tccomponent, list, list1);
for (int i = 0; i < compS.length; i++) {
try {
connorAutoWorkflow(compS[i]);
} catch (TCException e) {
e.printStackTrace();
}
}*/
TCComponent parent = compX;
if(compX instanceof TCComponentPseudoFolder) {
parent = compX.getRelatedComponent("owning_object");
}
TCSession session = (TCSession) app.getSession();
if(!session.getTCAccessControlService().checkPrivilege(parent, "WRITE")) {
MessageBox.post(AIFUtility.getActiveDesktop(), parent + " 无修改权限!", "ERROR", MessageBox.ERROR);
return null;
}
if(compX instanceof TCComponentFolder || compX instanceof TCComponentPseudoFolder) {
CreatTechWordAction action = new CreatTechWordAction(commandID, opType, app, null);
new Thread(action).start();
}else {
MessageBox.post(AIFUtility.getActiveDesktop(), "请选择文件夹或伪文件夹", "ERROR", MessageBox.ERROR);
return null;
}
} catch (Exception e) {
e.printStackTrace();
MessageBox.post(AIFUtility.getActiveDesktop(), "错误:"+e.toString(), "ERROR", MessageBox.ERROR);
}
return null;
}
/**
* c
*
* @param item
*
* @param statusName
*
* @throws TCException
public void connorAutoWorkflow(TCComponent task ) throws TCException {
AbstractAIFUIApplication app = AIFUtility.getCurrentApplication();
TCSession session = (TCSession) app.getSession();
TCUserService userservice = session.getUserService();
Object[] obj = new Object[1];
obj[0] = task;
userservice.call("connor_auto_workflow", obj);
}*/
}

@ -0,0 +1,239 @@
package com.connor.pro105.plm.creatTechWord;
import java.awt.Color;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFColor;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.AbstractAIFOperation;
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentDataset;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCComponentTcFile;
import com.teamcenter.rac.kernel.TCComponentUser;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCPreferenceService;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
public class CreatTechWordOperation extends AbstractAIFOperation {
private AbstractAIFApplication app;
private String exportFile;
private TCSession session;
private TCPreferenceService tcPreferenceService;
private List<CreatTechWordBean> valueLists = new ArrayList<CreatTechWordBean>();//所有工时信息的集合
private FileInputStream fis;
private FileOutputStream fos;
private XSSFWorkbook workBook;
private ProgressBarThread wait;
int total=0;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
public CreatTechWordOperation(ProgressBarThread wait,
AbstractAIFApplication app, String exportFile) {
this.app = app;
this.exportFile = exportFile;
this.session = (TCSession) app.getSession();
this.wait = wait;
}
@Override
public void executeOperation() throws Exception {
//获取数据
//把所有流程放入首选项HX_Process
long start = System.currentTimeMillis();
String ssx = "hxc_risks";// 模板的首选项名称whdlh$E4aTDHqA AzWlG7qWYvbLjA
//搜索系统所有的Hxc8XM ,找到关系问题点Hxc8wtd和风险点Hxc8fengxian
TCComponent[] projects=session.search("常规...", new String[] {"类型"}, new String[] {"Hxc8XM"});
System.out.println("共有项目--------"+projects.length);
for(int i=0;i<projects.length;i++) {
TCComponent project=projects[i];
TCComponent[] problems=project.getTCProperty("Hxc8fengxian").getReferenceValueArray();
String xmlh=project.getProperty("item_id");//项目令号
for(int j=0;j<problems.length;j++) {
if(problems[j].getType().equals("Hxc8risk")) {
CreatTechWordBean bean=new CreatTechWordBean();
TCComponentItem item=(TCComponentItem)problems[j];
String item_id=item.getLatestItemRevision().getProperty("item_id");//项目风险号
String hxc8jingli=item.getLatestItemRevision().getProperty("hxc8jingli");//项目经理
String hxc8cp=item.getLatestItemRevision().getProperty("hxc8cp");//产品名称
String hxc8kh=item.getLatestItemRevision().getProperty("hxc8kh");//客户
String hxc8cxdm=item.getLatestItemRevision().getProperty("hxc8cxdm");//车型代码
String hxc8scjd=item.getLatestItemRevision().getProperty("hxc8scjd");//生产基地
String hxc8ycl=item.getLatestItemRevision().getProperty("hxc8ycl");//年与测量
String hxc8jieduan=item.getLatestItemRevision().getProperty("hxc8jieduan");//项目阶段
String hxc8miaoshu=item.getLatestItemRevision().getProperty("hxc8miaoshu");//风险/问题描述
String hxc8result=item.getLatestItemRevision().getProperty("hxc8result");//影响/后果
String hxc8risk=item.getLatestItemRevision().getProperty("hxc8risk");//风险等级
String hxc8plan=item.getLatestItemRevision().getProperty("hxc8plan");//相应措施/计划
String hxc8finish=item.getLatestItemRevision().getProperty("hxc8finish").split(" ")[0];//计划完成日期
String hxc8zr=item.getLatestItemRevision().getProperty("hxc8zr");//责任人
String hxc8open=item.getLatestItemRevision().getProperty("hxc8open");//开放/关闭
bean.setXmlh(xmlh);
bean.setItem_id(item_id);
bean.setHxc8jingli(hxc8jingli);
bean.setHxc8cp(hxc8cp);
bean.setHxc8kh(hxc8kh);
bean.setHxc8cxdm(hxc8cxdm);
bean.setHxc8scjd(hxc8scjd);
bean.setHxc8ycl(hxc8ycl);
bean.setHxc8jieduan(hxc8jieduan);
bean.setHxc8risk(hxc8risk);
bean.setHxc8plan(hxc8plan);
bean.setHxc8finish(hxc8finish);
bean.setHxc8zr(hxc8zr);
bean.setHxc8open(hxc8open);
bean.setHxc8miaoshu(hxc8miaoshu);
bean.setHxc8result(hxc8result);
valueLists.add(bean);
}
}
}
File fmsFile = getExcle(ssx);// 查找模板
if (fmsFile == null) {
MessageBox.post("模板错误,请联系管理员", "错误", MessageBox.ERROR);
return;
}
tcPreferenceService = session.getPreferenceService();
int row = valueLists.size();
fis = new FileInputStream(fmsFile);
workBook = new XSSFWorkbook(fis);
XSSFSheet sheet = workBook.getSheet("风险看板");
XSSFCellStyle sty2 = workBook.createCellStyle();
sty2.setBorderBottom((short) 1);
sty2.setBorderTop((short) 1);
sty2.setBorderLeft((short) 1);
sty2.setBorderRight((short) 1);
sty2.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);// 垂直居中
sty2.setAlignment(XSSFCellStyle.ALIGN_CENTER);// 水平居左
sty2.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND);
sty2.setFillForegroundColor(IndexedColors.WHITE.getIndex());//背景变白
for (int i = 0; i < row; i++) {
//新建单元格,合并单元格
XSSFRow r=sheet.getRow(i+2);
if(r==null) {
r = sheet.createRow(i+2);
}
for (int j = 0; j < 17; j++) {
XSSFCell ce = r.createCell(j);
ce.setCellStyle(sty2);
}
r.getCell(0).setCellValue(i+1);
r.getCell(1).setCellValue(valueLists.get(i).getItem_id());
r.getCell(2).setCellValue(valueLists.get(i).getXmlh());
r.getCell(3).setCellValue(valueLists.get(i).getHxc8cp());
r.getCell(4).setCellValue(valueLists.get(i).getHxc8jingli());
r.getCell(5).setCellValue(valueLists.get(i).getHxc8kh());
r.getCell(6).setCellValue(valueLists.get(i).getHxc8cxdm());
r.getCell(7).setCellValue(valueLists.get(i).getHxc8scjd());
r.getCell(8).setCellValue(valueLists.get(i).getHxc8ycl());
r.getCell(9).setCellValue(valueLists.get(i).getHxc8jieduan());
r.getCell(10).setCellValue(valueLists.get(i).getHxc8miaoshu());
r.getCell(11).setCellValue(valueLists.get(i).getHxc8result());
r.getCell(12).setCellValue(valueLists.get(i).getHxc8risk());
r.getCell(13).setCellValue(valueLists.get(i).getHxc8plan());
r.getCell(14).setCellValue(valueLists.get(i).getHxc8finish());
r.getCell(15).setCellValue(valueLists.get(i).getHxc8zr());
r.getCell(16).setCellValue(valueLists.get(i).getHxc8open());
}
File file = null;
String timeNow=GetNowDate();
file = new File(exportFile + "\\" + "系统风险点报表"+timeNow + ".xlsx");
fos = new FileOutputStream(file);
workBook.write(fos);
long end = System.currentTimeMillis();
float time = (end - start) / 1000.00f;
System.out.println("耗时:" + time + "秒");
this.wait.setBool(true);
this.wait.interrupt();
MessageBox.post("报表已经导出,共有"+row+"条", "成功", MessageBox.INFORMATION);
Runtime.getRuntime().exec(new String[] { "cmd.exe", "/c", exportFile + "\\" + "系统风险点报表" + timeNow +".xlsx" });// 下载完成后直接打开
}
public String GetNowDate(){
String temp_str="";
Date dt = new Date();
//最后的aa表示“上午”或“下午” HH表示24小时制 如果换成hh表示12小时制 "yyyy-MM-ddHH:mm:ss aa"
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm");
temp_str=sdf.format(dt);
return temp_str;
}
private File getExcle(String ssx) {
File fmsFile = null;
tcPreferenceService = session.getPreferenceService();
String puid = tcPreferenceService.getStringValue(ssx);
if (puid == null) {
MessageBox.post("请联系管理员检查首选项", "错误", MessageBox.ERROR);
return null;
}
TCComponentDataset dateset = null;
try {
dateset = (TCComponentDataset) session.stringToComponent(puid);
} catch (TCException e) {
e.printStackTrace();
}
if (dateset == null) {
MessageBox.post("未找到数据集,请联系管理员检查首选项", "错误", MessageBox.ERROR);
return null;
}
try {
TCComponentTcFile[] file = dateset.getTcFiles();
if (file.length == 0 || file.length != 1) {
MessageBox.post("数据集没有命名引用的文件或文件过多,请检查!", "WARNING", MessageBox.WARNING);
return null;
} else {
fmsFile = file[0].getFmsFile();
}
} catch (Exception e) {
e.printStackTrace();
}
return fmsFile;
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,320 @@
package com.connor.pro105.plm.creatTechWord;
import java.awt.Component;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import javax.swing.DefaultComboBoxModel;
import javax.swing.DefaultListSelectionModel;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JList;
import javax.swing.JTextField;
import javax.swing.ListCellRenderer;
import javax.swing.ListSelectionModel;
import javax.swing.plaf.basic.BasicComboPopup;
import javax.swing.plaf.basic.ComboPopup;
import javax.swing.plaf.metal.MetalComboBoxUI;
@SuppressWarnings({ "rawtypes", "unchecked"})
public class MultiCombo extends JComboBox<String> implements FocusListener {
/**
*
*/
private static final long serialVersionUID = 1L;
protected HashSet<Integer> set = new HashSet<>();
private String[] cns;
private String[] ens;
private String value;
public MultiCombo(String str[]) {
int len = str.length;
cns = new String[len];
ens = new String[len];
for(int i=0; i<len; i++){
String[] split = str[i].split(":");
if(split.length<2){
cns[i] = str[i];
ens[i] = str[i];
continue;
}
cns[i] = split[0];
ens[i] = split[1];
}
setModel(new RwDefaultComboBoxModel(cns));
setUI(new RwMetalComboBoxUI(this));
setRenderer(new RwJCheckBox());
setSelectedIndex(-1);
value = "";
// ((JTextField)getEditor().getEditorComponent()).setEditable(true);
// 禁止编辑的代码
}
public void resetCombox(boolean zh) {
this.removeAllItems();
StringBuilder sb = new StringBuilder("");
if(zh){
for(int i=0; i<cns.length; i++) {
this.addItem(cns[i]);
if(this.set.contains(i))
sb.append(";").append(cns[i]);
}
}else{
for(int i=0; i<ens.length; i++) {
this.addItem(ens[i]);
if(this.set.contains(i))
sb.append(";").append(ens[i]);
}
}
JTextField jTextField = (JTextField) this.getEditor().getEditorComponent();
jTextField.setText("");
if(sb.length()>0)
jTextField.setText(sb.substring(1));
}
public String getValue(){
return value;
}
public void setValue(String value){
if(value==null || value.isEmpty()){
this.value = "";
return;
}
this.value = value;
String[] split = value.split(":");
boolean find = false;
for(String s : split[0].split(";")){
for(int i=0; i<cns.length; i++){
if(!s.equals(cns[i]))
continue;
this.set.add(i);
find = true;
}
}
if(!find){
this.value = "";
return;
}
JTextField jTextField = (JTextField) this.getEditor().getEditorComponent();
jTextField.setText(split[0]);
}
public void focusGained(FocusEvent e) {
}
public void focusLost(FocusEvent e) {
// 这是一种特殊情况下的使用方法
// java.awt.Container container=(java.awt.Container)getEditor().getEditorComponent();
// while(container!=null&&!(container instanceof javax.swing.JLabel))
// {
// container=container.getParent();
// }
// ((cLabel)container).setValue(((javax.swing.JTextField)getEditor().getEditorComponent()).getText());
}
public void setEditable(boolean b) {
super.setEditable(b);
((JTextField)getEditor().getEditorComponent()).setEditable(false);
}
public String getText() {
return ((JTextField) this.getEditor().getEditorComponent()).getText();
}
private static class RwMetalComboBoxUI extends MetalComboBoxUI {
private RwMetalComboBoxUI(MultiCombo MultiCombo) {
this.comboBox = MultiCombo;
}
protected ComboPopup createPopup() {
return new RwBasicComboPopup(comboBox);
}
}
private static class RwBasicComboPopup extends BasicComboPopup {
/**
*
*/
private static final long serialVersionUID = 1L;
public RwBasicComboPopup(JComboBox combo) {
super(combo);
}
protected void configureList() {
super.configureList();
list.setSelectionModel(new RwDefaultListSelectionModel(comboBox));
}
protected MouseListener createListMouseListener() {
return new RwMouseAdapter(list, comboBox);
}
}
private static class RwDefaultListSelectionModel extends DefaultListSelectionModel {
/**
*
*/
private static final long serialVersionUID = 1L;
protected MultiCombo MultiCombo;
public RwDefaultListSelectionModel(JComboBox comboBox) {
this.MultiCombo = (MultiCombo) comboBox;
}
public boolean isSelectedIndex(int index) {
return MultiCombo.set.contains(index);
}
}
private static class RwMouseAdapter extends MouseAdapter {
protected JList list;
protected MultiCombo MultiCombo;
private RwMouseAdapter(JList list, JComboBox comboBox) {
this.list = list;
this.MultiCombo = (MultiCombo) comboBox;
}
public void mousePressed(MouseEvent anEvent) {
// System.out.println("RwMouseAdapter");
StringBuilder sb, sb1, sb2;
int k, index;
index = list.getSelectedIndex();
JTextField jTextField = (JTextField) MultiCombo.getEditor().getEditorComponent();
sb = new StringBuilder(jTextField.getText());
if (sb.length() > 0 && ';' != sb.charAt(0))
sb.insert(0, ";");
if (sb.length() > 0 && ';' != sb.charAt(sb.length() - 1))
sb.append(";");
if (sb.length() > 0 && ";".equals(sb.toString()))
sb = new StringBuilder();
if (list.getSelectionMode() == ListSelectionModel.MULTIPLE_INTERVAL_SELECTION) {
if (MultiCombo.set.contains(index)) {
MultiCombo.set.remove(index);
sb1 = new StringBuilder();
sb1.append(";").append(MultiCombo.getModel().getElementAt(index)).append(",");
k = sb.indexOf(sb1.toString());
while (k != -1) {
sb.replace(k, k + sb1.length(), ";");
k = sb.indexOf(sb1.toString());
}
} else {
MultiCombo.set.add(index);
if (sb.length() == 0)
sb.append(";").append(MultiCombo.getModel().getElementAt(index)).append(";");
else
sb.append(MultiCombo.getModel().getElementAt(index)).append(";");
}
} else {
if (!MultiCombo.set.contains(index)) {
MultiCombo.set.clear();
MultiCombo.set.add(index);
}
}
Object obj;
sb2 = new StringBuilder(sb);
// 替换完正常的可选值
for (int i = 0; i < list.getModel().getSize(); i++) {
obj = list.getModel().getElementAt(i);
sb1 = new StringBuilder();
sb1.append(";").append(obj).append(";");
k = sb2.indexOf(sb1.toString());
while (k != -1) {
sb2.replace(k, k + sb1.length(), ";");
k = sb2.indexOf(sb1.toString());
}
}
ArrayList list1 = new ArrayList(MultiCombo.set);
Collections.sort(list1);
for (int i = 0; i < list1.size(); i++) {
obj = MultiCombo.getModel().getElementAt(Integer.parseInt(list1.get(i).toString()));
sb1 = new StringBuilder();
sb1.append(";").append(obj).append(";");
k = sb.indexOf(sb1.toString());
if (k != -1 && sb2.indexOf(sb1.toString()) == -1) {
sb2.append(obj).append(";");
}
}
sb = new StringBuilder(sb2);
if (sb.length() > 0 && ';' == sb.charAt(0))
sb.deleteCharAt(0);
if (sb.length() > 0 && ';' == sb.charAt(sb.length() - 1))
sb.deleteCharAt(sb.length() - 1);
if (sb.length() > 0 && ";".equals(sb.toString()))
sb = new StringBuilder();
jTextField.setText(sb.toString());
// java.awt.Container container =jTextField;
// while(container!=null&&!(container instanceof javax.swing.JLabel))
// {
// container=container.getParent();
// }
// ((cLabel)container).setValue(sb.toString());
if(MultiCombo.set.size()>0){
StringBuilder val = new StringBuilder("");
for(int i=0; i<MultiCombo.cns.length; i++){
if(MultiCombo.set.contains(i)){
val.append(MultiCombo.cns[i]).append(";");
}
}
// val.deleteCharAt(val.length()-1).append(":");
// for(int i=0; i<MultiCombo.ens.length; i++){
// if(MultiCombo.set.contains(i)){
// val.append(MultiCombo.ens[i]).append(";");
// }
// }
val.deleteCharAt(val.length()-1);
MultiCombo.value = val.toString();
}
MultiCombo.repaint();
list.repaint();
// System.out.println("text:"+((JTextField) MultiCombo.getEditor().getEditorComponent()).getText());
}
}
private static class RwDefaultComboBoxModel extends DefaultComboBoxModel {
/**
*
*/
private static final long serialVersionUID = 1L;
private RwDefaultComboBoxModel(String[] str) {
for (int i = 0; i < str.length; i++)
addElement(str[i]);
}
}
private static class RwJCheckBox extends JCheckBox implements ListCellRenderer {
/**
*
*/
private static final long serialVersionUID = 1L;
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
setComponentOrientation(list.getComponentOrientation());
if (isSelected) {
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
} else {
setBackground(list.getBackground());
setForeground(list.getForeground());
}
setEnabled(list.isEnabled());
setSelected(isSelected);
setText(value == null ? "" : value.toString());
setFont(list.getFont());
return this;
}
}
}

@ -0,0 +1,171 @@
/**
* @file ProgressBar.java
*
* @brief Create progress bar
*
* @author Yanghui
*
* @history
* ================================================================
* Date Name Description of Change
* 25-July-2008 Yanghui this class is used to create
* progress bar.
*/
package com.connor.pro105.plm.creatTechWord;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.Timer;
import com.teamcenter.rac.aif.AbstractAIFDialog;
import com.teamcenter.rac.util.PropertyLayout;
import com.teamcenter.rac.util.Registry;
/**
* @class ProgressBar
* @brief Create progress bar
* @author Yanghui
*/
public class ProgressBar extends AbstractAIFDialog implements ActionListener {
/**
* @var ProgressBar.progressbar
* @brief JProgressBar
*/
private JProgressBar progressbar;
/**
* @var ProgressBar.label
* @brief label used to tips
*/
private JLabel label;
/**
* @var ProgressBar.timer
* @brief timer used to timing operation
*/
private Timer timer;
/**
* @var ProgressBar.bool
* @brief bool used to flag thread return
*/
private boolean bool = false;
/**
* @var Progressbar.registry
* @brief Registry
*/
private Registry registry;
/**
* @fn public ProgressBar()
* @brief constructor
* @param[in] null
*/
private String showLable = null ;
public ProgressBar(String showlable) {
super(true);
showLable = showlable;
this.setAlwaysOnTop(true);
}
/**
* @fn public void setBool(boolean bool)
* @brief set bool value
* @param[in] bool
* @param[out] null
*/
public void setBool(boolean bool) {
this.bool = bool;
}
/**
* @fn private void initUI()
* @brief createDialog method
* @param[in] null
* @param[out] null
*/
public void initUI() {
Container container = getContentPane();
JPanel mainPanel = new JPanel(new PropertyLayout());
this.label = new JLabel(showLable, JLabel.CENTER);
this.progressbar = new JProgressBar();
this.progressbar.setOrientation(JProgressBar.HORIZONTAL);
this.progressbar.setMinimum(0);
this.progressbar.setMaximum(100);
this.progressbar.setValue(0);
this.progressbar.setPreferredSize(new Dimension(200, 15));
this.progressbar.setBorderPainted(true);
this.timer = new Timer(50, (ActionListener) this);
this.timer.setRepeats(false);
mainPanel.add("1.1.center", new JLabel(" "));
mainPanel.add("2.1.center", label);
mainPanel.add("3.1.center", progressbar);
mainPanel.add("4.1.center", new JLabel(" "));
container.add(mainPanel);
pack();
setLocation(500, 200);
TaskThread thread = new TaskThread(this);
thread.start();
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
bool = true;
}
});
this.setVisible(true);
}
/**
* @class TaskThread
* @brief Create progressbar
*
*/
class TaskThread extends Thread {
private ProgressBar bar;
public TaskThread(ProgressBar bar) {
this.bar = bar;
}
public void run() {
if (bool == false) {
// Set Status is running.
// session.setStatus(registry.getString("export Running"));
}
for (int i = 0; i < i + 1; i++) {
timer.start();
int value = progressbar.getValue();
if (value < 100) {
value = value + 5;
progressbar.setValue(value);
} else {
timer.stop();
progressbar.setValue(0);
}
try {
sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (bool == true) {
bar.setVisible(false);
bar.dispose();
return;
}
}
}
}
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
}
}

@ -0,0 +1,41 @@
/**
* @file ProgressBarThread.java
*
* @brief control progressBar.
*
* @author Yanghui
*
* @history
* ================================================================
* Date Name Description of Change
* 08-Auguest-2008 Yanghui this class is used to control
* progress bar.
*/
package com.connor.pro105.plm.creatTechWord;
/**
* @class ProgressBarThread
* @brief Create progress bar thread
* @author Yanghui
*/
public class ProgressBarThread extends Thread {
private ProgressBar bar;
private String title;
public ProgressBarThread(String title,String showLable) {
this.title = title;
bar = new ProgressBar(showLable);
}
public void run() {
bar.setTitle(title);
bar.initUI();
}
public void setBool(boolean bool) {
bar.setBool(true);
bar.setAlwaysOnTop(false);
}
}

@ -0,0 +1,128 @@
package com.connor.pro105.plm.creatTechWord;
import java.io.File;
import java.util.List;
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentBOMLine;
import com.teamcenter.rac.kernel.TCComponentBOMViewRevision;
import com.teamcenter.rac.kernel.TCComponentBOMWindow;
import com.teamcenter.rac.kernel.TCComponentBOMWindowType;
import com.teamcenter.rac.kernel.TCComponentContextList;
import com.teamcenter.rac.kernel.TCComponentDataset;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCComponentItemType;
import com.teamcenter.rac.kernel.TCComponentQuery;
import com.teamcenter.rac.kernel.TCComponentQueryType;
import com.teamcenter.rac.kernel.TCComponentSchedule;
import com.teamcenter.rac.kernel.TCComponentScheduleTask;
import com.teamcenter.rac.kernel.TCComponentTcFile;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCPreferenceService;
import com.teamcenter.rac.kernel.TCQueryClause;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.kernel.TCTextService;
import com.teamcenter.rac.kernel.TCTypeService;
import com.teamcenter.rac.kernel.TCUserService;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.schemas.soa._2006_03.exceptions.ServiceException;
public class Util {
public static TCPreferenceService service;
public static TCSession session;
public static TCUserService userservice;;
static {
if (session == null) {
session = (TCSession) (AIFUtility.getCurrentApplication().getSession());
}
if (service == null)
service = session.getPreferenceService();
}
public static void setByPass(boolean val) throws TCException {
userservice = session.getUserService();
if (userservice == null) {
userservice = session.getUserService();
}
Object[] obj = new Object[1];
obj[0] = "origin";
if (val) {
// userservice.call("ORIGIN_set_bypass", obj);
userservice.call("connor_open_bypass", new Object[] { "true" });
} else {
// userservice.call("ORIGIN_close_bypass", obj);
userservice.call("connor_close_bypass", new Object[] { "false" });
}
}
public static void removeClass(String icoUid) throws TCException {
userservice = session.getUserService();
if (userservice == null) {
userservice = session.getUserService();
}
Object[] obj = new Object[1];
obj[0] = icoUid;
userservice.call("IcoRemove", obj);
}
public static File getExcle(TCSession session, String ssx) {
File fmsFile = null;
String puid = session.getPreferenceService().getStringValue(ssx);
if (puid == null) {
MessageBox.post("请联系管理员检查首选项", "错误", MessageBox.ERROR);
return null;
}
TCComponentDataset dateset = null;
try {
dateset = (TCComponentDataset) session.stringToComponent(puid);
} catch (TCException e) {
e.printStackTrace();
}
if (dateset == null) {
MessageBox.post("未找到数据集,请联系管理员检查首选项", "错误", MessageBox.ERROR);
return null;
}
try {
TCComponentTcFile[] file = dateset.getTcFiles();
if (file.length == 0 || file.length != 1) {
MessageBox.post("数据集没有命名引用的文件或文件过多,请检查!", "WARNING", MessageBox.WARNING);
return null;
} else {
fmsFile = file[0].getFmsFile();
}
} catch (Exception e) {
e.printStackTrace();
}
return fmsFile;
}
/**
* service
*
* @param schedule
* @param scheduleTask
* @param user
* @throws TCException
*/
public static void resourceAssignment(TCComponentSchedule schedule, TCComponentScheduleTask scheduleTask,
TCComponent user) throws TCException {
userservice = session.getUserService();
if (userservice == null) {
userservice = session.getUserService();
}
Object[] obj = new Object[3];
obj[0] = schedule;
obj[1] = scheduleTask;
obj[2] = user;
userservice.call("create_schedule_task_resource_assignment", obj);
}
}
Loading…
Cancel
Save