master
洪丞进 2 years ago
commit 5062fa10ad

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry exported="true" kind="lib" path="lib/sapjco3.jar"/>
<classpathentry exported="true" kind="lib" path="lib/sqljdbc4.jar"/>
<classpathentry exported="true" kind="lib" path="lib/okhttp-2.7.4.jar"/>
<classpathentry exported="true" kind="lib" path="lib/okio-1.13.0.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="lib" path="lib/jackson-annotations-2.15.0.jar"/>
<classpathentry kind="lib" path="lib/jackson-core-2.15.2.jar"/>
<classpathentry kind="lib" path="lib/jackson-databind-2.15.0.jar"/>
<classpathentry kind="lib" path="lib/mssql-jdbc-7.0.0.jre8.jar"/>
<classpathentry kind="lib" path="lib/ojdbc7.jar"/>
<classpathentry kind="lib" path="lib/poi-4.1.2.jar"/>
<classpathentry kind="lib" path="lib/poi-3.7-20101029.jar"/>
<classpathentry kind="lib" path="lib/poi-examples-3.7-20101029.jar"/>
<classpathentry kind="lib" path="lib/poi-ooxml-3.7-20101029.jar"/>
<classpathentry kind="lib" path="lib/poi-ooxml-schemas-3.7-20101029.jar"/>
<classpathentry kind="lib" path="lib/fastjson-1.2.66.jar"/>
<classpathentry kind="lib" path="lib/fastjson2-2.0.34.jar"/>
<classpathentry kind="lib" path="lib/gson-2.8.5.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

8
.idea/.gitignore vendored

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/src/com/connor/ld/importsj/handlers/SoaUtils.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/src/com/connor/ld/sendBOMMesJc/SendBOMHandler.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/src/com/connor/ld/sendBOMMesJc/SendBOMOpertion.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/src/com/connor/ld/sendMesJc/SendGylxFram.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/src/com/connor/ld/sendMesJc/SendMesFram.java" charset="GBK" />
<file url="PROJECT" charset="GBK" />
</component>
</project>

@ -0,0 +1,443 @@
<component name="libraryTable">
<library name="applauncher">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/applauncher.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/ca.odell.glazedlists.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/CAE0SoaSimProcRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/Cfg0SoaConfiguratorLoose_13000.0.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/Cla0SoaClassificationCommonRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/cn.net.connor.std.aifrcp_13000.1.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/cn.net.connor.std.gdtex_12000.3.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/cn.net.connor.std.word_13000.1.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.google.gson.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.ibm.icu_63.1.0.v20181030-1705.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.jcraft.jsch_0.1.54.v20170116-1932.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.siemens.splm.browserinterop.infrastructure.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.siemens.splm.browserinterop.infrastructure.swt.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.siemens.splm.browserinterop.infrastructure.webview2.win32.x86.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.siemens.splm.browserinterop.solutions.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.sun.el_2.2.0.v201303151357.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.bce.core_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.bce.dialog_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.bce.editor_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.bce.model_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.accessmanager_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.activex.win32.win32.x86_64_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.activex_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.activity_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.adalicense_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.aif.registryeditor_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.aifrcp_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.appearanceconfiguration_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.applications.integration_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.aps0apscore.kernel_13000.0.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.architecturemodeler_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.auditmanager_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.authorization_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.barchart_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.basedon_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.bczownershipxferview_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.bom_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.briefcasebrowser_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cae.ase_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.caese_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.charts_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.classification.icadmin_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.classification.icm_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cm_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.accountabilitycheck.bom_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.accountabilitycheck.properties_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.accountabilitycheck.relations_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.accountabilitycheck_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.activity_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.assemblyincontext_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.biw.module_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.bvr.connect_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.ccadmin_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.changetracker_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.closureruleeditor_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.collaborationcontext_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.common_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.designpartalignment_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.ebop.module_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.exeposition_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.framework_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.fse_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.futurerevisions_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.graphics_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.idc_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.ipa_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.kernel_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.lb_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.legacy_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.license_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.mbm_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.mbomassessmentrepair_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.mbomrecipe_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.mcnmanagement_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.mpp_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.mrm_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.pad_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.pmp_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.processsimulate_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.resource_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.reusesubassembly_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.sequence_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.study_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.stylesheet_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.tcpublishwrapper_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.time_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.twod_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.twp_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.cme.variants_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.commands.report.reportdesigner_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.commandsuppression_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.common.win32.x86_64_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.common_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.commonclient_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.contextmenusuppression_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.crf_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.databaseutilities_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.datadic_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.debug_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.designcontext_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.diagramming.communication_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.diagramming.dtoolext_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.diagrammingtools_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.dpv_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.ecmanagement_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.editcontext_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.effectivity_13000.0.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.emailpolling_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.ets_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.express_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.gantt_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.gdis_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.geolus.results_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.geolus.search_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.grb_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.idc_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.issuemanager_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.kernel_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.massupdate_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.ms.ui_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.ms.util_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.multistructures_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.ocspresence_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.officeapplauncher_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.operationaldata.docmgt_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.operationaldata.edaserver_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.operationaldata.options_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.operationaldata_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.organization_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.pca.kernel_13000.0.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.pca_13000.0.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.plmxmlexportimportadministration_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.pmmstylesheetviewer_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.por_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.presentation_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.processhistory_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.project_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.pse.pca_13000.0.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.pse_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.qualifications_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.querybuilder_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.requirementsmanager.win.embeddedword_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.requirementsmanager_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.rmoffice_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.schedule_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.se.core_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.search_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.setupwizard_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.siemens.theme_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.smartnavigator_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.smb_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.softwareanalytics_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.structure.search_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.subscriptionmanager_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.subscriptionmonitor_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.substitutegroup_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.tcapps_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.tcgrb_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.tcsim.accountabilitycheck_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.tcsim.analysis_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.tcsim.common_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.tcsim.composite_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.tcsim.dashboard_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.tcsim.derivativerules_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.tcsim.desktopsupport_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.tcsim.inspector_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.tcsim.model_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.tcsim.packages_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.tcsim.product_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.tcsim.toolmanagement_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.tcsim_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.tctdv_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.tdv_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.toolbar.customization_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.tracelinks.ui_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.ui.advanced_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.ui.commands_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.ui.gridframework.extension.nebula_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.ui.gridframework_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.ui.views_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.ui_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.util_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.validation_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.viewer.win32_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.viewer_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.vis.api_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.vis.mv_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.vis_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.vm_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.vns_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.widgets_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.workflow.processdesigner_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.workflow.processviewer_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.teamcenter.rac.workflow_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/Ex2SoaExpressAddonsRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/Fnd0SoaAuditManagerRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/Fnd0SoaConfigFilterCriteriaLoose_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/Fnd0SoaConfigFilterCriteriaRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/Fnd0SoaDebugMonitorLoose_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/Fnd0SoaDebugMonitorRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/Fnd0SoaDiagrammingRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/Fnd0SoaEditContextLoose_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/Fnd0SoaNotificationRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/Fnd0SoaQualificationRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/Fnd0SoaWProxyRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/icctstubs.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/javax.annotation_1.2.0.v201602091430.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/javax.el_2.2.0.v201303151357.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/javax.inject_1.0.0.v20091030.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/javax.servlet.jsp_2.2.0.v201112011158.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/javax.servlet_3.1.0.v201410161800.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/javax.wsdl_1.6.2.v201012040545.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/javax.xml_1.3.4.v201005080400.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/Lis0SoaLdfRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.batik.constants_1.10.0.v20180703-1553.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.batik.css_1.10.0.v20180703-1553.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.batik.i18n_1.10.0.v20180703-1553.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.batik.util_1.10.0.v20180703-1553.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.commons.codec_1.10.0.v20180409-1845.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.commons.io_2.2.0.v201405211200.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.commons.jxpath_1.3.0.v200911051830.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.commons.lang_2.3.0.v200803061910.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.commons.logging_1.2.0.v20180409-1502.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.felix.gogo.command_1.0.2.v20170914-1324.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.felix.gogo.runtime_1.1.0.v20180713-1646.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.felix.gogo.shell_1.1.0.v20180713-1646.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.felix.scr_2.0.14.v20180822-1822.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.jasper.glassfish_2.2.2.v201501141630.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.lucene.analyzers-common_7.5.0.v20181003-1532.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.lucene.analyzers-smartcn_7.5.0.v20181003-1532.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.lucene.core_7.5.0.v20181003-1532.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.xalan_2.7.1.v201005080400.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.xerces_2.9.0.v201101211617.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.xml.resolver_1.2.0.v201005080400.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.xml.serializer_2.7.1.v201005080400.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.apache.xmlgraphics_2.2.0.v20180809-1640.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.aspectj.runtime_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ant.core_3.5.200.v20180822-0553.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.compare.core_3.6.300.v20180827-1041.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.compare.win32_1.2.300.v20180926-0905.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.compare_3.7.400.v20181109-1335.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.core.commands_3.9.200.v20180827-1727.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.core.contenttype_3.7.200.v20181107-1343.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.core.databinding.beans_1.4.300.v20181030-1443.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.core.databinding.observable_1.6.300.v20180827-2028.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.core.databinding.property_1.6.300.v20180827-2028.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.core.databinding_1.7.100.v20181030-1443.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.core.expressions_3.6.200.v20180817-1401.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.core.externaltools_1.1.200.v20180821-1744.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.core.filebuffers_3.6.400.v20181028-0633.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.core.filesystem.win32.x86_64_1.4.100.v20180828-0158.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.core.filesystem_1.7.200.v20180828-0158.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.core.jobs_3.10.200.v20180912-1356.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.core.net.win32.x86_64_1.1.300.v20181126-0635.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.core.net_1.3.400.v20181030-1645.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.core.resources.win32.x86_64_3.5.300.v20181030-1942.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.core.resources_3.13.200.v20181121-1020.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.core.runtime_3.15.100.v20181107-1343.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.core.variables_3.4.300.v20181028-0627.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.debug.core_3.13.100.v20181201-1650.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.draw2d_3.10.100.201606061308.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.core.commands_0.12.400.v20181119-1026.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.core.contexts_1.7.100.v20180817-1215.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.core.di.annotations_1.6.200.v20180817-1215.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.core.di.extensions.supplier_0.15.200.v20180817-1215.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.core.di.extensions_0.15.200.v20180817-1215.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.core.di_1.7.100.v20180817-1215.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.core.services_2.1.300.v20180930-0910.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.emf.xpath_0.2.200.v20180828-0227.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.ui.bindings_0.12.300.v20180913-1535.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.ui.css.core_0.12.400.v20180917-1628.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.ui.css.swt.theme_0.12.100.v20180828-0227.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.ui.css.swt_0.13.300.v20181030-1443.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.ui.di_1.2.400.v20180920-1522.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.ui.dialogs_1.1.300.v20180828-0227.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.ui.model.workbench_2.1.200.v20180920-1522.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.ui.services_1.3.300.v20180920-1522.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.ui.widgets_1.2.300.v20180920-1522.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.ui.workbench.addons.swt_1.3.300.v20181102-1042.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.ui.workbench.renderers.swt_0.14.400.v20181112-1716.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.ui.workbench.swt_0.14.400.v20181022-1348.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.ui.workbench3_0.14.200.v20180828-0227.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.e4.ui.workbench_1.8.0.v20181119-1304.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.emf.common_2.15.0.v20180914-1817.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.emf.ecore.change_2.13.0.v20180706-1146.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.emf.ecore.xmi_2.15.0.v20180706-1146.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.emf.ecore_2.16.0.v20181124-0637.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.app_1.4.0.v20181009-1752.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.bidi_1.1.200.v20180827-1235.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.common_3.10.200.v20181021-1645.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.concurrent_1.1.200.v20180827-1235.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.console_1.3.200.v20181115-0906.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.event_1.5.0.v20181008-1938.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.frameworkadmin.equinox_1.1.100.v20180822-1258.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.frameworkadmin_2.1.100.v20180822-1258.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.http.jetty_3.6.200.v20181115-1346.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.http.registry_1.1.600.v20180827-1235.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.http.servlet_1.5.200.v20181008-1912.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.jsp.jasper.registry_1.1.100.v20180827-1235.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.jsp.jasper_1.1.100.v20180827-1235.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.launcher_1.5.200.v20180922-1751.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.p2.artifact.repository_1.2.200.v20181119-1308.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.p2.core_2.5.100.v20180822-1532.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.p2.engine_2.6.100.v20180822-1302.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.p2.garbagecollector_1.1.100.v20180822-1302.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.p2.jarprocessor_1.1.200.v20180921-1009.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.p2.metadata.repository_1.3.100.v20180822-1302.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.p2.metadata_2.4.200.v20181102-0649.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.p2.publisher_1.5.100.v20180822-1302.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.p2.repository_2.4.200.v20181005-1131.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.p2.touchpoint.natives_1.3.200.v20180921-1019.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.preferences_3.7.200.v20180827-1235.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.registry_3.8.200.v20181008-1820.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.security.ui_1.2.200.v20181108-1420.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.security.win32.x86_64_1.1.100.v20180827-1235.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.security_1.3.0.v20181115-0746.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.simpleconfigurator_1.3.200.v20181101-1115.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.equinox.util_1.1.200.v20181008-1820.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.gef_3.11.0.201606061308.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.help.base_4.2.400.v20181206-0815.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.help.ui_4.1.300.v20181018-1136.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.help_3.8.200.v20180821-0700.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.jetty.continuation_9.4.14.v20181113.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.jetty.http_9.4.14.v20181113.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.jetty.io_9.4.14.v20181113.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.jetty.security_9.4.14.v20181113.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.jetty.server_9.4.14.v20181113.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.jetty.servlet_9.4.14.v20181113.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.jetty.util_9.4.14.v20181113.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.jface.databinding_1.8.400.v20181030-1443.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.jface.text_3.15.0.v20181119-1708.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.jface_3.15.0.v20181123-1505.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.jsch.core_1.3.300.v20181030-1237.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.jsch.ui_1.3.300.v20181122-1141.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ltk.core.refactoring_3.9.200.v20181024-1629.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.nebula.cwt_1.1.0.201804281520.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.nebula.widgets.cdatetime_1.3.0.201804281520.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.nebula.widgets.gallery_1.0.0.201804281520.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.nebula.widgets.grid_1.1.0.201804281520.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.nebula.widgets.nattable.core_1.1.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.nebula.widgets.nattable.extension.glazedlists_1.1.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.nebula.widgets.nattable.extension.poi_1.1.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.nebula.widgets.tablecombo_1.2.0.201804281520.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.osgi.compatibility.state_1.1.300.v20181116-1550.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.osgi.services_3.7.100.v20180827-1536.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.osgi.util_3.5.100.v20180827-1536.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.osgi_3.13.200.v20181130-2106.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.swt.win32.win32.x86_64_3.109.0.v20181204-1801.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.team.genericeditor.diff.extension_1.0.200.v20180827-1041.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.text_3.8.0.v20180923-1636.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ui.console_3.8.300.v20181019-1609.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ui.editors_3.11.300.v20180914-0606.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ui.forms_3.7.400.v20181123-1505.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ui.genericeditor_1.1.200.v20180921-0739.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ui.ide_3.14.200.v20181205-2143.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ui.intro.quicklinks_1.0.300.v20180821-0700.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ui.intro_3.5.400.v20181107-2118.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ui.monitoring_1.1.300.v20180828-1350.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ui.navigator_3.7.300.v20181016-1531.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ui.net_1.3.300.v20180827-1041.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ui.views.log_1.2.400.v20181102-1400.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ui.views.properties.tabbed_3.8.300.v20180921-1036.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ui.views_3.9.200.v20180828-0837.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ui.win32_3.4.100.v20180828-0838.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ui.workbench.texteditor_3.11.200.v20181108-1458.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ui.workbench_3.112.100.v20181127-1518.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.ui_3.111.0.v20181117-0847.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.update.configurator_3.4.100.v20180821-1913.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.eclipse.urischeme_1.0.100.v20181204-1430.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.hamcrest.core_1.3.0.v20180420-1519.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.sat4j.core_2.3.5.v201308161310.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.sat4j.pb_2.3.5.v201404071733.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.tukaani.xz_1.8.0.v20180207-1613.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.w3c.css.sac_1.3.1.v200903091627.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.w3c.dom.events_3.0.0.draft20060413_v201105210656.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.w3c.dom.smil_1.0.1.v200903091627.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.w3c.dom.svg_1.1.0.v201011041433.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/SingleEmbeddedViewer.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/Smc0SoaStructureManagementLoose_13000.0.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/tcgatewaystubs.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcGlobalMultiSiteRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/tcmemjavabinding.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/tcserverjavabinding.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaAdministrationLoose_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaAdministrationRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaAiRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaAllocationsRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaAuthorizedDataAccessRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaBomLoose_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaBomRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaBusinessModelerLoose_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaBusinessModelerRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaCadBomAlignmentLoose_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaCadRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaCaeRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaCalendarManagementRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaChangeManagementRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaClassificationLoose_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaClassificationRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaClient_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaCommon_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaConfigurationRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaCoreLoose_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaCoreRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaCoreTypes_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaDocumentManagementRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaGdisRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaGlobalMultiSiteLoose_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaGlobalMultiSiteRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaImportExportRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaIssueManagementRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaManufacturingRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaMESRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaMultisiteRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaProductionManagementRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaProjectManagementLoose_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaProjectManagementRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaProjectManagementTypes_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaQueryLoose_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaQueryRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaRdvRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaReportsRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaRequirementsManagementRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaStructureManagementLoose_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaStructureManagementRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaTranslationRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaValidationRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaVisualizationRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaWorkflowLoose_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/TcSoaWorkflowRac_13000.2.0.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/xmldto.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.swtchart_0.10.0.v20160212.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/icctstubs.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/org.swtchart_0.10.0.v20160212.jar!/src" />
</SOURCES>
</library>
</component>

@ -0,0 +1,15 @@
<component name="libraryTable">
<library name="plugins">
<CLASSES>
<root url="file://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins" />
</CLASSES>
<JAVADOC>
<root url="file://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins/com.siemens.softwareanalytics/javadocs" />
</JAVADOC>
<SOURCES>
<root url="file://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins" />
</SOURCES>
<jarDirectory url="file://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins" recursive="false" />
<jarDirectory url="file://$PROJECT_DIR$/../../../../WorkEnvironment/tc13JAVA/plugins" recursive="false" type="SOURCES" />
</library>
</component>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/classes" />
</component>
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/com.connor.ld.importSJ.iml" filepath="$PROJECT_DIR$/com.connor.ld.importSJ.iml" />
</modules>
</component>
</project>

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.connor.kwc.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>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

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

@ -0,0 +1,38 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: kwc.plm
Bundle-SymbolicName: com.connor.kwc.plm;singleton:=true
Bundle-Version: 1.0.0
Bundle-Vendor: CONNOR
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime;bundle-version="3.15.100",
org.eclipse.osgi.services;bundle-version="3.7.100",
org.eclipse.osgi.util;bundle-version="3.5.100",
com.teamcenter.rac.util;bundle-version="14000.3.0",
com.teamcenter.rac.aifrcp;bundle-version="14000.3.0",
TcSoaCoreRac;bundle-version="14000.3.0",
com.teamcenter.rac.common;bundle-version="14000.3.0",
com.teamcenter.rac.ui;bundle-version="14000.3.0",
com.teamcenter.rac.tcapps;bundle-version="14000.3.0",
com.teamcenter.rac.kernel;bundle-version="14000.3.0",
com.teamcenter.rac.workflow.processdesigner;bundle-version="14000.3.0"
Automatic-Module-Name: com.connor.ld.importSJ
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ClassPath: lib/fastjson-1.2.66.jar,
.,
lib/okhttp-2.7.4.jar,
lib/okio-1.13.0.jar,
lib/sqljdbc4.jar,
lib/sapjco3.jar,
lib/fastjson2-2.0.34.jar,
lib/jackson-annotations-2.15.0.jar,
lib/jackson-core-2.15.2.jar,
lib/jackson-databind-2.15.0.jar,
lib/mssql-jdbc-7.0.0.jre8.jar,
lib/ojdbc7.jar,
lib/poi-3.7-20101029.jar,
lib/poi-4.1.2.jar,
lib/poi-examples-3.7-20101029.jar,
lib/poi-ooxml-3.7-20101029.jar,
lib/poi-ooxml-schemas-3.7-20101029.jar,
lib/gson-2.8.5.jar

@ -0,0 +1,23 @@
source.. = src/
output.. = bin/
bin.includes = plugin.xml,\
META-INF/,\
.,\
icons/,\
lib/fastjson-1.2.66.jar,\
lib/okhttp-2.7.4.jar,\
lib/okio-1.13.0.jar,\
lib/sqljdbc4.jar,\
lib/sapjco3.jar,\
lib/fastjson2-2.0.34.jar,\
lib/jackson-annotations-2.15.0.jar,\
lib/jackson-core-2.15.2.jar,\
lib/jackson-databind-2.15.0.jar,\
lib/mssql-jdbc-7.0.0.jre8.jar,\
lib/ojdbc7.jar,\
lib/poi-3.7-20101029.jar,\
lib/poi-4.1.2.jar,\
lib/poi-examples-3.7-20101029.jar,\
lib/poi-ooxml-3.7-20101029.jar,\
lib/poi-ooxml-schemas-3.7-20101029.jar,\
lib/gson-2.8.5.jar

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 526 B

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.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
point="org.eclipse.ui.commands">
<command name="创建BOM" id="com.connor.kwc.createBOM"/>
<command name="A0" id="com.connor.kwc.createDWG.A0"/>
<command name="A1" id="com.connor.kwc.createDWG.A1"/>
<command name="A2" id="com.connor.kwc.createDWG.A2"/>
<command name="A3" id="com.connor.kwc.createDWG.A3"/>
<command name="A4" id="com.connor.kwc.createDWG.A4"/>
</extension>
<extension
point="org.eclipse.ui.handlers">
<handler commandId="com.connor.kwc.createBOM" class="com.connor.kwc.createBom.CreateBOMHandler"/>
<handler commandId="com.connor.kwc.createDWG.A0" class="com.connor.kwc.createBom.CreateDWGHandler"/>
<handler commandId="com.connor.kwc.createDWG.A1" class="com.connor.kwc.createBom.CreateDWGHandler"/>
<handler commandId="com.connor.kwc.createDWG.A2" class="com.connor.kwc.createBom.CreateDWGHandler"/>
<handler commandId="com.connor.kwc.createDWG.A3" class="com.connor.kwc.createBom.CreateDWGHandler"/>
<handler commandId="com.connor.kwc.createDWG.A4" class="com.connor.kwc.createBom.CreateDWGHandler"/>
</extension>
<extension
point="org.eclipse.ui.menus">
<menuContribution locationURI="menu:org.eclipse.ui.main.menu?after=additions">
<menu label="二开菜单" id="cn.net.connor.kwc.plm.seconddevelop.menus">
<command id="com.connor.kwc.createBOM" commandId="com.connor.kwc.createBOM">
</command>
</menu>
</menuContribution>
<!-- 右键-->
<menuContribution locationURI="popup:org.eclipse.ui.popup.any?after=additions">
<menu label="图幅" id="cn.net.connor.kwc.plm.seconddevelop.menus">>
<command id="cn.com.connor.kwc.plm.menus.PropertyCommand" commandId="com.connor.kwc.createDWG.A0">
<visibleWhen checkEnabled="true">
<and>
<iterate ifEmpty="false">
<adapt type="com.teamcenter.rac.kernel.TCComponent">
<or>
<test property="com.teamcenter.rac.kernel.TCComponent.typeClass" value="ItemRevision"> </test>
</or>
</adapt>
</iterate>
<with variable="rac_command_suppression">
<not>
<iterate operator="or">
<equals value="com.connor.kwc.createDWG.A0" />
</iterate>
</not>
</with>
</and>
</visibleWhen>
</command>
<command id="cn.com.connor.kwc.plm.menus.PropertyCommand" commandId="com.connor.kwc.createDWG.A1">
<visibleWhen checkEnabled="true">
<and>
<iterate ifEmpty="false">
<adapt type="com.teamcenter.rac.kernel.TCComponent">
<or>
<test property="com.teamcenter.rac.kernel.TCComponent.typeClass" value="ItemRevision"> </test>
</or>
</adapt>
</iterate>
<with variable="rac_command_suppression">
<not>
<iterate operator="or">
<equals value="com.connor.kwc.createDWG.A1" />
</iterate>
</not>
</with>
</and>
</visibleWhen>
</command>
<command id="cn.com.connor.kwc.plm.menus.PropertyCommand" commandId="com.connor.kwc.createDWG.A2">
<visibleWhen checkEnabled="true">
<and>
<iterate ifEmpty="false">
<adapt type="com.teamcenter.rac.kernel.TCComponent">
<or>
<test property="com.teamcenter.rac.kernel.TCComponent.typeClass" value="ItemRevision"> </test>
</or>
</adapt>
</iterate>
<with variable="rac_command_suppression">
<not>
<iterate operator="or">
<equals value="com.connor.kwc.createDWG.A2" />
</iterate>
</not>
</with>
</and>
</visibleWhen>
</command>
<command id="cn.com.connor.kwc.plm.menus.PropertyCommand" commandId="com.connor.kwc.createDWG.A3">
<visibleWhen checkEnabled="true">
<and>
<iterate ifEmpty="false">
<adapt type="com.teamcenter.rac.kernel.TCComponent">
<or>
<test property="com.teamcenter.rac.kernel.TCComponent.typeClass" value="ItemRevision"> </test>
</or>
</adapt>
</iterate>
<with variable="rac_command_suppression">
<not>
<iterate operator="or">
<equals value="com.connor.kwc.createDWG.A3" />
</iterate>
</not>
</with>
</and>
</visibleWhen>
</command>
<command id="cn.com.connor.kwc.plm.menus.PropertyCommand" commandId="com.connor.kwc.createDWG.A4">
<visibleWhen checkEnabled="true">
<and>
<iterate ifEmpty="false">
<adapt type="com.teamcenter.rac.kernel.TCComponent">
<or>
<test property="com.teamcenter.rac.kernel.TCComponent.typeClass" value="ItemRevision"> </test>
</or>
</adapt>
</iterate>
<with variable="rac_command_suppression">
<not>
<iterate operator="or">
<equals value="com.connor.kwc.createDWG.A4" />
</iterate>
</not>
</with>
</and>
</visibleWhen>
</command>
</menu>
</menuContribution>
</extension>
</plugin>

@ -0,0 +1,93 @@
/** * @Title: CheckBoxTreeCellRenderer.java
* @Package com.connor.kwc.createBom
* @Description: TODO()
* @author admin * @date 20231220
* @version V1.0
*/
package com.connor.kwc.createBom;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import javax.swing.JCheckBox;
import javax.swing.JPanel;
import javax.swing.JTree;
import javax.swing.UIManager;
import javax.swing.plaf.ColorUIResource;
import javax.swing.tree.TreeCellRenderer;
/**
* @ClassName: CheckBoxTreeCellRenderer
* @Description: Jtree
* @author hcj
* @date 20231220
*
*/
public class CheckBoxTreeCellRenderer extends JPanel implements TreeCellRenderer {
protected JCheckBox check;
protected CheckBoxTreeLabel label;
public CheckBoxTreeCellRenderer() {
setLayout(null);
add(check = new JCheckBox());
add(label = new CheckBoxTreeLabel());
check.setBackground(UIManager.getColor("Tree.textBackground"));
label.setForeground(UIManager.getColor("Tree.textForeground"));
}
/**
* <code>JPanel</code><code>JCheckBox</code>
* <code>JLabel</code><code>JCheckBox</code>
*/
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded,
boolean leaf, int row, boolean hasFocus) {
String stringValue = tree.convertValueToText(value, selected, expanded, leaf, row, hasFocus);
setEnabled(tree.isEnabled());
check.setSelected(((CheckBoxTreeNode) value).isSelected());
label.setFont(tree.getFont());
label.setText(stringValue);
label.setSelected(selected);
label.setFocus(hasFocus);
if (leaf)
label.setIcon(UIManager.getIcon("Tree.leafIcon"));
else if (expanded)
label.setIcon(UIManager.getIcon("Tree.openIcon"));
else
label.setIcon(UIManager.getIcon("Tree.closedIcon"));
return this;
}
@Override
public Dimension getPreferredSize() {
Dimension dCheck = check.getPreferredSize();
Dimension dLabel = label.getPreferredSize();
return new Dimension(dCheck.width + dLabel.width,
dCheck.height < dLabel.height ? dLabel.height : dCheck.height);
}
@Override
public void doLayout() {
Dimension dCheck = check.getPreferredSize();
Dimension dLabel = label.getPreferredSize();
int yCheck = 0;
int yLabel = 0;
if (dCheck.height < dLabel.height)
yCheck = (dLabel.height - dCheck.height) / 2;
else
yLabel = (dCheck.height - dLabel.height) / 2;
check.setLocation(0, yCheck);
check.setBounds(0, yCheck, dCheck.width, dCheck.height);
label.setLocation(dCheck.width, yLabel);
label.setBounds(dCheck.width, yLabel, dLabel.width, dLabel.height);
}
@Override
public void setBackground(Color color) {
if (color instanceof ColorUIResource)
color = null;
super.setBackground(color);
}
}

@ -0,0 +1,79 @@
/** * @Title: CheckBoxTreeLabel.java
* @Package com.connor.kwc.createBom
* @Description: TODO()
* @author admin * @date 20231220
* @version V1.0
*/
package com.connor.kwc.createBom;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.Icon;
import javax.swing.JLabel;
import javax.swing.UIManager;
import javax.swing.plaf.ColorUIResource;
/**
* @ClassName: CheckBoxTreeLabel
* @Description: Jtree
* @author hcj
* @date 20231220
*
*/
public class CheckBoxTreeLabel extends JLabel {
private boolean isSelected;
private boolean hasFocus;
public CheckBoxTreeLabel() {
}
@Override
public void setBackground(Color color) {
if (color instanceof ColorUIResource)
color = null;
super.setBackground(color);
}
@Override
public void paint(Graphics g) {
String str;
if ((str = getText()) != null) {
if (0 < str.length()) {
if (isSelected)
g.setColor(UIManager.getColor("Tree.selectionBackground"));
else
g.setColor(UIManager.getColor("Tree.textBackground"));
Dimension d = getPreferredSize();
int imageOffset = 0;
Icon currentIcon = getIcon();
if (currentIcon != null)
imageOffset = currentIcon.getIconWidth() + Math.max(0, getIconTextGap() - 1);
g.fillRect(imageOffset, 0, d.width - 1 - imageOffset, d.height);
if (hasFocus) {
g.setColor(UIManager.getColor("Tree.selectionBorderColor"));
g.drawRect(imageOffset, 0, d.width - 1 - imageOffset, d.height - 1);
}
}
}
super.paint(g);
}
@Override
public Dimension getPreferredSize() {
Dimension retDimension = super.getPreferredSize();
if (retDimension != null)
retDimension = new Dimension(retDimension.width + 3, retDimension.height);
return retDimension;
}
public void setSelected(boolean isSelected) {
this.isSelected = isSelected;
}
public void setFocus(boolean hasFocus) {
this.hasFocus = hasFocus;
}
}

@ -0,0 +1,97 @@
/** * @Title: CheckBoxTreeNode.java
* @Package com.connor.kwc.createBom
* @Description: TODO()
* @author admin * @date 20231220
* @version V1.0
*/
package com.connor.kwc.createBom;
import javax.swing.tree.DefaultMutableTreeNode;
/**
* @ClassName: CheckBoxTreeNode
* @Description: Jtree
* @author hcj
* @date 20231220
*
*/
public class CheckBoxTreeNode extends DefaultMutableTreeNode {
protected boolean isSelected;
public CheckBoxTreeNode() {
this(null);
}
public CheckBoxTreeNode(Object userObject) {
this(userObject, true, false);
}
public CheckBoxTreeNode(Object userObject, boolean allowsChildren, boolean isSelected) {
super(userObject, allowsChildren);
this.isSelected = isSelected;
}
public boolean isSelected() {
return isSelected;
}
public void setSelected(boolean _isSelected) {
this.isSelected = _isSelected;
if (_isSelected) {
// 如果选中,则将其所有的子结点都选中
if (children != null) {
for (Object obj : children) {
CheckBoxTreeNode node = (CheckBoxTreeNode) obj;
if (_isSelected != node.isSelected())
node.setSelected(_isSelected);
}
}
// 向上检查,如果父结点的所有子结点都被选中,那么将父结点也选中
CheckBoxTreeNode pNode = (CheckBoxTreeNode) parent;
// 开始检查pNode的所有子节点是否都被选中
if (pNode != null) {
int index = 0;
for (; index < pNode.children.size(); ++index) {
CheckBoxTreeNode pChildNode = (CheckBoxTreeNode) pNode.children.get(index);
if (!pChildNode.isSelected())
break;
}
/*
* pNode
*/
if (index == pNode.children.size()) {
if (pNode.isSelected() != _isSelected)
pNode.setSelected(_isSelected);
}
}
} else {
/*
*
*
*/
if (children != null) {
int index = 0;
for (; index < children.size(); ++index) {
CheckBoxTreeNode childNode = (CheckBoxTreeNode) children.get(index);
if (!childNode.isSelected())
break;
}
// 从上向下取消的时候
if (index == children.size()) {
for (int i = 0; i < children.size(); ++i) {
CheckBoxTreeNode node = (CheckBoxTreeNode) children.get(i);
if (node.isSelected() != _isSelected)
node.setSelected(_isSelected);
}
}
}
// 向上取消,只要存在一个子节点不是选上的,那么父节点就不应该被选上。
// CheckBoxTreeNode pNode = (CheckBoxTreeNode) parent;
// if (pNode != null && pNode.isSelected() != _isSelected)
// pNode.setSelected(_isSelected);
}
}
}

@ -0,0 +1,41 @@
/** * @Title: CheckBoxTreeNodeSelectionListener.java
* @Package com.connor.kwc.createBom
* @Description: TODO()
* @author admin * @date 20231220
* @version V1.0
*/
package com.connor.kwc.createBom;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JTree;
import javax.swing.tree.TreePath;
import javax.swing.tree.DefaultTreeModel;
/**
* @ClassName: CheckBoxTreeNodeSelectionListener
* @Description: Jtree
* @author hcj
* @date 20231220
*
*/
public class CheckBoxTreeNodeSelectionListener extends MouseAdapter {
@Override
public void mouseClicked(MouseEvent event) {
JTree tree = (JTree) event.getSource();
int x = event.getX();
int y = event.getY();
int row = tree.getRowForLocation(x, y);
TreePath path = tree.getPathForRow(row);
if (path != null) {
CheckBoxTreeNode node = (CheckBoxTreeNode) path.getLastPathComponent();
if (node != null) {
boolean isSelected = !node.isSelected();
node.setSelected(isSelected);
((DefaultTreeModel) tree.getModel()).nodeStructureChanged(node);
}
}
}
}

@ -0,0 +1,175 @@
package com.connor.kwc.createBom;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponentFolder;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
/**
*
* @ClassName: CreateBOMHandler
* @Description: BOM
* @author hcj
* @date 20231218
*
*/
public class CreateBOMHandler extends AbstractHandler {
private TCSession session;
private String type;
@Override
public Object execute(ExecutionEvent arg0) throws ExecutionException {
AbstractAIFApplication app = AIFUtility.getCurrentApplication();
try {
new Thread() {
@Override
public void run() {
// 获取tc当前选择的操作
InterfaceAIFComponent target = app.getTargetComponent();
session = (TCSession) target.getSession();
String preferencesName = "";
Map<String, Object> dataMap = new HashMap<String, Object>();
if (target instanceof TCComponentFolder) {
type = "folder";
// 判断当前用户是否有权限操作当前对象
Boolean userHasPowerForCompont = Util.userHasPowerForCompont(session,
(TCComponentFolder) target);
if (!userHasPowerForCompont) {
MessageBox.post("用户没有写权限", "提示", MessageBox.INFORMATION);
return;
}
//
preferencesName = "KWC_CreateBOM_list";
String[] preferencesValues = Util.getSXX(session, preferencesName);
if (preferencesValues.length >= 3) {
// 获取item类型集合判断选中对象是否包含其中
String[] itemTypes = preferencesValues[0].split("=")[1].split(";");
ArrayList<String> itemTypeList = new ArrayList<>(Arrays.asList(itemTypes));
try {
if (!itemTypeList
.contains(((TCComponentFolder) target).getStringProperty("object_type"))) {
MessageBox.post("选取的存储位置不正确", "提示", MessageBox.INFORMATION);
}
} catch (TCException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 获取类型数组
String[] types = preferencesValues[1].split("=")[1].split(";");
ArrayList<String> typeList = new ArrayList<>(Arrays.asList(types));
// 获取类型与模板UID的映射关系Map
Map<String, String> templateMap = new HashMap<String, String>();
for (int i = 2; i < preferencesValues.length; i++) {
String[] templates = preferencesValues[i].split("=");
String[] leftTemplate = templates[0].split("\\.");
System.out.println("key:" + leftTemplate[1] + " value:" + templates[1]);
templateMap.put(leftTemplate[1], templates[1]);
}
dataMap.put("typeList", typeList);
dataMap.put("templateMap", templateMap);
} else {
MessageBox.post("首选项【" + preferencesName + "】长度配置有误", "提示", MessageBox.INFORMATION);
}
} else if (target instanceof TCComponentItemRevision) {
type = "revision";
// 判断当前用户是否有权限操作当前对象
Boolean userHasPowerForCompont = Util.userHasPowerForCompont(session,
(TCComponentItemRevision) target);
if (!userHasPowerForCompont) {
MessageBox.post("用户没有写权限", "提示", MessageBox.INFORMATION);
return;
}
preferencesName = "KWC_AddBOM_list";
String[] preferencesValues = Util.getSXX(session, preferencesName);
if (preferencesValues.length >= 4) {
// 获取item类型集合判断选中对象是否包含其中
String[] itemTypes = preferencesValues[0].split("=")[1].split(";");
ArrayList<String> itemTypeList = new ArrayList<>(Arrays.asList(itemTypes));
try {
if (!itemTypeList.contains(
((TCComponentItemRevision) target).getStringProperty("object_type"))) {
MessageBox.post("选取的存储位置不正确", "提示", MessageBox.INFORMATION);
}
// 获取ID数组
String[] ids = preferencesValues[1].split("=")[1].split(";");
ArrayList<String> idList = new ArrayList<>(Arrays.asList(ids));
String itemId = ((TCComponentItemRevision) target).getStringProperty("item_id");
String getId = "";
Boolean flag = true;
for (String id : idList) {
System.out.println("判断itemID" + itemId + "结尾是否匹配" + id);
if (itemId.endsWith(id)) {
flag = false;
getId = id;
break;
}
}
if (flag) {
MessageBox.post("选中对象ID后缀不在首选项【" + preferencesName + "】配置ID中", "提示",
MessageBox.INFORMATION);
return;
}
// 获取类型和模板UID的映射关系Map
List<String> typeList = new ArrayList<String>();
Map<String, String> templateMap = new HashMap<String, String>();
for (int i = 2; i < preferencesValues.length; i++) {
if (preferencesValues[i].startsWith("type")) {
String[] typeSplit = preferencesValues[i].split("=");
if (typeSplit[0].endsWith(getId)) {
String[] types = typeSplit[1].split(";");
typeList = new ArrayList<>(Arrays.asList(types));
}
} else if (preferencesValues[i].startsWith("template")) {
String[] templateSplit = preferencesValues[i].split("=");
if (templateSplit[0].contains(getId)) {
String[] temKey = templateSplit[0].split("\\.");
templateMap.put(temKey[1], templateSplit[1]);
}
}
}
dataMap.put("typeList", typeList);
dataMap.put("templateMap", templateMap);
} catch (TCException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
MessageBox.post("首选项【" + preferencesName + "】长度配置有误", "提示", MessageBox.INFORMATION);
return;
}
} else {
MessageBox.post("选取的存储位置不正确", "提示", MessageBox.INFORMATION);
return;
}
CreateBOMOperation createBOMOperation = new CreateBOMOperation(session, dataMap, target, type);
session.queueOperation(createBOMOperation);
}
}.start();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}

@ -0,0 +1,88 @@
package com.connor.kwc.createBom;
import java.awt.EventQueue;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import com.teamcenter.rac.aif.AbstractAIFOperation;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.kernel.TCComponentBOMLine;
import com.teamcenter.rac.kernel.TCComponentFolder;
import com.teamcenter.rac.kernel.TCSession;
/**
*
* @ClassName: CreateBOMOperation
* @Description: BOM
* @author hcj
* @date 20231218
*
*/
public class CreateBOMOperation extends AbstractAIFOperation {
private TCSession session;
private Map<String, Object> dataMap;
private String type;
private JFrame jFrame;
private InterfaceAIFComponent target;
/**
* CreateBOMOperation
*
* @param session
* @param dataMap
* @param target
* @param type
*/
public CreateBOMOperation(TCSession session, Map<String, Object> dataMap, InterfaceAIFComponent target,
String type) {
// TODO Auto-generated constructor stub
this.session = session;
this.dataMap = dataMap;
this.target = target;
this.type = type;
}
/*
* Title: executeOperation Description:
*
* @throws Exception
*
* @see com.teamcenter.rac.aif.AbstractAIFOperation#executeOperation()
*/
@Override
public void executeOperation() throws Exception {
// TODO Auto-generated method stub
init();
}
/**
*
* @Title: init
* @Description:
* @param
* @return void
* @throws
*/
public void init() {
EventQueue.invokeLater(new Runnable() {
public void run() {
if ("folder".equals(type)) {
NewJFrame2 newJFrame2 = new NewJFrame2(session, dataMap, (TCComponentFolder) target);
newJFrame2.setVisible(true);
} else if ("revision".equals(type)) {
// NewJFrame1 newJFrame2 = new NewJFrame1(session,dataMap);
// newJFrame2.setVisible(true);
}
}
});
}
}

@ -0,0 +1,623 @@
/** * @Title: NewJFrame1.java
* @Package com.connor.kwc.createBom
* @Description: TODO()
* @author admin * @date 20231219
* @version V1.0
*/
package com.connor.kwc.createBom;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.text.ParseException;
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 javax.swing.DefaultComboBoxModel;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JTree;
import javax.swing.LayoutStyle;
import javax.swing.WindowConstants;
import javax.swing.tree.DefaultTreeModel;
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentBOMLine;
import com.teamcenter.rac.kernel.TCComponentBOMWindow;
import com.teamcenter.rac.kernel.TCComponentBOMWindowType;
import com.teamcenter.rac.kernel.TCComponentFolder;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCProperty;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
/**
* @ClassName: NewJFrame1
* @Description:
* @author hcj
* @date 20231219
*
*/
public class NewJFrame1 extends JFrame {
private TCSession session;
private Map<String, Object> dataMap;
private TCComponentItemRevision target;
private JButton jButton1;
private JButton jButton2;
private JComboBox<String> jComboBox1;
private JComboBox<String> jComboBox2;
private JComboBox<String> jComboBox3;
private JComboBox<String> jComboBox4;
private JLabel jLabel1;
private JLabel jLabel2;
private JLabel jLabel3;
private JLabel jLabel4;
private JLabel jLabel5;
private JPanel jPanel1;
private JPanel jPanel2;
private JPanel jPanel3;
private JPanel jPanel4;
private JScrollPane jScrollPane1;
private JTextField jTextField1;
private JTextField jTextField2;
private JTree jTree1;
private String[] sxxdate;
private TCComponent component;
private List<String> tempList;
private Map<String, CheckBoxTreeNode> itemMapIsSel = new HashMap<>();
private Map<String, TCComponentBOMLine> itemMapBoMap = new HashMap<>();
/**
* Creates new form NewJFrame2
*/
public NewJFrame1(TCSession session, Map<String, Object> dataMap, TCComponentItemRevision target) {
this.session = session;
this.dataMap = dataMap;
this.target = target;
getDate();
try {
initComponents();
} catch (TCException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
*
*/
private void getDate() {
// TODO Auto-generated method stub
sxxdate = Util.getSXX(session, "KWC_CreateBOM_attribute");
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() throws TCException {
jComboBox1 = new JComboBox<>();
jPanel1 = new JPanel();
jPanel2 = new JPanel();
jLabel1 = new JLabel();
jTextField1 = new JTextField();
jLabel2 = new JLabel();
jTextField2 = new JTextField();
jLabel3 = new JLabel();
jComboBox2 = new JComboBox<>();
jComboBox3 = new JComboBox<>();
jLabel4 = new JLabel();
jLabel5 = new JLabel();
jComboBox4 = new JComboBox<>();
jPanel3 = new JPanel();
jButton1 = new JButton();
jButton2 = new JButton();
jPanel4 = new JPanel();
jScrollPane1 = new JScrollPane();
jTree1 = new JTree();
jTree1.setCellRenderer(new CheckBoxTreeCellRenderer());
jComboBox1.setModel(new DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setBackground(new java.awt.Color(240, 240, 240));
jPanel1.setBackground(new java.awt.Color(240, 240, 240));
jPanel2.setBackground(new java.awt.Color(240, 240, 240));
jLabel1.setText("产品代号:");
jLabel2.setText("产品名称:");
jLabel3.setText("类型:");
List typeList = (ArrayList) dataMap.get("typeList");
String[] typeArray = (String[]) typeList.toArray();
jComboBox2.setModel(new DefaultComboBoxModel<>(typeArray));
jComboBox2.setSelectedIndex(0);
Map<String, String> templateMap = (HashMap<String, String>) dataMap.get("templateMap");
String template = templateMap.get(jComboBox2.getSelectedItem());
String[] split = template.split(";");
tempList = new ArrayList<String>();
// 根据UID找模板信息
for (String uid : split) {
try {
TCComponent component = session.stringToComponent(uid);
tempList.add(component.getStringProperty("object_name"));
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
String[] array = (String[]) tempList.toArray();
jComboBox3.setModel(new DefaultComboBoxModel<>(array));
jComboBox3.setSelectedIndex(0);
jLabel4.setText("模板:");
try {
// 根据模板创建树结构,给用户选择
component = session.stringToComponent(tempList.get(0));
TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow");
TCComponentBOMWindow view = winType.create(null);
if (component instanceof TCComponentItemRevision) {
TCComponentItemRevision rev = (TCComponentItemRevision) component;
TCComponentBOMLine line = view.setWindowTopLine(rev.getItem(), rev, null, null);
String topNode = component.getStringProperty("object_string");
CheckBoxTreeNode rootNode = new CheckBoxTreeNode(topNode);
getTree(line, rootNode);
DefaultTreeModel model = new DefaultTreeModel(rootNode);
jTree1.addMouseListener(new CheckBoxTreeNodeSelectionListener());
jTree1.setModel(model);
jTree1.setCellRenderer(new CheckBoxTreeCellRenderer());
}
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
jComboBox2.setModel(new DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
jComboBox3.setModel(new DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
jLabel4.setText("模板:");
jLabel5.setText("专业:");
jComboBox4.setModel(new DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
GroupLayout jPanel2Layout = new GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup().addGap(27, 27, 27).addGroup(jPanel2Layout
.createParallelGroup(GroupLayout.Alignment.LEADING, false)
.addComponent(jLabel5, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel3, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE,
GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel4, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE,
GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(jComboBox4, GroupLayout.PREFERRED_SIZE, 160, GroupLayout.PREFERRED_SIZE)
.addComponent(jComboBox3, GroupLayout.PREFERRED_SIZE, 160, GroupLayout.PREFERRED_SIZE)
.addComponent(jComboBox2, GroupLayout.PREFERRED_SIZE, 160, GroupLayout.PREFERRED_SIZE))
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 51, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(jLabel1, GroupLayout.Alignment.TRAILING)
.addComponent(jLabel2, GroupLayout.Alignment.TRAILING))
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(jTextField1, GroupLayout.PREFERRED_SIZE, 160, GroupLayout.PREFERRED_SIZE)
.addComponent(jTextField2, GroupLayout.PREFERRED_SIZE, 160, GroupLayout.PREFERRED_SIZE))
.addGap(27, 27, 27)));
jPanel2Layout
.setVerticalGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup().addGap(13, 13, 13)
.addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(jTextField1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1).addComponent(jLabel3).addComponent(jComboBox2,
GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel2Layout
.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(jPanel2Layout
.createSequentialGroup().addGap(18, 18, 18).addGroup(jPanel2Layout
.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(
jTextField2, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 12,
Short.MAX_VALUE)
.addGroup(jPanel2Layout
.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5).addComponent(jComboBox4,
GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE))
.addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel2Layout
.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(jComboBox3, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))
.addContainerGap()))));
jPanel3.setBackground(new java.awt.Color(240, 240, 240));
jButton1.setText("创建");
jButton2.setText("取消");
GroupLayout jPanel3Layout = new GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout
.setHorizontalGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(jButton1)
.addGap(35, 35, 35).addComponent(jButton2).addGap(33, 33, 33)));
jPanel3Layout
.setVerticalGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup().addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(jButton1).addComponent(jButton2))
.addContainerGap(21, Short.MAX_VALUE)));
jPanel4.setBackground(new java.awt.Color(240, 240, 240));
jScrollPane1.setViewportView(jTree1);
GroupLayout jPanel4Layout = new GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(jScrollPane1));
jPanel4Layout.setVerticalGroup(jPanel4Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(
GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup().addGap(0, 0, Short.MAX_VALUE)
.addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 421, GroupLayout.PREFERRED_SIZE)));
GroupLayout jPanel1Layout = new GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup().addContainerGap().addGroup(jPanel1Layout
.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(jPanel3, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel2, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel4, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap()));
jPanel1Layout
.setVerticalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup().addContainerGap()
.addComponent(jPanel2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED).addComponent(jPanel4,
GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap()));
GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addContainerGap()
.addComponent(jPanel1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap()));
layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jPanel1,
GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
pack();
jTextField1.setText(target.getStringProperty("item_id"));
jTextField2.setEditable(false);
// 类型下拉框监听,更新模板下拉框
jComboBox2.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
Map<String, String> templateMap = (HashMap<String, String>) dataMap.get("templateMap");
String template = templateMap.get(jComboBox2.getSelectedItem());
String[] split = template.split(";");
List<String> tempList = new ArrayList<String>();
// 根据UID找模板信息
for (String uid : split) {
try {
TCComponent component = session.stringToComponent(uid);
tempList.add(component.getStringProperty("object_name"));
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
String[] array = (String[]) tempList.toArray();
jComboBox3.setModel(new DefaultComboBoxModel<>(array));
}
});
// 模板下拉框更新更新Jtree
jComboBox3.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
try {
int selectedIndex = jComboBox3.getSelectedIndex();
String uid = tempList.get(selectedIndex);
component = session.stringToComponent(uid);
TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow");
TCComponentBOMWindow view = winType.create(null);
if (component instanceof TCComponentItemRevision) {
TCComponentItemRevision rev = (TCComponentItemRevision) component;
TCComponentBOMLine line = view.setWindowTopLine(rev.getItem(), rev, null, null);
String topNode = component.getStringProperty("object_string");
CheckBoxTreeNode rootNode = new CheckBoxTreeNode(topNode);
getTree(line, rootNode);
DefaultTreeModel model = new DefaultTreeModel(rootNode);
jTree1.addMouseListener(new CheckBoxTreeNodeSelectionListener());
jTree1.setModel(model);
jTree1.setCellRenderer(new CheckBoxTreeCellRenderer());
}
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
});
// 确定按钮更新
jButton1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 必填判定
String field1 = jTextField1.getText();
String field2 = jTextField2.getText();
if (field1 == null || "".equals(field1.trim()) || field2 == null || "".equals(field2.trim())) {
MessageBox.post("产品代号和产品名称必填,请检查", "提示", MessageBox.INFORMATION);
return;
}
// 开始复制对象
TCComponentItemRevision revision = (TCComponentItemRevision) component;
try {
if (itemMapIsSel.get(revision.getStringProperty("object_string")).isSelected) {
TCComponentItem newItem = revision.saveAsItem(jTextField1.getText(), "A", jTextField2.getText(),
"", true, null);
TCComponentItemRevision newRevision = newItem.getLatestItemRevision();
TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session
.getTypeComponent("BOMWindow");
TCComponentBOMWindow view = winType.create(null);
TCComponentBOMLine line = view.setWindowTopLine(revision.getItem(), revision, null, null);
// 根据首选项的值复制对象属性
for (String attrStr : sxxdate) {
if (attrStr.startsWith(line.getItemRevision().getItem().getStringProperty("object_type"))) {
try {
replaceAttribute(line, newRevision, attrStr);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
break;
}
}
// 递归BOM结构删除未选中的对象
collectAllBomLine(line, jTextField1.getText(), winType, view, false);
TCComponentItemRevision itemRevision = line.getItemRevision();
target.add("", itemRevision);
} else {
return;
}
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
}
/**
* BOM
*
* @param view
* @param topBomLine
* @param newId
* @param winType
* @param newview
* @throws TCException
*/
public void collectAllBomLine(TCComponentBOMLine bomLine, String newId, TCComponentBOMWindowType winType,
TCComponentBOMWindow newview, Boolean flag) throws TCException {
String objectName = bomLine.getItemRevision().getStringProperty("object_name");
boolean selected = itemMapIsSel.get(objectName).isSelected();
// 判断界面是否选中
if (selected) {
// 另存一个新的出来修改数据。替换当前的bom行
if (flag) {
// 第一次递归的时候直接判断子类继续递归
flag = false;
if (bomLine.hasChildren()) {
for (AIFComponentContext aifComponentContext : bomLine.getChildren()) {
TCComponentBOMLine line = (TCComponentBOMLine) aifComponentContext.getComponent();
collectAllBomLine(line, newId, winType, newview, flag);
}
}
} else {
// 当不是第一次递归的时候每次递归另存一个对象把要同步的数据同步过去然后将对象替换到新的bomview上去
TCComponentItem saveAsItem = bomLine.getItemRevision().saveAsItem(jTextField1.getText(), "A",
bomLine.getItemRevision().getStringProperty("object_name"), "", true, null);
TCComponentItemRevision latestItemRevision = saveAsItem.getLatestItemRevision();
// 替换属性
for (String attrStr : sxxdate) {
if (attrStr.startsWith(bomLine.getItemRevision().getItem().getStringProperty("object_type"))) {
try {
replaceAttribute(itemMapBoMap.get(objectName), latestItemRevision, attrStr);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
break;
}
}
// 替换分类属性
// 替换bom行
bomLine.replace(saveAsItem, latestItemRevision, newview);
if (bomLine.hasChildren()) {
for (AIFComponentContext aifComponentContext : bomLine.getChildren()) {
TCComponentBOMLine line = (TCComponentBOMLine) aifComponentContext.getComponent();
collectAllBomLine(line, newId, winType, newview, flag);
}
}
}
} else {
// 从bomview中删除对象
return;
}
}
/**
* component
*
* @param component
* @param rootNode2
* @throws TCException
*/
private void getTree(TCComponentBOMLine bomLine, CheckBoxTreeNode rootNode) throws TCException {
itemMapIsSel.put(bomLine.getItemRevision().getStringProperty("object_name"), rootNode);
itemMapBoMap.put(bomLine.getItemRevision().getStringProperty("object_name"), bomLine);
if (bomLine.hasChildren()) {
AIFComponentContext[] children = bomLine.getChildren();
for (AIFComponentContext aifComponentContext : children) {
TCComponentBOMLine line = (TCComponentBOMLine) aifComponentContext.getComponent();
String node = line.getItemRevision().getStringProperty("object_string");
CheckBoxTreeNode childNode = new CheckBoxTreeNode(node);
rootNode.add(childNode);
getTree(line, childNode);
}
}
}
private void replaceAttribute(TCComponentBOMLine oldLine, TCComponentItemRevision newLine, String attrStr)
throws TCException, ParseException {
String[] attrs = attrStr.split("=")[1].split(";");
for (String attr : attrs) {
String[] p1 = attr.split("\\.");
if (p1[0].equals("item")) {
// pitem.setStringProperty(p1[1], val);
String val = oldLine.getItem().getStringProperty(p1[1]);
TCComponentItem pitem = newLine.getItem();
TCProperty property = (TCProperty) pitem.getTCProperty(p1[1]);
switch (property.getPropertyType()) {
case TCProperty.PROP_string:
case TCProperty.PROP_long_string:
pitem.setStringProperty(p1[1], val);
break;
case TCProperty.PROP_short:
case TCProperty.PROP_int:
pitem.setIntProperty(p1[1], Integer.parseInt(val));
break;
case TCProperty.PROP_double:
case TCProperty.PROP_float:
pitem.setDoubleProperty(p1[1], Double.parseDouble(val));
break;
case TCProperty.PROP_date:
if (!val.equals("")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
Date date = sdf.parse(p1[1]);
if (date != null) {
pitem.setDateProperty(p1[1], date);
}
}
break;
default:
pitem.setStringProperty(p1[1], val);
break;
}
} else if (p1[0].equals("rev")) {
String val = oldLine.getItemRevision().getStringProperty(p1[1]);
TCComponentItemRevision prev = newLine;
TCProperty property = (TCProperty) prev.getTCProperty(p1[1]);
// prev.setStringProperty(p1[1], val);
switch (property.getPropertyType()) {
case TCProperty.PROP_string:
case TCProperty.PROP_long_string:
prev.setStringProperty(p1[1], val);
break;
case TCProperty.PROP_short:
case TCProperty.PROP_int:
prev.setIntProperty(p1[1], Integer.parseInt(val));
break;
case TCProperty.PROP_double:
case TCProperty.PROP_float:
prev.setDoubleProperty(p1[1], Double.parseDouble(val));
break;
case TCProperty.PROP_date:
if (!val.equals("")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
Date date = sdf.parse(p1[1]);
if (date != null) {
prev.setDateProperty(p1[1], date);
}
}
break;
default:
prev.setStringProperty(p1[1], val);
break;
}
} else if (p1[0].equals("bom")) {
String val = oldLine.getStringProperty(p1[1]);
TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow");
TCComponentBOMWindow view = winType.create(null);
TCComponentBOMLine line = view.setWindowTopLine(newLine.getItem(), newLine, null, null);
TCProperty property = (TCProperty) line.getTCProperty(p1[1]);
switch (property.getPropertyType()) {
case TCProperty.PROP_string:
case TCProperty.PROP_long_string:
line.setStringProperty(p1[1], val);
break;
case TCProperty.PROP_short:
case TCProperty.PROP_int:
line.setIntProperty(p1[1], Integer.parseInt(val));
break;
case TCProperty.PROP_double:
case TCProperty.PROP_float:
line.setDoubleProperty(p1[1], Double.parseDouble(val));
break;
case TCProperty.PROP_date:
if (!val.equals("")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
Date date = sdf.parse(p1[1]);
if (date != null) {
line.setDateProperty(p1[1], date);
}
}
break;
default:
line.setStringProperty(p1[1], val);
break;
}
}
}
}
}

@ -0,0 +1,601 @@
package com.connor.kwc.createBom;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.text.ParseException;
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 javax.swing.DefaultComboBoxModel;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JTree;
import javax.swing.LayoutStyle;
import javax.swing.WindowConstants;
import javax.swing.tree.DefaultTreeModel;
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.TCComponentBOMLine;
import com.teamcenter.rac.kernel.TCComponentBOMWindow;
import com.teamcenter.rac.kernel.TCComponentBOMWindowType;
import com.teamcenter.rac.kernel.TCComponentBomChange;
import com.teamcenter.rac.kernel.TCComponentFolder;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCProperty;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.services.rac.core._2012_10.DataManagement.GetDatasetTypesWithFileExtensionOutput;
import com.teamcenter.soaictstubs.tagSeq_tHolder;
/**
*
* @ClassName: NewJFrame2
* @Description:
* @author hcj
* @date 20231219
*
*/
public class NewJFrame2 extends JFrame {
private JButton jButton1;
private JButton jButton2;
private JComboBox<String> jComboBox1;
private JComboBox<String> jComboBox2;
private JComboBox<String> jComboBox3;
private JLabel jLabel1;
private JLabel jLabel2;
private JLabel jLabel3;
private JLabel jLabel4;
private JPanel jPanel1;
private JPanel jPanel2;
private JPanel jPanel3;
private JPanel jPanel4;
private JScrollPane jScrollPane1;
private JTextField jTextField1;
private JTextField jTextField2;
private JTree jTree1;
private TCSession session;
private Map<String, Object> dataMap;
private TCComponentFolder target;
private List<String> tempList;
private TCComponent component;
private Map<String, CheckBoxTreeNode> itemMapIsSel = new HashMap<>();
private Map<String, TCComponentBOMLine> itemMapBoMap = new HashMap<>();
private String[] sxxdate;
/**
* Creates new form NewJFrame2
*
* @param dataMap
* @param session
* @param target
*/
public NewJFrame2(TCSession session, Map<String, Object> dataMap, TCComponentFolder target) {
this.session = session;
this.dataMap = dataMap;
this.target = target;
getDate();
initComponents();
}
/**
*
*/
private void getDate() {
// TODO Auto-generated method stub
sxxdate = Util.getSXX(session, "KWC_CreateBOM_attribute");
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*
* @throws TCException
*/
@SuppressWarnings("unchecked")
private void initComponents() {
jPanel1 = new JPanel();
jPanel2 = new JPanel();
jLabel1 = new JLabel();
jTextField1 = new JTextField();
jLabel2 = new JLabel();
jTextField2 = new JTextField();
jLabel3 = new JLabel();
jComboBox2 = new JComboBox<>();
jComboBox3 = new JComboBox<>();
jLabel4 = new JLabel();
jPanel3 = new JPanel();
jButton1 = new JButton();
jButton2 = new JButton();
jPanel4 = new JPanel();
jScrollPane1 = new JScrollPane();
jTree1 = new JTree();
setBackground(new java.awt.Color(240, 240, 240));
jPanel1.setBackground(new java.awt.Color(240, 240, 240));
jPanel2.setBackground(new java.awt.Color(240, 240, 240));
jLabel1.setText("产品代号:");
jLabel2.setText("产品名称:");
jLabel3.setText("类型:");
List typeList = (ArrayList) dataMap.get("typeList");
String[] typeArray = (String[]) typeList.toArray();
jComboBox2.setModel(new DefaultComboBoxModel<>(typeArray));
jComboBox2.setSelectedIndex(0);
Map<String, String> templateMap = (HashMap<String, String>) dataMap.get("templateMap");
String template = templateMap.get(jComboBox2.getSelectedItem());
String[] split = template.split(";");
tempList = new ArrayList<String>();
// 根据UID找模板信息
for (String uid : split) {
try {
TCComponent component = session.stringToComponent(uid);
tempList.add(component.getStringProperty("object_name"));
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
String[] array = (String[]) tempList.toArray();
jComboBox3.setModel(new DefaultComboBoxModel<>(array));
jComboBox3.setSelectedIndex(0);
jLabel4.setText("模板:");
try {
// 根据模板创建树结构,给用户选择
component = session.stringToComponent(tempList.get(0));
TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow");
TCComponentBOMWindow view = winType.create(null);
if (component instanceof TCComponentItemRevision) {
TCComponentItemRevision rev = (TCComponentItemRevision) component;
TCComponentBOMLine line = view.setWindowTopLine(rev.getItem(), rev, null, null);
String topNode = component.getStringProperty("object_string");
CheckBoxTreeNode rootNode = new CheckBoxTreeNode(topNode);
getTree(line, rootNode);
DefaultTreeModel model = new DefaultTreeModel(rootNode);
jTree1.addMouseListener(new CheckBoxTreeNodeSelectionListener());
jTree1.setModel(model);
jTree1.setCellRenderer(new CheckBoxTreeCellRenderer());
}
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
GroupLayout jPanel2Layout = new GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup().addGap(27, 27, 27).addGroup(jPanel2Layout
.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup().addComponent(jLabel3)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jComboBox2, GroupLayout.PREFERRED_SIZE, 160, GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel2Layout.createSequentialGroup().addComponent(jLabel4)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jComboBox3, GroupLayout.PREFERRED_SIZE, 160, GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 51, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(jLabel1, GroupLayout.Alignment.TRAILING)
.addComponent(jLabel2, GroupLayout.Alignment.TRAILING))
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(jTextField1, GroupLayout.PREFERRED_SIZE, 160, GroupLayout.PREFERRED_SIZE)
.addComponent(jTextField2, GroupLayout.PREFERRED_SIZE, 160, GroupLayout.PREFERRED_SIZE))
.addGap(27, 27, 27)));
jPanel2Layout
.setVerticalGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup().addGap(13, 13, 13)
.addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(jTextField1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1).addComponent(jLabel3)
.addComponent(jComboBox2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(
jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(jTextField2, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2)
.addComponent(jComboBox3, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))
.addContainerGap(17, Short.MAX_VALUE)));
jPanel3.setBackground(new java.awt.Color(240, 240, 240));
jButton1.setText("创建");
jButton1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 必填判定
String field1 = jTextField1.getText();
String field2 = jTextField2.getText();
if (field1 == null || "".equals(field1.trim()) || field2 == null || "".equals(field2.trim())) {
MessageBox.post("产品代号和产品名称必填,请检查", "提示", MessageBox.INFORMATION);
return;
}
}
});
jButton2.setText("取消");
GroupLayout jPanel3Layout = new GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout
.setHorizontalGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(jButton1)
.addGap(35, 35, 35).addComponent(jButton2).addGap(33, 33, 33)));
jPanel3Layout
.setVerticalGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup().addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(jButton1).addComponent(jButton2))
.addContainerGap(21, Short.MAX_VALUE)));
jPanel4.setBackground(new java.awt.Color(255, 255, 255));
jScrollPane1.setViewportView(jTree1);
GroupLayout jPanel4Layout = new GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(jScrollPane1));
jPanel4Layout.setVerticalGroup(jPanel4Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(
GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup().addGap(0, 0, Short.MAX_VALUE)
.addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 421, GroupLayout.PREFERRED_SIZE)));
GroupLayout jPanel1Layout = new GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup().addContainerGap().addGroup(jPanel1Layout
.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(jPanel3, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel2, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel4, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap()));
jPanel1Layout
.setVerticalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup().addContainerGap()
.addComponent(jPanel2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jPanel3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED).addComponent(jPanel4,
GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap()));
GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addContainerGap()
.addComponent(jPanel1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap()));
layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jPanel1,
GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
pack();
// 类型下拉框监听,更新模板下拉框
jComboBox2.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
Map<String, String> templateMap = (HashMap<String, String>) dataMap.get("templateMap");
String template = templateMap.get(jComboBox2.getSelectedItem());
String[] split = template.split(";");
List<String> tempList = new ArrayList<String>();
// 根据UID找模板信息
for (String uid : split) {
try {
TCComponent component = session.stringToComponent(uid);
tempList.add(component.getStringProperty("object_name"));
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
String[] array = (String[]) tempList.toArray();
jComboBox3.setModel(new DefaultComboBoxModel<>(array));
}
});
// 模板下拉框更新更新Jtree
jComboBox3.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
try {
int selectedIndex = jComboBox3.getSelectedIndex();
String uid = tempList.get(selectedIndex);
component = session.stringToComponent(uid);
TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow");
TCComponentBOMWindow view = winType.create(null);
if (component instanceof TCComponentItemRevision) {
TCComponentItemRevision rev = (TCComponentItemRevision) component;
TCComponentBOMLine line = view.setWindowTopLine(rev.getItem(), rev, null, null);
String topNode = component.getStringProperty("object_string");
CheckBoxTreeNode rootNode = new CheckBoxTreeNode(topNode);
getTree(line, rootNode);
DefaultTreeModel model = new DefaultTreeModel(rootNode);
jTree1.addMouseListener(new CheckBoxTreeNodeSelectionListener());
jTree1.setModel(model);
jTree1.setCellRenderer(new CheckBoxTreeCellRenderer());
}
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
});
// 确定按钮更新
jButton1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 必填判定
String field1 = jTextField1.getText();
String field2 = jTextField2.getText();
if (field1 == null || "".equals(field1.trim()) || field2 == null || "".equals(field2.trim())) {
MessageBox.post("产品代号和产品名称必填,请检查", "提示", MessageBox.INFORMATION);
return;
}
// 开始复制对象
TCComponentItemRevision revision = (TCComponentItemRevision) component;
try {
if (itemMapIsSel.get(revision.getStringProperty("object_string")).isSelected) {
TCComponentItem newItem = revision.saveAsItem(jTextField1.getText(), "A", jTextField2.getText(),
"", true, null);
TCComponentItemRevision newRevision = newItem.getLatestItemRevision();
TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session
.getTypeComponent("BOMWindow");
TCComponentBOMWindow view = winType.create(null);
TCComponentBOMLine line = view.setWindowTopLine(revision.getItem(), revision, null, null);
// 根据首选项的值复制对象属性
for (String attrStr : sxxdate) {
if (attrStr.startsWith(line.getItemRevision().getItem().getStringProperty("object_type"))) {
try {
replaceAttribute(line, newRevision, attrStr);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
break;
}
}
// 递归BOM结构删除未选中的对象
collectAllBomLine(line, jTextField1.getText(), winType, view, false);
TCComponentItemRevision itemRevision = line.getItemRevision();
target.add("", itemRevision);
} else {
return;
}
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
}
/**
* BOM
*
* @param view
* @param topBomLine
* @param newId
* @param winType
* @param newview
* @throws TCException
*/
public void collectAllBomLine(TCComponentBOMLine bomLine, String newId, TCComponentBOMWindowType winType,
TCComponentBOMWindow newview, Boolean flag) throws TCException {
String objectName = bomLine.getItemRevision().getStringProperty("object_name");
boolean selected = itemMapIsSel.get(objectName).isSelected();
// 判断界面是否选中
if (selected) {
// 另存一个新的出来修改数据。替换当前的bom行
if (flag) {
// 第一次递归的时候直接判断子类继续递归
flag = false;
if (bomLine.hasChildren()) {
for (AIFComponentContext aifComponentContext : bomLine.getChildren()) {
TCComponentBOMLine line = (TCComponentBOMLine) aifComponentContext.getComponent();
collectAllBomLine(line, newId, winType, newview, flag);
}
}
} else {
// 当不是第一次递归的时候每次递归另存一个对象把要同步的数据同步过去然后将对象替换到新的bomview上去
TCComponentItem saveAsItem = bomLine.getItemRevision().saveAsItem(jTextField1.getText(), "A",
bomLine.getItemRevision().getStringProperty("object_name"), "", true, null);
TCComponentItemRevision latestItemRevision = saveAsItem.getLatestItemRevision();
// 替换属性
for (String attrStr : sxxdate) {
if (attrStr.startsWith(bomLine.getItemRevision().getItem().getStringProperty("object_type"))) {
try {
replaceAttribute(itemMapBoMap.get(objectName), latestItemRevision, attrStr);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
break;
}
}
// 替换分类属性
// 替换bom行
bomLine.replace(saveAsItem, latestItemRevision, newview);
if (bomLine.hasChildren()) {
for (AIFComponentContext aifComponentContext : bomLine.getChildren()) {
TCComponentBOMLine line = (TCComponentBOMLine) aifComponentContext.getComponent();
collectAllBomLine(line, newId, winType, newview, flag);
}
}
}
} else {
// 从bomview中删除对象
return;
}
}
/**
* component
*
* @param component
* @param rootNode2
* @throws TCException
*/
private void getTree(TCComponentBOMLine bomLine, CheckBoxTreeNode rootNode) throws TCException {
itemMapIsSel.put(bomLine.getItemRevision().getStringProperty("object_name"), rootNode);
itemMapBoMap.put(bomLine.getItemRevision().getStringProperty("object_name"), bomLine);
if (bomLine.hasChildren()) {
AIFComponentContext[] children = bomLine.getChildren();
for (AIFComponentContext aifComponentContext : children) {
TCComponentBOMLine line = (TCComponentBOMLine) aifComponentContext.getComponent();
String node = line.getItemRevision().getStringProperty("object_string");
CheckBoxTreeNode childNode = new CheckBoxTreeNode(node);
rootNode.add(childNode);
getTree(line, childNode);
}
}
}
private void replaceAttribute(TCComponentBOMLine oldLine, TCComponentItemRevision newLine, String attrStr)
throws TCException, ParseException {
String[] attrs = attrStr.split("=")[1].split(";");
for (String attr : attrs) {
String[] p1 = attr.split("\\.");
if (p1[0].equals("item")) {
// pitem.setStringProperty(p1[1], val);
String val = oldLine.getItem().getStringProperty(p1[1]);
TCComponentItem pitem = newLine.getItem();
TCProperty property = (TCProperty) pitem.getTCProperty(p1[1]);
switch (property.getPropertyType()) {
case TCProperty.PROP_string:
case TCProperty.PROP_long_string:
pitem.setStringProperty(p1[1], val);
break;
case TCProperty.PROP_short:
case TCProperty.PROP_int:
pitem.setIntProperty(p1[1], Integer.parseInt(val));
break;
case TCProperty.PROP_double:
case TCProperty.PROP_float:
pitem.setDoubleProperty(p1[1], Double.parseDouble(val));
break;
case TCProperty.PROP_date:
if (!val.equals("")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
Date date = sdf.parse(p1[1]);
if (date != null) {
pitem.setDateProperty(p1[1], date);
}
}
break;
default:
pitem.setStringProperty(p1[1], val);
break;
}
} else if (p1[0].equals("rev")) {
String val = oldLine.getItemRevision().getStringProperty(p1[1]);
TCComponentItemRevision prev = newLine;
TCProperty property = (TCProperty) prev.getTCProperty(p1[1]);
// prev.setStringProperty(p1[1], val);
switch (property.getPropertyType()) {
case TCProperty.PROP_string:
case TCProperty.PROP_long_string:
prev.setStringProperty(p1[1], val);
break;
case TCProperty.PROP_short:
case TCProperty.PROP_int:
prev.setIntProperty(p1[1], Integer.parseInt(val));
break;
case TCProperty.PROP_double:
case TCProperty.PROP_float:
prev.setDoubleProperty(p1[1], Double.parseDouble(val));
break;
case TCProperty.PROP_date:
if (!val.equals("")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
Date date = sdf.parse(p1[1]);
if (date != null) {
prev.setDateProperty(p1[1], date);
}
}
break;
default:
prev.setStringProperty(p1[1], val);
break;
}
} else if (p1[0].equals("bom")) {
String val = oldLine.getStringProperty(p1[1]);
TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow");
TCComponentBOMWindow view = winType.create(null);
TCComponentBOMLine line = view.setWindowTopLine(newLine.getItem(), newLine, null, null);
TCProperty property = (TCProperty) line.getTCProperty(p1[1]);
switch (property.getPropertyType()) {
case TCProperty.PROP_string:
case TCProperty.PROP_long_string:
line.setStringProperty(p1[1], val);
break;
case TCProperty.PROP_short:
case TCProperty.PROP_int:
line.setIntProperty(p1[1], Integer.parseInt(val));
break;
case TCProperty.PROP_double:
case TCProperty.PROP_float:
line.setDoubleProperty(p1[1], Double.parseDouble(val));
break;
case TCProperty.PROP_date:
if (!val.equals("")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
Date date = sdf.parse(p1[1]);
if (date != null) {
line.setDateProperty(p1[1], date);
}
}
break;
default:
line.setStringProperty(p1[1], val);
break;
}
}
}
}
}

@ -0,0 +1,157 @@
/** * @Title: util.java
* @Package com.connor.kwc.createBom
* @Description: TODO()
* @author admin * @date 20231218
* @version V1.0
*/
package com.connor.kwc.createBom;
import java.util.HashMap;
import java.util.Map;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCAccessControlService;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentFolder;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.kernel.TCTextService;
import com.teamcenter.rac.kernel.TCUserService;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.services.rac.core.DataManagementService;
import com.teamcenter.services.rac.core._2008_06.DataManagement.CreateIn;
import com.teamcenter.services.rac.core._2008_06.DataManagement.CreateInput;
import com.teamcenter.services.rac.core._2008_06.DataManagement.CreateOut;
import com.teamcenter.services.rac.core._2008_06.DataManagement.CreateResponse;
import com.teamcenter.soa.client.model.ServiceData;
/**
* @ClassName: util
* @Description:
* @author hcj
* @date 20231218
*
*/
public class Util {
public static final TCSession session;
public static final TCTextService textService;
static {
session = (TCSession) AIFUtility.getCurrentApplication().getSession();
textService = session.getTextService();
}
/**
*
* @Title: getSXX
* @Description:
* @param @param session
* @param @param name
* @param @return
* @return String[]
* @throws
*/
public static String[] getSXX(TCSession session, String name) {
String[] value = session.getPreferenceService().getStringValues(name);
if (value != null && value.length > 0) {
return value;
} else {
MessageBox.post("首选项【" + name + "】配置有误", "提示", MessageBox.ERROR);
}
return null;
}
/**
*
* @Title: userHasPowerForCompont
* @Description:
* @param @param session
* @param @param component
* @param @return
* @return Boolean
* @throws
*/
public static Boolean userHasPowerForCompont(TCSession session, TCComponent component) {
TCAccessControlService tcAccessControlService = session.getTCAccessControlService();
TCComponent[] user = new TCComponent[] { session.getUser(), session.getGroup(), session.getRole() };
try {
return tcAccessControlService.checkAccessorsPrivilege(user, component, "WRITE");
} catch (TCException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
*
* @Title: setByPass
* @Description: /
* @param @param val
* @return void
* @throws
*/
public static void setByPass(boolean val) {
try {
TCUserService userservice = session.getUserService();
userservice.call(val ? "CONNOR_open_bypass" : "CONNOR_close_bypass", new Object[] { "" });
System.out.println(val ? "Open Bypass" : "Close Bypass");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
*
* @Title: createFolderBySOA
* @Description: SOAFolder
* @param @param folderTypeName
* @param @param folderName
* @param @return
* @param @throws Exception
* @return TCComponentFolder
* @throws
*/
public static TCComponentFolder createFolderBySOA(String folderTypeName, String folderName) throws Exception {
if (folderTypeName == null || "".equals(folderTypeName.trim())) {
return null;
}
CreateInput itemInput = new CreateInput();
itemInput.boName = folderTypeName;
Map<String, String> itemPropMap = new HashMap<>();
itemPropMap.put("object_name", folderName);
itemInput.stringProps = itemPropMap;
// create info
CreateIn cI = new CreateIn();
cI.clientId = "CreateFolder";
cI.data = itemInput;
// service
DataManagementService service = DataManagementService.getService(session);
// create
CreateResponse resp = service.createObjects(new CreateIn[] { cI });
throwServiceDataError(resp.serviceData);
CreateOut[] cOs = resp.output;
if (cOs.length > 0) {
for (TCComponent s : cOs[0].objects) {
if (s instanceof TCComponentFolder) {
return (TCComponentFolder) s;
}
}
}
return null;
}
public static void throwServiceDataError(ServiceData serviceData) throws Exception {
if (serviceData.sizeOfPartialErrors() > 0) {
StringBuilder errInfo = new StringBuilder();
for (int i = 0; i < serviceData.sizeOfPartialErrors(); i++) {
for (String msg : serviceData.getPartialError(i).getMessages()) {
errInfo.append(msg + "\n");
}
}
// System.out.println(errInfo.toString());
throw new Exception(errInfo.toString());
}
}
}

@ -0,0 +1,72 @@
/** * @Title: test.java
* @Package com.connor.kwc.createBom
* @Description: TODO()
* @author admin * @date 20231219
* @version V1.0
*/
package com.connor.kwc.createBom;
import java.awt.EventQueue;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeNode;
import javax.swing.tree.TreePath;
/**
* @ClassName: test
* @Description:
* @author hcj
* @date 20231219
*
*/
public class test {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame("CheckBoxTreeDemo");
frame.setBounds(200, 200, 400, 400);
JTree tree = new JTree();
CheckBoxTreeNode rootNode = new CheckBoxTreeNode("root");
CheckBoxTreeNode node1 = new CheckBoxTreeNode("node_1");
CheckBoxTreeNode node1_1 = new CheckBoxTreeNode("node_1_1");
CheckBoxTreeNode node1_2 = new CheckBoxTreeNode("node_1_2");
CheckBoxTreeNode node1_3 = new CheckBoxTreeNode("node_1_3");
node1.add(node1_1);
node1.add(node1_2);
node1.add(node1_3);
CheckBoxTreeNode node2 = new CheckBoxTreeNode("node_2");
boolean selected = node2.isSelected();
CheckBoxTreeNode node2_1 = new CheckBoxTreeNode("node_2_1");
CheckBoxTreeNode node2_2 = new CheckBoxTreeNode("node_2_2");
node2.add(node2_1);
node2.add(node2_2);
rootNode.add(node1);
rootNode.add(node2);
DefaultTreeModel model = new DefaultTreeModel(rootNode);
tree.addMouseListener(new CheckBoxTreeNodeSelectionListener());
tree.setModel(model);
tree.setCellRenderer(new CheckBoxTreeCellRenderer());
tree.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
String string = tree.getSelectionPath().toString();
System.out.println(string);
}
});
JScrollPane scroll = new JScrollPane(tree);
scroll.setBounds(0, 0, 300, 320);
frame.getContentPane().add(scroll);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}

@ -0,0 +1,111 @@
package com.connor.kwc.createDWG;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import com.connor.kwc.createBom.Util;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentDataset;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCComponentTcFile;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
/**
*
* @ClassName: CreateDWGHandler
* @Description:
* @author hcj
* @date 20231222
*
*/
public class CreateDWGHandler extends AbstractHandler {
private TCSession session;
private String type;
@Override
public Object execute(ExecutionEvent arg0) throws ExecutionException {
AbstractAIFApplication app = AIFUtility.getCurrentApplication();
try {
new Thread() {
@Override
public void run() {
// 获取tc当前选择的操作
InterfaceAIFComponent target = app.getTargetComponent();
session = (TCSession) target.getSession();
String[] sxx = Util.getSXX(session, "KWC_DWGTemplateItemList");
ArrayList<String> itemTypeList = new ArrayList<>(Arrays.asList(sxx));
if (target instanceof TCComponentItemRevision) {
TCComponentItemRevision revision = (TCComponentItemRevision) target;
try {
if (itemTypeList.contains(revision.getStringProperty("object_type"))) {
String[] uidtemp = Util.getSXX(session, "KWC_DWGTemplateUID");
Map<String, String> templateMap = new HashMap<String, String>();
for (String str : uidtemp) {
String[] split = str.split("=");
templateMap.put(split[0], split[1]);
}
String id = arg0.getCommand().getId();
if (id.endsWith("A0")) {
createdataSetForUID(revision, templateMap, "A0");
} else if (id.endsWith("A1")) {
createdataSetForUID(revision, templateMap, "A1");
} else if (id.endsWith("A2")) {
createdataSetForUID(revision, templateMap, "A2");
} else if (id.endsWith("A3")) {
createdataSetForUID(revision, templateMap, "A3");
} else if (id.endsWith("A4")) {
createdataSetForUID(revision, templateMap, "A4");
}
} else {
MessageBox.post("选择的对象类型不存在于【KWC_DWGTemplateItemList】请重新选择", "提示",
MessageBox.INFORMATION);
return;
}
} catch (TCException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}.start();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public void createdataSetForUID(TCComponentItemRevision revision, Map<String, String> templateMap, String key)
throws TCException {
if (templateMap.containsKey(key)) {
TCComponent dataseTcComponent = session.stringToComponent(templateMap.get(key));
if (dataseTcComponent instanceof TCComponentDataset) {
TCComponentDataset dataset = (TCComponentDataset) dataseTcComponent;
TCComponentDataset saveAs = dataset.saveAs(null);
saveAs.setStringProperty("object_name", revision.getStringProperty("item_id"));
TCComponentTcFile[] tcFiles = saveAs.getTcFiles();
tcFiles[0].setStringProperty("object_name", revision.getStringProperty("item_id") + ".dwg");
revision.add("IMAN_specification", saveAs);
MessageBox.post("创建成功", "提示", MessageBox.INFORMATION);
return;
}
} else {
MessageBox.post("首选项【KWC_DWGTemplateUID】没有匹配的ID值", "提示", MessageBox.INFORMATION);
return;
}
}
}

@ -0,0 +1,276 @@
package com.connor.kwc.createTemplate;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultComboBoxModel;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JTree;
import javax.swing.UIManager;
import javax.swing.WindowConstants;
import javax.swing.tree.DefaultTreeModel;
import com.connor.kwc.createBom.CheckBoxTreeCellRenderer;
import com.connor.kwc.createBom.CheckBoxTreeNode;
import com.connor.kwc.createBom.CheckBoxTreeNodeSelectionListener;
import com.connor.kwc.createBom.Util;
import com.teamcenter.rac.aif.AIFPortal;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentFolder;
import com.teamcenter.rac.kernel.TCComponentFolderType;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
/**
*
* @ClassName: CreateTemplateDialg
* @Description:
* @author hcj
* @date 20231222
*
*/
public class CreateTemplateDialg extends JFrame {
private TCSession session;
private TCComponent target;
private JButton jButton3;
private JLabel jLabel3;
private JPanel jPanel1;
private JPanel jPanel2;
private JPanel jPanel4;
private JScrollPane jScrollPane1;
private JTextField jTextField3;
private JTree jTree1;
private String[] sxxdate;
/**
* Creates new form NewJFrame2
*/
public CreateTemplateDialg(TCSession session, TCComponent folder) {
this.session = session;
this.target = folder;
getData();
try {
initComponents();
} catch (TCException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void getData() {
// TODO Auto-generated method stub
sxxdate = Util.getSXX(session, "KWC_CreateDOCtemplate");
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() throws TCException {
this.setTitle("依据模板创建");
jPanel1 = new JPanel();
jPanel2 = new JPanel();
jLabel3 = new JLabel();
jScrollPane1 = new JScrollPane();
jTree1 = new JTree();
// 初始化Jtree
jTree1.setCellRenderer(new CheckBoxTreeCellRenderer());
jButton3 = new JButton();
jTextField3 = new JTextField();
jTextField3.setText(target.getStringProperty("item_id"));
jPanel4 = new JPanel();
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setBackground(new java.awt.Color(240, 240, 240));
jPanel1.setBackground(new java.awt.Color(240, 240, 240));
jPanel2.setBackground(new java.awt.Color(240, 240, 240));
jLabel3.setText("产品代号:");
jScrollPane1.setViewportView(jTree1);
jButton3.setText("确定");
jTextField3.setText("");
GroupLayout jPanel2Layout = new GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup().addGap(53, 53, 53).addComponent(jLabel3)
.addGap(18, 18, 18)
.addComponent(jTextField3, GroupLayout.PREFERRED_SIZE, 213, GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18).addComponent(jButton3)
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(jPanel2Layout.createSequentialGroup().addContainerGap()
.addComponent(jScrollPane1, GroupLayout.DEFAULT_SIZE, 526, Short.MAX_VALUE).addContainerGap()));
jPanel2Layout
.setVerticalGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup().addGap(13, 13, 13)
.addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(jButton3)
.addComponent(jTextField3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3))
.addGap(18, 18, 18)
.addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 544, GroupLayout.PREFERRED_SIZE)
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
jPanel4.setBackground(new java.awt.Color(255, 255, 255));
GroupLayout jPanel4Layout = new GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(0, 538, Short.MAX_VALUE));
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(0, 0, Short.MAX_VALUE));
GroupLayout jPanel1Layout = new GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup().addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(jPanel2, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jPanel4, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addContainerGap()));
jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup().addContainerGap()
.addComponent(jPanel2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE)
.addGap(73, 73, 73)
.addComponent(jPanel4, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap()));
GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addContainerGap()
.addComponent(jPanel1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap()));
layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup().addContainerGap()
.addComponent(jPanel1, GroupLayout.PREFERRED_SIZE, 619, GroupLayout.PREFERRED_SIZE)
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
pack();
this.jButton3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String name = jTextField3.getText();
if (name.isEmpty()) {
MessageBox.post("产品代号不能为空!", "提示 ", MessageBox.INFORMATION);
} else {
TCComponentFolderType folderType;
try {
Util.setByPass(true);
folderType = (TCComponentFolderType) session.getTypeComponent("LD6_CusProdFolder");
TCComponentFolder folder = Util.createFolderBySOA(folderType.getTypeName(), name);
//TCComponentFolder folder = folderType.create(name, "", "LD6_CusProdFolder");
target.add("contents", folder);
CheckBoxTreeNode root = (CheckBoxTreeNode) jTree1.getModel().getRoot();
createFolderStruct(root,folder,(TCComponentFolderType) session.getTypeComponent("LD6_ProjMaFolder"),true);
Util.setByPass(false);
dispose();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
});
}
/**
*
* @param tree
*/
private void initTree(JTree tree){
String puids = sxxdate[0].split("=")[1];
TCComponent component;
try {
CheckBoxTreeNode rootNode = new CheckBoxTreeNode("模板");
String[] puid = puids.split(";");
for(String uid : puid) {
component = session.stringToComponent(uid);
if(component == null || !(component instanceof TCComponentFolder)) {
MessageBox.post(puid + " 该puid在TC中不存在对象或者该puid对应的不是文件夹对象", "异常", MessageBox.ERROR);
return;
}else {
buildTree(component,rootNode);
}
}
DefaultTreeModel model = new DefaultTreeModel(rootNode);
tree.addMouseListener(new CheckBoxTreeNodeSelectionListener());
tree.setModel(model);
tree.setCellRenderer(new CheckBoxTreeCellRenderer());
//展开所有节点并选中
for (int i = 0; i < tree.getRowCount(); i++) {
tree.expandRow(i);
}
rootNode.setSelected(true);
} catch (TCException e) {
e.printStackTrace();
}
}
/**
*
* @param component
* @param rootNode
* @throws TCException
*/
private void buildTree(TCComponent component, CheckBoxTreeNode rootNode) throws TCException {
TCComponent[] relatedComponent = component.getRelatedComponents("contents");
if(relatedComponent != null) {
for (TCComponent child : relatedComponent) {
CheckBoxTreeNode childNode = new CheckBoxTreeNode(child.getStringProperty("object_name"));
rootNode.add(childNode);
buildTree(child,childNode);
}
}
}
/**
*
* @param root
* @param folder
* @param folderType
* @throws Exception
*/
private void createFolderStruct(CheckBoxTreeNode root, TCComponentFolder parentFolder,
TCComponentFolderType folderType,boolean ifTop) throws Exception {
if(root.isSelected()) {
if(ifTop) {
for (int i = 0; i < root.getChildCount(); i++) {
CheckBoxTreeNode child = (CheckBoxTreeNode) root.getChildAt(i);
createFolderStruct(child,parentFolder,folderType,false);
}
}
else {
TCComponentFolder folder = Util.createFolderBySOA(folderType.getTypeName(), root.toString());
parentFolder.add("contents", folder);
for (int i = 0; i < root.getChildCount(); i++) {
CheckBoxTreeNode child = (CheckBoxTreeNode) root.getChildAt(i);
createFolderStruct(child,folder,folderType,false);
}
}
}
}
}

@ -0,0 +1,61 @@
package com.connor.kwc.createTemplate;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import com.connor.kwc.createBom.CreateBOMOperation;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCComponentFolder;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
/**
*
* @ClassName: CreateTemplateHandler
* @Description:
* @author hcj
* @date 20231222
*
*/
public class CreateTemplateHandler extends AbstractHandler {
private TCSession session;
@Override
public Object execute(ExecutionEvent arg0) throws org.eclipse.core.commands.ExecutionException {
// TODO Auto-generated method stub
AbstractAIFApplication app = AIFUtility.getCurrentApplication();
new Thread() {
@Override
public void run() {
InterfaceAIFComponent folder = app.getTargetComponent();
session = (TCSession) folder.getSession();
if (folder instanceof TCComponentFolder) {
try {
if ("XYProduct".equals(((TCComponentFolder) folder).getStringProperty("object_type"))) {
CreateTemplateOperation createTemplateOperation = new CreateTemplateOperation(session,
folder);
session.queueOperation(createTemplateOperation);
} else {
MessageBox.post("对象类型选择错误", "提示 ", MessageBox.INFORMATION);
return;
}
} catch (TCException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
MessageBox.post("对象类型选择错误", "提示 ", MessageBox.INFORMATION);
return;
}
};
}.start();
return null;
}
}

@ -0,0 +1,36 @@
package com.connor.kwc.createTemplate;
import com.teamcenter.rac.aif.AbstractAIFOperation;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCSession;
/**
*
* @ClassName: CreateTemplateOperation
* @Description:
* @author hcj
* @date 20231222
*
*/
public class CreateTemplateOperation extends AbstractAIFOperation {
private TCSession session;
private TCComponent folder;
public CreateTemplateOperation(TCSession session, InterfaceAIFComponent folder) {
// TODO Auto-generated constructor stub
this.session = session;
this.folder = (TCComponent) folder;
}
@Override
public void executeOperation() throws Exception {
// TODO Auto-generated method stub
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new CreateTemplateDialg(session, folder).setVisible(true);
}
});
}
}
Loading…
Cancel
Save