first commit

main
ChenZichaoczc 2 weeks ago
commit 7b33ad0050

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry exported="true" kind="lib" path="lib/"/>
<classpathentry exported="true" kind="lib" path="lib/itext-2.0.3.jar"/>
<classpathentry exported="true" kind="lib" path="lib/iText-5.0.2.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="output" path="bin"/>
</classpath>

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.connor.signoff</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,7 @@
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.source=1.8

@ -0,0 +1,81 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Signoff
Bundle-SymbolicName: com.connor.signoff;singleton:=true
Bundle-Version: 1.0.0
Bundle-Activator: com.connor.signoff.Activator
Bundle-Vendor: CONNOR
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
com.teamcenter.rac.activity;bundle-version="11000.2.0",
com.teamcenter.rac.aifrcp;bundle-version="11000.2.0",
com.teamcenter.rac.bom;bundle-version="11000.2.0",
com.teamcenter.rac.common;bundle-version="11000.2.0",
com.teamcenter.rac.debug;bundle-version="11000.2.0",
com.teamcenter.rac.external;bundle-version="11000.2.0",
com.teamcenter.rac.project;bundle-version="11000.2.0",
com.teamcenter.rac.tcapps;bundle-version="11000.2.0",
com.teamcenter.rac.util;bundle-version="11000.2.0",
com.teamcenter.rac.kernel;bundle-version="11000.2.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.8,
JavaSE-1.7
Bundle-ActivationPolicy: lazy
Export-Package: com.connor.signoff,
com.itextpdf.text,
com.itextpdf.text.error_messages,
com.itextpdf.text.exceptions,
com.itextpdf.text.factories,
com.itextpdf.text.html,
com.itextpdf.text.html.simpleparser,
com.itextpdf.text.pdf,
com.itextpdf.text.pdf.codec,
com.itextpdf.text.pdf.codec.wmf,
com.itextpdf.text.pdf.collection,
com.itextpdf.text.pdf.crypto,
com.itextpdf.text.pdf.draw,
com.itextpdf.text.pdf.events,
com.itextpdf.text.pdf.fonts,
com.itextpdf.text.pdf.fonts.cmaps,
com.itextpdf.text.pdf.hyphenation,
com.itextpdf.text.pdf.interfaces,
com.itextpdf.text.pdf.internal,
com.itextpdf.text.pdf.parser,
com.itextpdf.text.pdf.qrcode,
com.itextpdf.text.pdf.richmedia,
com.itextpdf.text.xml,
com.itextpdf.text.xml.simpleparser,
com.itextpdf.text.xml.xmp,
com.lowagie.text,
com.lowagie.text.factories,
com.lowagie.text.html,
com.lowagie.text.html.simpleparser,
com.lowagie.text.pdf,
com.lowagie.text.pdf.codec,
com.lowagie.text.pdf.codec.wmf,
com.lowagie.text.pdf.collection,
com.lowagie.text.pdf.crypto,
com.lowagie.text.pdf.events,
com.lowagie.text.pdf.fonts,
com.lowagie.text.pdf.hyphenation,
com.lowagie.text.pdf.interfaces,
com.lowagie.text.pdf.internal,
com.lowagie.text.rtf,
com.lowagie.text.rtf.direct,
com.lowagie.text.rtf.document,
com.lowagie.text.rtf.document.output,
com.lowagie.text.rtf.field,
com.lowagie.text.rtf.graphic,
com.lowagie.text.rtf.headerfooter,
com.lowagie.text.rtf.list,
com.lowagie.text.rtf.style,
com.lowagie.text.rtf.table,
com.lowagie.text.rtf.text,
com.lowagie.text.xml,
com.lowagie.text.xml.simpleparser,
com.lowagie.text.xml.xmp,
com.lowagie.tools,
com.teamcenter.rac.kernel
Bundle-ClassPath: lib/,
lib/itext-2.0.3.jar,
lib/iText-5.0.2.jar,
.

@ -0,0 +1,863 @@
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) radix(10) lradix(10)
package com.teamcenter.rac.kernel;
import com.teamcenter.rac.aif.AIFShell;
import com.teamcenter.rac.aif.kernel.AbstractAIFSession;
import com.teamcenter.rac.aif.kernel.InterfaceAIFSessionLogoutListener;
import com.teamcenter.rac.kernel.tcservices.TcStatefulnessUtil;
import com.teamcenter.rac.util.*;
import java.awt.GraphicsEnvironment;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import org.apache.log4j.Logger;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.jobs.IJobChangeEvent;
import org.eclipse.core.runtime.jobs.JobChangeAdapter;
// Referenced classes of package com.teamcenter.rac.kernel:
// TCComponentDatasetContext, TCComponentDataset, TCSession, TCComponentDatasetDefinition,
// TCComponentType, NamedReferenceContext, AEShellManager, TCReservationService,
// TCException, TCComponent, TCClass, InterfaceDatasetAction,
// PostActionShell, TCPreferenceService, CheckTcAEGMOLicense, AliasOpenAction
public class AEShell extends JobChangeAdapter
{
public AEShell(TCComponentDatasetContext tccomponentdatasetcontext, String s, boolean flag, int i)
{
this(tccomponentdatasetcontext.getDatasetComponent().getSession(), tccomponentdatasetcontext, s, flag, i);
}
public AEShell(TCSession tcsession, TCComponentDatasetContext tccomponentdatasetcontext, String s, boolean flag, int i)
{
m_newFileCreatedTime = -9223372036854775808L;
m_readOnly = false;
m_removeFilesAtComplete = true;
m_session = tcsession;
m_datasetContext = tccomponentdatasetcontext;
m_workingDirName = s;
m_userDefinedDir = flag;
m_selectedAction = i;
setAppShellActiveVerdict(true);
if(m_datasetContext != null)
{
File afile[] = m_datasetContext.getFiles();
if(afile != null)
{
m_lastModifiedDate = new long[afile.length];
for(int j = 0; j < afile.length; j++)
m_lastModifiedDate[j] = afile[j].lastModified();
}
}
}
private boolean isExtensionMatched(String s, String s1)
{
boolean flag = false;
if(s.equalsIgnoreCase("*") || s.equalsIgnoreCase(".*") || s.equalsIgnoreCase("*.*"))
{
flag = true;
} else
{
int i = s.indexOf(".");
String s2 = i < 0 ? s : s.substring(i);
int j = s2.lastIndexOf("*");
if(j > 0)
s2 = s2.substring(0, j);
i = s1.indexOf(".");
if(i > 0)
{
String s3 = s1.substring(i);
if(s3.equalsIgnoreCase(s2))
flag = true;
else
if(j > 0 && s3.toLowerCase().indexOf(s2.toLowerCase()) != -1)
flag = true;
}
}
return flag;
}
private void processNewFiles()
throws Exception
{
String s = m_datasetContext.getDatasetComponent().getType();
if(s.equalsIgnoreCase("ValidationResultLog"))
return;
File file = new File(m_workingDirName);
String as[] = file.list();
int i = as.length;
Registry registry = Registry.getRegistry(com/teamcenter/rac/kernel/AEShell);
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("New File Count = ")).append(Integer.toString(i)).append('\n').append("newFileCreatedTime = ").append(Long.toString(m_newFileCreatedTime)).toString());
if(i == 0)
return;
File file1 = new File(m_selectedFileName);
String s1 = file1.getName();
String s2 = (new StringBuilder(String.valueOf(s1))).append("%").toString();
String s3 = (new StringBuilder(String.valueOf(s1))).append("~").toString();
String s4 = (new StringBuilder("~")).append(s1).toString();
Object obj = null;
for(int j = 0; j < i; j++)
if(s1.equals(as[j]))
{
File file2 = new File(file, as[j]);
long l = file2.lastModified();
if(l == m_newFileCreatedTime || m_newFileCreatedTime == -9223372036854775808L)
{
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("Deleting (new) file: ")).append(file2.toString()).toString());
file2.delete();
}
} else
if(m_selectedMimeType.equals("text/plain") && (as[j].equals(s2) || as[j].equals(s3) || as[j].equals(s4)))
{
File file3 = new File(file, as[j]);
file3.delete();
}
as = file.list();
i = as.length;
if(i == 0)
return;
TCComponentDataset tccomponentdataset = m_datasetContext.getDatasetComponent();
TCComponentDatasetDefinition tccomponentdatasetdefinition = tccomponentdataset.getDatasetDefinitionComponent();
NamedReferenceContext anamedreferencecontext[] = tccomponentdatasetdefinition.getNamedReferenceContexts();
String as1[] = new String[i];
String as2[] = new String[i];
String as3[] = new String[i];
String as4[] = new String[i];
File afile[] = new File[i];
int k = 0;
boolean flag = false;
if(Platform.getOS().equals("win32") && tccomponentdataset.getTypeComponent().toString().equals("XMLAuditLog"))
{
for(int i1 = 0; i1 < i; i1++)
{
File file4 = new File(file, as[i1]);
if(file4.isDirectory())
{
File afile2[] = file4.listFiles();
File afile3[];
int i2 = (afile3 = afile2).length;
for(int l1 = 0; l1 < i2; l1++)
{
File file6 = afile3[l1];
file6.delete();
}
if(!file4.delete())
logger.info((new StringBuilder("Unable to delete file: ")).append(file4.getAbsoluteFile()).toString());
}
}
return;
}
File afile1[] = m_datasetContext.getFiles();
for(int j1 = 0; j1 < i; j1++)
{
boolean flag1 = false;
File file5 = new File(file, as[j1]);
if(as[j1].startsWith("~$") && (s1.substring(2).equals(as[j1].substring(2)) || s1.substring(1).equals(as[j1].substring(2)) || s1.equals(as[j1].substring(2))))
continue;
if(afile1 != null && afile1.length > 0)
{
boolean flag2 = false;
File afile4[];
int j3 = (afile4 = afile1).length;
for(int j2 = 0; j2 < j3; j2++)
{
File file7 = afile4[j2];
if(!file5.equals(file7))
continue;
flag2 = true;
break;
}
if(flag2)
{
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("excluding exported file= ")).append(file5.toString()).toString());
continue;
}
}
String s5 = file5.getName();
if(anamedreferencecontext != null)
{
NamedReferenceContext anamedreferencecontext1[];
int k3 = (anamedreferencecontext1 = anamedreferencecontext).length;
for(int k2 = 0; k2 < k3; k2++)
{
NamedReferenceContext namedreferencecontext = anamedreferencecontext1[k2];
String s9 = namedreferencecontext.getFileTemplate();
int i4 = s9.indexOf(".");
if(i4 > -1)
s9 = s9.substring(i4);
if(!s5.endsWith(s9))
continue;
as1[k] = namedreferencecontext.getNamedReference();
as2[k] = namedreferencecontext.getFileFormat();
as4[k] = file5.getPath();
as3[k] = null;
afile[k] = file5;
k++;
flag1 = true;
break;
}
if(!flag1)
{
NamedReferenceContext anamedreferencecontext2[];
int l3 = (anamedreferencecontext2 = anamedreferencecontext).length;
for(int l2 = 0; l2 < l3; l2++)
{
NamedReferenceContext namedreferencecontext1 = anamedreferencecontext2[l2];
String s10 = namedreferencecontext1.getFileTemplate();
if(!isExtensionMatched(s10, s5))
continue;
as1[k] = namedreferencecontext1.getNamedReference();
as2[k] = namedreferencecontext1.getFileFormat();
as4[k] = file5.getPath();
as3[k] = null;
afile[k] = file5;
k++;
flag1 = true;
break;
}
}
}
if(!flag1)
{
String s6 = null;
int i3 = s5.lastIndexOf(".");
if(i3 > 0)
s6 = s5.substring(i3);
else
s6 = "*";
String s7 = (new StringBuilder(String.valueOf(registry.getString("unableImportFile.MSG1")))).append(" ").append(file5.getPath()).toString();
String s8 = (new StringBuilder(String.valueOf(registry.getString("unableImportFile.MSG2")))).append(" '").append(s6).append("'. ").append(file5.getPath()).append(" ").append(registry.getString("unableImportFile.MSG3")).toString();
if(GraphicsEnvironment.isHeadless())
logger.error((new StringBuilder(String.valueOf(s7))).append(": ").append(s8).toString());
else
MessageBox.post(s7, s8, registry.getString("unableImportFile.TITLE"), 1);
}
}
if(k > 0)
{
m_version0.setFiles(as4, as2, as3, as1);
m_fileSaved = true;
for(int k1 = 0; k1 < k; k1++)
if(!afile[k1].delete())
logger.info((new StringBuilder("File ")).append(afile[k1].getAbsoluteFile()).append(" not deleted.").toString());
}
}
private void removeFiles()
{
if(m_removeFilesAtComplete)
{
File file = new File(m_workingDirName);
if(logger.isDebugEnabled())
logger.debug((new StringBuilder()).append(this).append(".removeFiles(): WorkingDir [").append(file).append("]").toString());
String as[] = file.list();
int i = as != null ? as.length : 0;
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("WorkingDir [")).append(file).append("] contains ").append(i).append(" files").toString());
for(short word0 = 0; word0 < i; word0++)
{
File file1 = new File(file, as[word0]);
try
{
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("Deleting file [")).append(file1).append("] from WorkingDir [").append(file).append("]").toString());
if(!file1.delete())
logger.info((new StringBuilder("Unable to delete file :")).append(file1.getAbsolutePath()).toString());
}
catch(SecurityException _ex)
{
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("Unable to delete file [")).append(file1).append("] from WorkingDir [").append(file).append("], error ignored...").toString());
}
}
if(!m_userDefinedDir && !file.delete())
logger.info((new StringBuilder("Failed to delete directory ")).append(file.getAbsolutePath()).toString());
}
}
public void done(IJobChangeEvent ijobchangeevent)
{
TCComponentDataset tccomponentdataset = m_datasetContext.getDatasetComponent();
boolean flag = false;
try
{
flag = tccomponentdataset.isValidUid();
}
catch(Exception exception)
{
m_session.getAEShellManager().removeShell(this);
if(GraphicsEnvironment.isHeadless())
logger.error(exception.getLocalizedMessage(), exception);
else
MessageBox.post(exception);
return;
}
if(!flag)
{
logger.error("Dataset is no longer a valid object. It might have been purged.");
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("Dataset in AEShell [")).append(this).append("] is no longer a valid object").toString());
return;
}
setAppShellActiveVerdict(false);
Shell shell = (Shell)ijobchangeevent.getJob();
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("exitCode = ")).append(Integer.toString(shell.getExitValue())).toString());
try
{
if(shell.getExitValue() == 9008)
{
if(m_checkedOutState == 1)
try
{
m_session.getReservationService().cancelReservation(tccomponentdataset);
}
catch(TCException _ex) { }
removeFiles();
deleteAliasXMLFile();
m_session.getAEShellManager().removeShell(this);
throw new TCException(Registry.getRegistry(com/teamcenter/rac/kernel/AEShell).getString("toolNotFound"));
}
String s = tccomponentdataset.getType();
Registry registry = Registry.getRegistry(com/teamcenter/rac/kernel/AEShell);
String s1 = null;
TCComponent tccomponent = tccomponentdataset.getDefaultTool();
if(tccomponent != null)
s1 = tccomponent.toString();
String s2 = null;
String s4 = askSelectedTool().toString();
if(s4.equals(s1))
{
String s5 = getApplRegKey(s, m_session);
if(s5 != null)
s2 = (new StringBuilder(String.valueOf(s5))).append(".ACTION_OBJECT").toString();
}
if(s2 == null)
s2 = (new StringBuilder(String.valueOf(s))).append(".ACTION_OBJECT").toString();
String as[] = registry.getStringArray(s2, null, null);
if(as == null)
{
String s3 = (new StringBuilder(String.valueOf(tccomponentdataset.getTCClass().toString()))).append(".ACTION_OBJECT").toString();
as = registry.getStringArray(s3, null, null);
}
if(as != null)
{
boolean flag1 = false;
int i = as.length;
for(int j = 0; j < i; j++)
{
InterfaceDatasetAction interfacedatasetaction = (InterfaceDatasetAction)Instancer.newInstance(as[j]);
if(interfacedatasetaction != null)
{
boolean flag2 = interfacedatasetaction.postProcess(tccomponentdataset, m_workingDirName, shell.getExitValue());
if(!flag2)
j = i;
}
interfacedatasetaction = null;
}
}
TCComponentDatasetDefinition tccomponentdatasetdefinition = tccomponentdataset.getDatasetDefinitionComponent();
TCComponent tccomponent1 = askSelectedTool();
TCComponent tccomponent2 = tccomponentdatasetdefinition.getPostAction(tccomponent1, m_selectedAction);
String s6 = null;
if(tccomponent2 != null)
s6 = tccomponentdatasetdefinition.getToolMimeType(tccomponent2);
if(tccomponent2 != null && s6 != null && s6.length() > 0)
{
String as1[] = tccomponentdatasetdefinition.getPostActionParameters(tccomponent1, m_selectedAction);
String as2[] = tccomponentdataset.buildInputParams(askSelectedFileName(), as1, askSelectedNamedRef(), m_selectedAction);
AIFShell aifshell = new AIFShell("");
if(as2 != null && as2.length > 0)
aifshell.setCommand(as2);
aifshell.setMimeType(s6);
aifshell.addJobChangeListener(new PostActionShell(this));
if(m_selectedAction == 3 || m_selectedAction == 4)
aifshell.setAction("O");
else
if(m_selectedAction == 2 || m_selectedAction == 9)
aifshell.setAction("P");
logger.debug("starting PostActionShell");
aifshell.start();
} else
{
cleanupAESession();
}
}
catch(TCException tcexception)
{
if(m_checkedOutState == 1)
try
{
m_session.getReservationService().cancelReservation(tccomponentdataset);
}
catch(TCException _ex) { }
removeFiles();
deleteAliasXMLFile();
m_session.getAEShellManager().removeShell(this);
MessageBox.post(tcexception);
}
catch(Exception exception1)
{
MessageBox.post(exception1);
}
}
void cleanupAESession()
throws Exception
{
final File exportedFiles[];
TCComponentDataset tccomponentdataset;
ArrayList arraylist;
exportedFiles = m_datasetContext.getFiles();
String as[] = m_datasetContext.getRemoteFileNames();
String as1[] = m_datasetContext.getFileTypes();
String as2[] = m_datasetContext.namedRefrences();
int i = m_datasetContext.performedAction();
m_fileSaved = false;
tccomponentdataset = m_datasetContext.getDatasetComponent();
if(i != 3 && i != 4)
break MISSING_BLOCK_LABEL_1018;
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("actionCode = ")).append(Integer.toString(i)).toString());
tccomponentdataset.setUploadingFlag(true);
arraylist = new ArrayList();
ArrayList arraylist1 = new ArrayList();
ArrayList arraylist2 = new ArrayList();
ArrayList arraylist3 = new ArrayList();
if(exportedFiles == null)
break MISSING_BLOCK_LABEL_849;
for(int k = 0; k < exportedFiles.length; k++)
{
File file = exportedFiles[k];
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("Processing Exported File= ")).append(file.toString()).toString());
if(file.exists())
{
long l = file.lastModified();
if(l != m_lastModifiedDate[k])
{
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("Modified File= ")).append(file.toString()).toString());
arraylist.add(file);
arraylist1.add(as[k]);
arraylist2.add(as1[k]);
arraylist3.add(as2[k]);
}
}
}
if(arraylist.isEmpty())
break MISSING_BLOCK_LABEL_722;
File afile[];
String as4[];
String as5[];
String as6[];
try
{
boolean flag = m_session.getReservationService().isReserved(tccomponentdataset);
if(!flag)
{
Registry registry = Registry.getRegistry(com/teamcenter/rac/kernel/AEShell);
StringBuilder stringbuilder = new StringBuilder();
stringbuilder.append(registry.getString("notReserved.MSG1"));
stringbuilder.append('\n');
stringbuilder.append(m_workingDirName);
if(GraphicsEnvironment.isHeadless())
logger.error(stringbuilder.toString());
else
MessageBox.post(stringbuilder.toString(), registry.getString("notReserved.TITLE"), 1);
tccomponentdataset.setUploadingFlag(false);
m_session.getAEShellManager().removeShell(this);
return;
}
}
catch(TCException tcexception)
{
tccomponentdataset.setUploadingFlag(false);
m_session.getAEShellManager().removeShell(this);
if(m_checkedOutState == 1)
try
{
m_session.getReservationService().cancelReservation(tccomponentdataset);
}
catch(TCException _ex) { }
Registry registry1 = Registry.getRegistry(com/teamcenter/rac/kernel/AEShell);
StringBuilder stringbuilder1 = new StringBuilder();
stringbuilder1.append(registry1.getString("unableUploadFile.MSG1"));
stringbuilder1.append(tcexception.getLocalizedMessage());
stringbuilder1.append('\n');
stringbuilder1.append('\n');
stringbuilder1.append(m_workingDirName);
stringbuilder1.append('\n');
stringbuilder1.append(registry1.getString("unableUploadFile.MSG2"));
if(GraphicsEnvironment.isHeadless())
logger.error(stringbuilder1.toString(), tcexception);
else
MessageBox.post(tcexception.getError(), stringbuilder1, registry1.getString("unableUploadFile.TITLE"), 1);
return;
}
afile = (File[])arraylist.toArray(new File[arraylist.size()]);
as4 = (String[])arraylist1.toArray(new String[arraylist1.size()]);
as5 = (String[])arraylist2.toArray(new String[arraylist2.size()]);
as6 = (String[])arraylist3.toArray(new String[arraylist3.size()]);
tccomponentdataset.validateFiles(tccomponentdataset, afile);
tccomponentdataset.replaceFiles(afile, as4, as5, as6);
m_fileSaved = true;
if(m_removeFilesAtComplete)
{
for(short word0 = 0; word0 < exportedFiles.length; word0++)
{
File file1 = exportedFiles[word0];
boolean flag1 = file1.delete();
if(!flag1)
logger.error((new StringBuilder("Exported File [")).append(file1.toString()).append("] Delete Failed").toString());
else
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("Exported File [")).append(file1.toString()).append("] Removed").toString());
}
}
deleteAliasXMLFile();
if(!tccomponentdataset.isValidUid())
tccomponentdataset = m_version0;
try
{
processNewFiles();
if(tccomponentdataset.isCheckedOut())
{
if(!arraylist.isEmpty())
{
if(m_checkedOutState == 1)
m_session.getReservationService().unreserve(tccomponentdataset);
} else
{
if(!tccomponentdataset.isValidUid())
tccomponentdataset = m_version0;
if(m_checkedOutState == 1 && !m_readOnly)
m_session.getReservationService().cancelReservation(tccomponentdataset);
}
if(m_checkedOutState == 1)
tccomponentdataset.getAllVersions();
}
}
catch(TCException tcexception1)
{
if(GraphicsEnvironment.isHeadless())
logger.error(tcexception1.getLocalizedMessage(), tcexception1);
else
MessageBox.post(tcexception1);
}
catch(IOException ioexception)
{
logger.error(ioexception.getLocalizedMessage(), ioexception);
}
tccomponentdataset.setUploadingFlag(false);
final File workingDir = new File(m_workingDirName);
if(m_removeFilesAtComplete)
{
if(m_checkedOutState == 0 && (m_selectedAction == 2 || m_selectedAction == 9) && exportedFiles != null)
m_session.addSessionLogoutListener(new InterfaceAIFSessionLogoutListener() {
public void sessionLogout(AbstractAIFSession abstractaifsession)
{
for(short word1 = 0; word1 < exportedFiles.length; word1++)
{
File file2 = exportedFiles[word1];
if(!file2.delete())
AEShell.logger.info((new StringBuilder("Unable to delete file: ")).append(file2.getAbsolutePath()).toString());
}
String as7[] = workingDir.list();
if((as7 == null || as7.length == 0) && !workingDir.delete())
AEShell.logger.info((new StringBuilder("Unable to delete directory")).append(workingDir.getAbsolutePath()).toString());
}
final AEShell this$0;
private final File val$exportedFiles[];
private final File val$workingDir;
{
this$0 = AEShell.this;
exportedFiles = afile;
workingDir = file;
super();
}
}
);
String as3[] = workingDir.list();
int j = as3.length;
if(j == 0 && !m_userDefinedDir && !workingDir.delete())
logger.info((new StringBuilder("Unable to delete directory")).append(workingDir.getAbsolutePath()).toString());
deleteAliasXMLFile();
}
m_session.getAEShellManager().removeShell(this);
if(m_fileSaved && m_selectedAction == 4)
try
{
m_selectedDataset.setDefaultTool(m_selectedTool);
}
catch(Exception _ex) { }
tccomponentdataset.resetInIcContext();
return;
}
public void setSelectedFileName(String s)
{
m_selectedFileName = s;
}
void setSelectedNamedRef(String s)
{
m_selectedNamedRef = s;
}
public void setSelectedDataset(TCComponentDataset tccomponentdataset)
{
m_selectedDataset = tccomponentdataset;
}
void setExportedFiles(File afile[])
{
m_exportedFiles = afile;
}
void setSelectedMimeType(String s)
{
m_selectedMimeType = s;
}
public void setSelectedTool(TCComponent tccomponent)
{
m_selectedTool = tccomponent;
}
void setSearchBy(String s)
{
m_searchBy = s;
}
void setRev0DS(TCComponentDataset tccomponentdataset)
{
m_version0 = tccomponentdataset;
}
void setReserveOption(int i)
{
m_checkedOutState = i;
}
void setNewFileCreatedTime(File file)
{
m_newFileCreatedTime = file.lastModified();
}
String askSelectedFileName()
{
return m_selectedFileName;
}
String askSelectedNamedRef()
{
return m_selectedNamedRef;
}
TCComponentDataset askSelectedDataset()
{
return m_selectedDataset;
}
File[] askExportedFiles()
{
return m_exportedFiles;
}
String askSelectedMimeType()
{
return m_selectedMimeType;
}
TCComponent askSelectedTool()
{
return m_selectedTool;
}
String askSearchBy()
{
return m_searchBy;
}
protected void setAppShellActiveVerdict(boolean flag)
{
synchronized(this)
{
if(flag)
{
if(m_statefulnessReg == 0)
m_statefulnessReg = TcStatefulnessUtil.registerState(m_session, "Edit");
} else
if(m_statefulnessReg > 0)
{
TcStatefulnessUtil.unregister(m_session, m_statefulnessReg);
m_statefulnessReg = 0;
}
}
}
private String getApplRegKey(String s, TCSession tcsession)
{
TCPreferenceService tcpreferenceservice = tcsession.getPreferenceService();
String as[] = tcpreferenceservice.getStringValues("TC_encapsulation_application_key");
String as1[] = tcpreferenceservice.getStringValues("CAE_analysis_tools");
if(as != null && as1 != null)
{
String as2[];
int j = (as2 = as).length;
for(int i = 0; i < j; i++)
{
String s1 = as2[i];
if(s1.equals("CAE"))
{
String as3[];
int l = (as3 = as1).length;
for(int k = 0; k < l; k++)
{
String s2 = as3[k];
if(s.equals(s2))
return "CAE";
}
}
}
}
return null;
}
public String toString()
{
StringBuilder stringbuilder = new StringBuilder(super.toString());
if(logger.isDebugEnabled())
try
{
stringbuilder.delete(0, stringbuilder.length());
stringbuilder.append(getClass().getName()).append("\n DatasetContext [").append(m_datasetContext != null ? m_datasetContext.toString() : "").append("]\n");
stringbuilder.append(" userDefinedDir [").append(m_userDefinedDir).append("]\n");
stringbuilder.append(" workingDirName [").append(m_workingDirName).append("]\n");
stringbuilder.append(" selectedAction ").append(TCComponentDataset.getAction(m_selectedAction)).append("\n");
if(m_selectedDataset == null)
stringbuilder.append(" TCComponentDataset [").append(m_selectedDataset).append("]\n");
else
stringbuilder.append(" TCComponentDataset [").append(m_selectedDataset).append("] uid ").append(m_selectedDataset.getUid()).append(", type [").append(m_selectedDataset.getType()).append("]\n");
if(m_version0 == null)
stringbuilder.append(" version0Dataset [").append(m_version0).append("]\n");
else
stringbuilder.append(" version0Dataset [").append(m_version0).append("] uid ").append(m_version0.getUid()).append(", type [").append(m_version0.getType()).append("]\n");
stringbuilder.append(" TCComponentDataset [").append(m_selectedDataset).append("]\n");
stringbuilder.append(" version0Dataset [").append(m_version0).append("]\n");
stringbuilder.append(" Tool [").append(m_selectedTool).append("]\n");
stringbuilder.append(" selectedFileName [").append(m_selectedFileName).append("]\n");
stringbuilder.append(" selectedNamedRef [").append(m_selectedNamedRef).append("]\n");
stringbuilder.append(" selectedMimeType [").append(m_selectedMimeType).append("]\n");
stringbuilder.append(" searchBy [").append(m_searchBy).append("]\n");
int i = m_exportedFiles != null ? m_exportedFiles.length : 0;
stringbuilder.append(i).append(" exported files:\n");
for(int j = 0; j < i; j++)
stringbuilder.append(" [").append(m_exportedFiles[j].toString()).append("]\n");
stringbuilder.append(" checkedOutState ").append(m_checkedOutState).append("]\n");
stringbuilder.append(" fileSaved [").append(m_fileSaved).append("]\n");
stringbuilder.append(" removeFilesAtComplete [").append(m_removeFilesAtComplete).append("]\n");
}
catch(Exception exception)
{
logger.error(exception.getLocalizedMessage(), exception);
}
return stringbuilder.toString();
}
private void deleteAliasXMLFile()
{
try
{
CheckTcAEGMOLicense checktcaegmolicense = new CheckTcAEGMOLicense();
if(checktcaegmolicense.checkGMOLicense())
{
String s = AliasOpenAction.ouputXMLFilePath;
if(s != null)
{
File file = new File(s);
if(file.exists() && !file.delete())
logger.info((new StringBuilder("Unable to delete file: ")).append(file.getAbsolutePath()).toString());
}
}
}
catch(Exception exception)
{
logger.error(exception.getLocalizedMessage(), exception);
}
}
public void setReadOnly(boolean flag)
{
m_readOnly = flag;
}
private static final Logger logger = Logger.getLogger(com/teamcenter/rac/kernel/AEShell);
private static final int AE_tool_not_found = 9008;
private static final String ACTION_OBJECT_SUFFIX = ".ACTION_OBJECT";
private final TCComponentDatasetContext m_datasetContext;
private long m_lastModifiedDate[];
private long m_newFileCreatedTime;
private final boolean m_userDefinedDir;
private final String m_workingDirName;
private final int m_selectedAction;
private TCComponentDataset m_selectedDataset;
private TCComponentDataset m_version0;
private TCComponent m_selectedTool;
private String m_selectedFileName;
private String m_selectedNamedRef;
private String m_selectedMimeType;
private String m_searchBy;
private File m_exportedFiles[];
private int m_checkedOutState;
private boolean m_fileSaved;
private int m_statefulnessReg;
private final TCSession m_session;
private boolean m_readOnly;
private boolean m_removeFilesAtComplete;
}
/*
DECOMPILATION REPORT
Decompiled from: F:\Teamcenter10.1.4Env\portal\plugins\com.teamcenter.rac.kernel_10000.1.0.jar
Total time: 132 ms
Jad reported messages/errors:
Couldn't resolve all exception handlers in method cleanupAESession
Overlapped try statements detected. Not all exception handlers will be resolved in the method setAppShellActiveVerdict
Exit status: 0
Caught exceptions:
*/

@ -0,0 +1,461 @@
# @<COPYRIGHT>@
# ==================================================
# Copyright 2013.
# Siemens Product Lifecycle Management Software Inc.
# All Rights Reserved.
# ==================================================
# @<COPYRIGHT>@
#*==================================================================================================
# File description: This properties file contains all locale specific keys for the kernel package.
# It is the intent that this file is to be localized based upon the Java
# localization resource bundle naming conventions. For further information
# please refer to the Java doc on this subject.
#===================================================================================================
# Strings for registry display
#---------------------------------
inbox=\u4EFB\u52A1\u7BB1
# Task name prefixs
# ---------------------------
#newProcessName=New Process
newTaskNamePrefix=\u65B0\u5EFA
# Strings for Errors
# ----------------------
noVolumeAccess=\u60A8\u5BF9\u4EFB\u4F55\u5377\u90FD\u6CA1\u6709\u5199\u6743\u9650\u3002
noFCC=\u6587\u4EF6\u5BA2\u6237\u7AEF\u7F13\u5B58\u672A\u542F\u7528\u3002\u8BF7\u4E0E\u7CFB\u7EDF\u7BA1\u7406\u5458\u8054\u7CFB\u3002
downloadTransientFileException=\u4E0B\u8F7D\u4E34\u65F6\u6587\u4EF6\u5931\u8D25\uFF1A
uploadTransientFileException=\u4E0A\u4F20\u4E34\u65F6\u6587\u4EF6\u5931\u8D25\uFF1A
getNewFileException=\u83B7\u53D6\u65B0\u6587\u4EF6\u5931\u8D25 -
createTransientDirException=\u4E3A\u4E34\u65F6\u6587\u4EF6\u521B\u5EFA\u5DE5\u4F5C\u76EE\u5F55\u5931\u8D25\uFF1A
fatalCommunicationException=\u4E25\u91CD\u7684\u901A\u4FE1\u5F02\u5E38\u3002
missingFactoryComponentRegistryEntry=\u7F3A\u5C11\u51FA\u5382\u7EC4\u4EF6\u6CE8\u518C\u6761\u76EE\uFF1A
invalidFactoryComponentEntry=\u7EC4\u4EF6\u51FA\u5382\u9879\u65E0\u6548
unknownLOVType=\u610F\u5916\u7684 LOV \u7C7B\u578B
failedToLogin=\u672A\u80FD\u767B\u5F55
shellsRunning=\u65E0\u6CD5\u9000\u51FA\uFF1APortal \u5DF2\u542F\u52A8\u4E86\u4E00\u4E9B\u5E94\u7528\u7A0B\u5E8F\u3002\u8BF7\u5C06\u5176\u5173\u95ED\u518D\u9000\u51FA\u767B\u5F55\u3002
shellsRunning_FilesOpened=\u65E0\u6CD5\u6CE8\u9500\uFF1A\u8FD0\u884C\u8BE5\u95E8\u6237\u7684\u5E94\u7528\u7A0B\u5E8F\u5DF2\u542F\u52A8\uFF0C\u7528\u4E8E\u67E5\u770B\u6216\u7F16\u8F91\u4EE5\u4E0B\u6570\u636E\uFF1A\n{0}\n\u8BF7\u5173\u95ED\u5B83\u4EEC\u5E76\u9000\u51FA\u3002
invalidRelationType=\u5173\u7CFB\u65E0\u6548\u3002\u4E0D\u80FD\u63D2\u5165\u5230\u7236\u5BF9\u8C61\uFF1A
invalidPropertyName=\u5C5E\u6027\u540D\u79F0\u65E0\u6548\uFF1A{0}
invalidPropertyType=\u5C5E\u6027\u7C7B\u578B\u65E0\u6548
propertyIsArray=\u5C5E\u6027\u4E3A\u6570\u7EC4...\u8BF7\u4F7F\u7528 get<Type>ValueArray()\u3002
propertyIsNotArray=\u5C5E\u6027\u4E0D\u662F\u6570\u7EC4...\u8BF7\u4F7F\u7528 get<Type>Value()\u3002
invalidDirectory=\u76EE\u5F55\u65E0\u6548
noFactoriesRegistered=\u6CA1\u6709\u5382\u5BB6\u53EF\u5728 kernel.properties \u4E2D\u6CE8\u518C\uFF01
notImplementedYet=\u5C1A\u672A\u5B9E\u65BD
callNewIDBeforeisNewIDModifiable=\u8BF7\u5728\u8C03\u7528 isNewIDModifiable \u4E4B\u524D\u8C03\u7528 getNewID\uFF01
callNewRevBeforeisNewRevModifiable=\u8BF7\u5728\u8C03\u7528 isNewRevModifiable \u4E4B\u524D\u8C03\u7528 getNewRev\uFF01
bomlineAddError=\u6B64\u5904\u4EC5\u80FD\u7C98\u8D34\u96F6\u7EC4\u4EF6\u3001\u96F6\u7EC4\u4EF6\u7248\u672C\u6216 BOM \u884C\u3002
genericPasteError=\u9009\u5B9A\u5BF9\u8C61\u65E0\u6CD5\u7C98\u8D34\u3002
bomlinePasteMarkupChildError=\u6279\u6CE8\u884C\u65E0\u6CD5\u7C98\u8D34\u3002
bomlinePasteMarkupParentError=\u4E0D\u5F97\u5BF9\u6279\u6CE8\u884C\u8FDB\u884C\u7C98\u8D34\u3002
failedToOpen=\u672A\u80FD\u6253\u5F00\uFF1B\u5BF9\u8C61\u5DF2\u7531\u4EE5\u4E0B\u7528\u6237\u7B7E\u51FA
createDirFailed=\u672A\u80FD\u521B\u5EFA\u5DE5\u4F5C\u76EE\u5F55 \uFF1A
misMatchedFileExtension=\u5BFC\u5165\u6587\u4EF6\u5177\u6709\u672A\u88AB\u9009\u5B9A\u7684 namedReference \u5B9A\u4E49\u7684\u6269\u5C55\u540D
insertNotAllow=\u9009\u5B9A\u5BF9\u8C61\u6CA1\u6709\u5B9A\u4E49\u7C98\u8D34\u5173\u7CFB\u3002\u56E0\u6B64\uFF0C\u5BF9\u7236\u5BF9\u8C61\u7981\u7528\u63D2\u5165/\u7C98\u8D34\uFF1A
checkTCExportDir=\u68C0\u67E5 client_specific.properties \u6587\u4EF6\u4E2D TCExportDir \u53D8\u91CF\u7684\u8DEF\u5F84\u662F\u5426\u6B63\u786E\u8BBE\u7F6E\u3002
bomlineAddTypeError=\u672A\u80FD\u6DFB\u52A0\u7ED3\u6784\u5355\u5143\u3002\u4E00\u4E2A\u7ED3\u6784\u7684\u5355\u5143\u4EC5\u53EF\u4EE5\u88AB\u6DFB\u52A0\u5230\u76F8\u540C\u7684\u7C7B\u578B\u3002
overwriteFileError=\u7B7E\u51FA\u6587\u4EF6\u5931\u8D25\u3002\u6587\u4EF6\u4E0D\u80FD\u5BFC\u51FA\uFF0C\u56E0\u4E3A\u5B83\u5DF2\u5B58\u5728\u4E8E\u4EE5\u4E0B\u4F4D\u7F6E\uFF1A{0}\u3002\u8BF7\u79FB\u52A8\u6B64\u6587\u4EF6\u6216\u5728\u201C\u7B7E\u51FA\u201D\u5BF9\u8BDD\u6846\u4E2D\u9009\u62E9\u201C\u8986\u76D6\u73B0\u6709\u7684\u6587\u4EF6\u201D\u9009\u9879\u3002
noSessionSuspend=\u4F1A\u8BDD\u6302\u8D77\u4E0D\u518D\u53D7\u652F\u6301\u3002\u5C06 usePortalServerTimeouts \u8BBE\u7F6E\u6210 false\u3002
serverTimeout.TITLE=\u670D\u52A1\u5668\u5DF2\u91CD\u65B0\u6307\u6D3E
serverTimeout.TEXT=Teamcenter \u5BA2\u6237\u7AEF\u5931\u53BB\u4E86\u4E0E\u670D\u52A1\u5668\u7684\u8FDE\u63A5\u3002\u6B64\u65F6\u5BA2\u6237\u7AEF\u65E0\u6CD5\n\u4E0E\u65B0\u670D\u52A1\u5668\u91CD\u65B0\u5EFA\u7ACB\u53EF\u9760\u7684\u8FDE\u63A5\u3002\u8BF7\u9000\u51FA\u5E76\u91CD\u65B0\u767B\u5F55\u4EE5\u91CD\u65B0\u5EFA\u7ACB\n\u8FDE\u63A5\u3002\u5982\u679C\u95EE\u9898\u4ECD\u7136\u5B58\u5728\uFF0C\u53C2\u8003 Teamcenter \u670D\u52A1\u5668\u7CFB\u7EDF\u65E5\u5FD7\uFF0C\n\u83B7\u53D6\u6709\u5173\u9020\u6210\u8FDE\u63A5\u4E22\u5931\u7684\u53EF\u80FD\u539F\u56E0\u7684\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\u3002
serverTimeout.TEXT2=\u6309{0}\u4EE5\u9000\u51FA Teamcenter\u3002
serverTimeout.TEXT3=\u6309 {0} \u4EE5\u7EE7\u7EED\u3002
serverTimeout.TEXT4=\u5DF2\u6307\u6D3E\u65B0\u7684 Teamcenter \u670D\u52A1\u5668\u3002
operationFail=\u64CD\u4F5C\u53EF\u80FD\u5DF2\u7ECF\u5931\u8D25\u3002
invalidTypeName=\u7C7B\u578B\u540D\u79F0\u65E0\u6548\u3002
failedWritingDatasetInfo=\u5728 xml \u6587\u4EF6\u4E2D\u5199\u5165\u6570\u636E\u96C6\u4FE1\u606F\u65F6\u5931\u8D25\u3002
bomlinePropertyLoadError=\u68C0\u7D22 BOM \u884C\u7684\u5C5E\u6027\u65F6\u51FA\u9519\u3002
USER_CANNOT_COPY = \u60A8\u6CA1\u6709\u4FEE\u6539\u8BE5\u9879\u76EE\u7684\u6743\u9650\u3002
# Strings for Logon Messages and logon timeout in seconds.
# ----------------------------------------------------------
# This is appended with " " + server_name + "..."
connectingToServer=\u8FDE\u63A5\u5230
# This is appended with " + server_name + ": " + exception_message
errorConnectingToServer=\u8FDE\u63A5\u670D\u52A1\u5668\u65F6\u51FA\u9519\uFF1A
# Strings for licensing errors
integerFeatureKeyUsageError=\u6574\u578B\u7279\u5F81\u7F16\u53F7\u5DF2\u4F5C\u5E9F\u3002\u4F7F\u7528\u9002\u5F53\u7684\u5B57\u7B26\u4E32\u7279\u5F81\u540D\u79F0\u3002
refresh_install_msg=\u6B63\u5728\u540C\u6B65\u80D6\u5BA2\u6237\u7AEF\u5B89\u88C5\u6587\u4EF6\u4E0E Teamcenter \u670D\u52A1\u5668...
refresh_install_title=\u6B63\u5728\u540C\u6B65\u5DF2\u5B89\u88C5\u7684\u6587\u4EF6
#
# Strings for connection errors to servers and server directory.
#
unableToObtainServerRef=\u65E0\u6CD5\u83B7\u5F97\u6307\u5B9A\u670D\u52A1\u5668\u7684\u5F15\u7528
unableToBindServer=\u65E0\u6CD5\u7ED1\u5B9A\u5230\u8FD0\u884C\u7684\u670D\u52A1\u5668\u4E0A
unableToConnectToNamingServer=\u65E0\u6CD5\u8FDE\u63A5\u5230\u670D\u52A1\u5668\u76EE\u5F55
unableToSetContext=\u65E0\u6CD5\u8BBE\u7F6E\u65B0\u76EE\u5F55\u5173\u8054
unableToResolveObject=\u65E0\u6CD5\u5728\u76EE\u5F55\u4E2D\u627E\u5230\u6761\u76EE
unableRetrieveEntries=\u65E0\u6CD5\u68C0\u7D22\u5230\u76EE\u5F55\u6761\u76EE
authFailed=\u7528\u6237\u8BA4\u8BC1\u5931\u8D25\u3002\u8BF7\u91CD\u8BD5\u3002
badUri=\u5BF9\u670D\u52A1\u5668 URL \u6307\u5B9A\u4E86\u65E0\u6548\u7684\uFF08\u6216\u4E0D\u5B58\u5728\u7684\uFF09\u4F4D\u7F6E
serviceInitFailure=\u65E0\u6CD5\u521D\u59CB\u5316 SOAP \u5BA2\u6237\u7AEF\u670D\u52A1
commsFailure=\u9519\u8BEF\uFF1A\u65E0\u6CD5\u8FDB\u884C\u8FDC\u7A0B\u7F51\u7EDC\u8C03\u7528\u3002
# The following is a compund statement, and will be made up as follows:
# logginIntoServer + " " + server_name + " " + logginInForUser + "..."
loggingIntoServer=\u6B63\u5728\u767B\u5F55 Teamcenter \u670D\u52A1\u5668
logginInForUser=\u7528\u6237\uFF1A
# The following is a compund statement, and will be made up as follows:
# succesfulLogin + " " + server_name + " " + logginInForUser + "."
succesfulLogin=\u6210\u529F\u767B\u5F55\u5230 Teamcenter \u670D\u52A1\u5668
# The following is a compund statement, and will be made up as follows:
# unSuccesfulLogin + " " + server_name + " " + logginInForUser + "."
unSuccesfulLogin=\u767B\u5F55 Teamcenter \u670D\u52A1\u5668\u4E0D\u6210\u529F
# If the passed connector object is null
noValidServerConnector=\u670D\u52A1\u5668\u8FDE\u63A5\u5668\u4E0D\u80FD\u4E3A\u7A7A\u3002
# Marshalling exceptions
marshallingParameterCountMismatch=\u7F16\u7EC4\u53C2\u6570\u8BA1\u6570\u4E0D\u5339\u914D\u3002
marshallingParameterTypeMismatch=\u7F16\u7EC4\u53C2\u6570\u7C7B\u578B\u4E0D\u5339\u914D\u3002
marshallingParameterInvalidType=\u7F16\u7EC4\u53C2\u6570\u7C7B\u578B\u65E0\u6548\u3002
exception=\u4E00\u822C TC \u5F02\u5E38
toolNotFound=\u65E0\u6CD5\u6253\u5F00\u6570\u636E\u96C6\uFF1A\u672A\u627E\u5230\u517C\u5BB9\u7684\u5DE5\u5177\u3002
invalidFileOrDirectory=\u6587\u4EF6\u6216\u76EE\u5F55\u65E0\u6548
# Volume Errors
nullVolumeParameter=\u4F20\u9012\u7684\u5377\u4E0D\u80FD\u4E3A\u7A7A
nullAccessorParameter=\u8BBF\u95EE\u8005\u4E0D\u80FD\u4E3A\u7A7A
nullVolumeName=\u5377\u540D\u4E0D\u80FD\u4E3A\u7A7A
nullVolumeNode=\u8282\u70B9\u4E0D\u80FD\u4E3A\u7A7A
invalidFMSEntries=\u5FC5\u987B\u6307\u5B9A FSC ID\u3001\u6587\u4EF6\u5B58\u50A8\u7EC4 ID \u6216\u8D1F\u8F7D\u5E73\u8861\u5668 ID \u4E2D\u7684\u4E00\u4E2A
# Person Errors
nullPersonParameter=\u4F20\u9012\u7684\u4EBA\u5458\u4E0D\u80FD\u4E3A\u7A7A
PersonAndIconMismatch=\u4EBA\u5458\u540D\u4E0E\u56FE\u6807 ID \u6570\u7EC4\u957F\u5EA6\u4E0D\u540C
# Group Errors
nullGroupParameter=\u4F20\u9012\u7684\u7EC4\u4E0D\u80FD\u4E3A\u7A7A
nullGroupNameParameter=\u7EC4\u540D\u79F0\u4E0D\u5F97\u4E3A\u7A7A
GroupAndIconMismatch=\u7EC4\u540D\u79F0\u4E0E\u56FE\u6807 ID \u6570\u7EC4\u957F\u5EA6\u4E0D\u540C
# GroupMember Errors
nullGroupMemberParameter=\u4F20\u9012\u7684\u7EC4\u6210\u5458\u4E0D\u80FD\u4E3A\u7A7A
GroupMemberAndIconMismatch=\u7EC4\u6210\u5458\u540D\u4E0E\u56FE\u6807 ID \u6570\u7EC4\u957F\u5EA6\u4E0D\u540C
# Role Errors
nullRoleParameter=\u4F20\u9012\u7684\u89D2\u8272\u4E0D\u80FD\u4E3A\u7A7A
RoleAndIconMismatch=\u89D2\u8272\u540D\u4E0E\u56FE\u6807 ID \u6570\u7EC4\u957F\u5EA6\u4E0D\u540C
# User Errors
nullUserParameter=\u4F20\u9012\u7684\u7528\u6237\u4E0D\u80FD\u4E3A\u7A7A
nullUserId=\u7528\u6237 ID \u4E0D\u80FD\u4E3A\u7A7A
nullPassword=\u5BC6\u7801\u4E0D\u80FD\u4E3A\u7A7A
nullOSUserName=\u64CD\u4F5C\u7CFB\u7EDF\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A
nullDefaultGroup=\u7528\u6237\u7684\u9ED8\u8BA4\u7EC4\u4E0D\u80FD\u4E3A\u7A7A
UserAndIconMismatch=\u7528\u6237\u540D\u4E0E\u56FE\u6807 ID \u6570\u7EC4\u957F\u5EA6\u4E0D\u540C
# Preference Service errors
nullPreferenceName=\u9996\u9009\u9879\u540D\u79F0\u4E0D\u53EF\u7559\u7A7A\u3002
invalidPreferenceScope=\u9996\u9009\u9879\u503C\u4F4D\u7F6E\u65E0\u6548\u3002
unequalLengthOfArrays=\u53D1\u751F\u5185\u90E8\u9519\u8BEF\u3002\n\u4F20\u5165\u9635\u5217\u7684\u957F\u5EA6\u5E76\u975E\u5B8C\u5168\u76F8\u540C\u3002
invalidTargetIds=\u7528\u6237/\u89D2\u8272/\u7EC4\u7EC4\u4EF6\u4F20\u9012\u5230\u6B64\u65B9\u6CD5\uFF0C\u68C0\u6D4B\u5230\u95EE\u9898\u3002
# Print property header
propertyHeaders.DISPLAYNAME=\u5C5E\u6027\u663E\u793A\u540D\u79F0
propertyHeaders.REALNAME=\u5C5E\u6027\u771F\u5B9E\u540D\u79F0
propertyHeaders.VALUE=\u503C
objectPropety.TITLE=\u5DE5\u4F5C\u533A\u5C5E\u6027
formPropety.TITLE=\u8868\u5355\u5C5E\u6027
# TCServer Connection errors
nullHostParameter=TCServerConnection \u5BF9\u8C61\u7684\u53C2\u6570 serverHost \u4E0D\u80FD\u4E3A\u7A7A
# Compound Property errors
nullValuesNotAllowed=\u5B9A\u4E49\u590D\u5408\u5C5E\u6027\u7684\u4F20\u9012\u7684\u503C\u4E0D\u80FD\u4E3A\u7A7A\u3002
# AIE message strings
# -------------------------
unableToDelete=\u5BFC\u5165\u64CD\u4F5C\u6210\u529F\uFF0C\u4F46\u7531\u4E8E\u51FA\u73B0\u672A\u77E5\u6587\u4EF6\uFF0C\u56E0\u6B64\u65E0\u6CD5\u5220\u9664\u8FDE\u63A5\u5BF9\u8C61
importOperationFailed=\u5BFC\u5165\u64CD\u4F5C\u5931\u8D25
noPrimaryNamedRef=\u65E0\u6CD5\u627E\u5230\u4E3B\u547D\u540D\u5F15\u7528\u6587\u4EF6
operationInProgressImport=\u65E0\u6CD5\u5BFC\u5165\uFF1A\u5728\u6B64\u8FDE\u63A5\u6709\u53E6\u4E00\u9879\u64CD\u4F5C\u5728\u8FDB\u884C
operationInProgressExport=\u65E0\u6CD5\u5BFC\u51FA\uFF1B\u5728\u6B64\u8FDE\u63A5\u6709\u53E6\u4E00\u9879\u64CD\u4F5C\u5728\u8FDB\u884C
badData=\u5728\u8FDE\u63A5\u5BF9\u8C61\u4E2D\u7684\u574F\u6570\u636E
directoryDoesNotExist=\u8FDE\u63A5\u76EE\u5F55\u4E0D\u5B58\u5728
unableToUpdate=\u65E0\u6CD5\u66F4\u65B0\u8FDE\u63A5\u5BF9\u8C61
exportOnlyConnection=\u4E0D\u5F97\u4ECE\u4EC5\u53EF\u5BFC\u51FA\u7684\u8FDE\u63A5\u5BFC\u5165
noExportToFailed=\u4E0D\u5F97\u5BFC\u51FA\u5230\u5931\u8D25\u7684\u8FDE\u63A5
errorImportingFiles=\u5BFC\u5165\u6587\u4EF6\u65F6\u9519\u8BEF
noFilesToExport.TEXT=\u9009\u62E9\u7684\u6570\u636E\u96C6\u672A\u5305\u62EC\u5BFC\u51FA\u6587\u4EF6
nonTrivialXFileDir=\u4E0D\u652F\u6301 Non-trivial xfile \u76EE\u5F55
noParentItemRev=\u4E0D\u652F\u6301\u6CA1\u6709\u7236\u96F6\u7EC4\u4EF6\u7248\u672C\u7684 AutoCAD \u6570\u636E\u96C6
# This is appended with " " + filespec + <another message>
fileToOpen=\u8981\u6253\u5F00\u7684\u6587\u4EF6
# usage: fileToOpen + " " + filespec + " " + notFoundIn...
notFoundInConnection=\u5728\u8FDE\u63A5\u5BF9\u8C61\u4E2D\u672A\u627E\u5230
notFoundInDirectory=\u5728\u8FDE\u63A5\u76EE\u5F55\u4E2D\u672A\u627E\u5230
# usage: <any of these> + connection name
exportingToConnection=\u6B63\u5728\u5BFC\u51FA\u5230\u8FDE\u63A5
importingFromConnection=\u6B63\u5728\u4ECE\u8FDE\u63A5\u5BFC\u5165
analyzingDatasetsForExport=\u6B63\u5728\u5206\u6790\u5BFC\u51FA\u5230\u8FDE\u63A5\u7684\u6570\u636E\u96C6
analyzingDatasetsForImport=\u6B63\u5728\u5206\u6790\u5BFC\u51FA\u76EE\u5F55\u548C Teamcenter \u4EE5\u4ECE\u8FDE\u63A5\u5BFC\u5165
# For component selection
# -----------------------
invalidQuery.MSG=\u6307\u5B9A\u7684\u67E5\u8BE2\u65E0\u6548\uFF1A
# Error message for a dataset which has canceled the checkout
notReserved.TITLE=\u6570\u636E\u96C6\u66FF\u6362/\u4E0A\u4F20...
notReserved.MSG1=\u7531\u4E8E\u7B7E\u51FA\u53D6\u6D88\uFF0C\u6570\u636E\u96C6\u4E0A\u4F20\u5931\u8D25\u3002\u5DF2\u66F4\u65B0\u7684\u6587\u4EF6\u53EF\u5728\u4EE5\u4E0B\u4F4D\u7F6E\u627E\u5230
# Error message for Open dataset - Unable to import file
unableImportFile.TITLE=\u6570\u636E\u96C6\u6253\u5F00/\u6253\u5F00...
unableImportFile.MSG1=\u65E0\u6CD5\u5BFC\u5165\u6587\u4EF6
unableImportFile.MSG2=\u672A\u5B9A\u4E49\u5E26\u6269\u5C55\u540D\u7684\u6587\u4EF6\u7684\u6587\u4EF6\u6A21\u677F
unableImportFile.MSG3=\u88AB\u4FDD\u7559\u5E76\u9700\u8981\u624B\u5DE5\u5220\u9664\u3002
# Error message for Upload dataset - Unable to upload file(s)
unableUploadFile.TITLE=\u6570\u636E\u96C6\u66FF\u6362/\u4E0A\u4F20...
unableUploadFile.MSG1=\u6570\u636E\u96C6\u4E0A\u4F20\u5931\u8D25\u3002\u60A8\u5DF2\u66F4\u65B0\u7684\u6587\u4EF6\u4F4D\u4E8E\uFF1A
unableUploadFile.MSG2=\u8BF7\u4E0E\u7BA1\u7406\u5458\u8054\u7CFB\u3002
# For ME occurrence group lines
#------------------------
errorAddAppearance=\u4E0D\u5F97\u5728\u4E8B\u4F8B\u7EC4\u4E0B\u5C1D\u8BD5\u66F4\u6539\u7ED3\u6784
errorRemoveAppearance=\u4E0D\u5F97\u5728\u4E8B\u4F8B\u7EC4\u4E0B\u5C1D\u8BD5\u66F4\u6539\u7ED3\u6784
errorNoAppearanceToAdd=\u6DFB\u52A0\u5230\u4E8B\u4F8B\u7EC4\u7684\u5BF9\u8C61\u65E0\u6548
# For cfg attachment lines
#------------------------
errorCannotFindLine=\u627E\u4E0D\u5230\u4EE5\u4E0B\u9879\u7684\u9644\u52A0\u884C
# Error message for plmxml File Not created. Used from TCInteropService
plmxmlFileNotCreated.MESSAGE=\u672A\u80FD\u521B\u5EFA plmxml \u6587\u4EF6\u3002
# For deleting root activity
errorDeleteRootActivity=\u4E0D\u80FD\u5220\u9664\u6839\u6D3B\u52A8
# For TcFile errors
# ------------------------
nullTcFileParameter=\u4F20\u9012\u7684\u6587\u4EF6\u4E0D\u80FD\u4E3A\u7A7A
# For privilege Report errors
# ------------------------
nullPrivilegeReportParameter=\u4F20\u9012\u7684\u53C2\u6570\u4E0D\u80FD\u4E3A\u7A7A\uFF01
# Variant rule errors
# ------------------------
variantRule.noOptionForName=\u53D8\u91CF\u89C4\u5219\u4E0D\u5305\u62EC\u9009\u9879
veNotFound=\u5728\u547D\u540D\u7684\u53D8\u91CF\u8868\u8FBE\u5F0F\u4E2D\n\u627E\u4E0D\u5230\u53D8\u91CF\u8868\u8FBE\u5F0F
# RDVService errors
# ------------------------
TCRDVServiceERROR.TITLE=TCRDVService \u9519\u8BEF
sendAdditionalIncompatibleIC.MSG=\u5F53\u524D\u7684 IC \u548C\u4EE5\u524D\u7684\u7528\u4E8E\u53D1\u9001\u539F\u59CB\u6570\u636E\u7684 IC \u4E0D\u517C\u5BB9
# If an interdependent property is not used in a Query Clause,
# We need to add a dummy level to support incremental search.
# ------------------------
missingLevel.LABEL=\u7EA7\u522B
# Assembly Arrangement messages
# ------------------------
deleteDefaultArrangement.TITLE=\u6B63\u5728\u5220\u9664\u9ED8\u8BA4\u7684\u5E03\u7F6E
deleteDefaultArrangement.MSG=\u60A8\u6B63\u5728\u5220\u9664\u6B64\u88C5\u914D\u7684\u9ED8\u8BA4\u5E03\u7F6E\uFF1B\n\u5982\u679C\u6B64\u88C5\u914D\u5DF2\u7528\u4E8E\u53E6\u4E00\u88C5\u914D\u4E2D\uFF0C\n\u5219\u5220\u9664\u8BE5\u9ED8\u8BA4\u5E03\u7F6E\u4F1A\u5BFC\u81F4\u610F\u5916\n\u7684\u53EF\u89C6\u5316\u884C\u4E3A\u3002\u8981\u7EE7\u7EED\u5417\uFF1F
# FMS errors
badFmsHome.TITLE=FMS \u914D\u7F6E\u9519\u8BEF\u3002
badFmsHome.MSG=\u8FD0\u884C FMS \u65F6\u6240\u5FC5\u9700\u7684\u7EC4\u4EF6\u4E0D\u53EF\u7528\u3002FMS_HOME \u53EF\u80FD\u8BBE\u7F6E\u4E0D\u6B63\u786E\u3002
terminalFCCResourceError.TITLE=\u6587\u4EF6\u8BBF\u95EE\u95EE\u9898
terminalFCCResourceError.MSG=FCC \u63A5\u53E3\u672A\u80FD\u521D\u59CB\u5316\u3002
terminalFCCResourceError.DETAIL=\u53EA\u6709\u89E3\u51B3\u4E86\u5173\u952E\u95EE\u9898\u624D\u53EF\u8FDB\u884C\u6587\u4EF6\u8BBF\u95EE\u3002\n\u8FD9\u901A\u5E38\u662F\u7531\u914D\u7F6E\u6216\u5B89\u88C5\u95EE\u9898\u9020\u6210\u7684\u3002\n\u68C0\u67E5 FMS_HOME \u73AF\u5883\u53D8\u91CF\u7684\u503C\u5E76\u786E\u8BA4\u5E73\u53F0\u76F8\u5E94\u7684 FCCJavaClientProxy\n\u5171\u4EAB\u5E93\u662F\u5426\u5B58\u5728\u4E8E lib \u76EE\u5F55\u3002\n\uFF08\u5E93\u547D\u540D\u7EA6\u5B9A\uFF1A[lib]FCCJavaClientProxy[64].[dll|so|sl|dylib]\uFF09\n\u5982\u679C\u95EE\u9898\u4ECD\u65E7\u5B58\u5728\uFF0C\u8BF7\u8054\u7CFB\u60A8\u7684\u7CFB\u7EDF\u7BA1\u7406\u5458\u3002
warningFCCStartFailure.TITLE=\u6587\u4EF6\u8BBF\u95EE\u95EE\u9898
warningFCCStartFailure.MSG=FCC \u672A\u80FD\u542F\u52A8\u3002
warningFCCStartFailure.DETAIL=\u76F4\u5230\u6210\u529F\u542F\u52A8 FCC \u624D\u53EF\u8FDB\u884C\u6587\u4EF6\u8BBF\u95EE\u3002\n\u8FD9\u901A\u5E38\u662F\u7531\u4E8E\u7F51\u7EDC\u670D\u52A1\u5F53\u524D\u4E0D\u53EF\u7528\u6216\u5B58\u5728\u914D\u7F6E\u95EE\u9898\u9020\u6210\u7684\u3002\n\u5C06\u5B9A\u671F\u91CD\u8BD5\u8BE5\u63A5\u53E3\uFF0C\u5982\u679C\u89E3\u51B3\u4E86\u8BE5\u95EE\u9898\uFF0C\u5219\u5C06\u542F\u7528\u6587\u4EF6\u8BBF\u95EE\u3002\n\u5982\u679C\u95EE\u9898\u4ECD\u65E7\u5B58\u5728\uFF0C\u8BF7\u8054\u7CFB\u60A8\u7684\u7CFB\u7EDF\u7BA1\u7406\u5458\u3002
# CAD-Part alignment
invalidSource.TITLE=\u65E0\u6548\u7684\u6E90\u5BF9\u8C61
linkDesignToPart.TITLE=\u5C06\u8BBE\u8BA1/\u56FE\u7EB8\u4E0E\u96F6\u4EF6\u5BF9\u5E94
unlinkDesignFromPart.TITLE=\u53D6\u6D88\u8BBE\u8BA1/\u56FE\u7EB8\u4E0E\u96F6\u4EF6\u7684\u5BF9\u5E94
notCadOrDrawingSource.MSG=\u8BF7\u9009\u62E9 Teamcenter \u6570\u636E\u5E93\u4E2D\u53EF\u8C03\u6574\u7684\u96F6\u7EC4\u4EF6\u7248\u672C\u5B50\u7C7B\u578B\u6216 TCBOM \u6570\u636E\u5E93\u4E2D\u7684\u4F01\u4E1A\u56FE\u7EB8
notPartSource.MSG=\u4EC5\u96F6\u4EF6\u53EF\u4EE5\u4E0E CAD/\u56FE\u7EB8\u5BF9\u5E94
designAlreadyAligned.MSG=\u67D0\u4E9B\u6E90\u96F6\u7EC4\u4EF6\u7248\u672C/BOM \u884C\u5DF2\u4E0E\u9009\u5B9A\u76EE\u6807\u96F6\u4EF6/ACT \u884C\u5BF9\u5E94\u3002\n \u5DF2\u4E3A\u8FD9\u4E9B\u96F6\u7EC4\u4EF6\u8DF3\u8FC7\u64CD\u4F5C\u3002
drawingAlreadyAligned.MSG=\u4E00\u4E9B\u56FE\u7EB8\u5DF2\u7ECF\u4E0E\u9009\u5B9A\u7684\u96F6\u4EF6\u5BF9\u5E94\u3002\n \u5DF2\u8DF3\u8FC7\u9488\u5BF9\u8FD9\u4E9B\u96F6\u7EC4\u4EF6\u7684\u64CD\u4F5C\u3002
partAlreadyAligned.MSG=\u4E00\u4E9B\u6E90\u96F6\u4EF6\u5DF2\u4E0E\u9009\u5B9A\u7684\u76EE\u6807\u5BF9\u5E94\u3002\n \u9488\u5BF9\u8FD9\u4E9B\u96F6\u4EF6\u7684\u64CD\u4F5C\u5C06\u88AB\u8DF3\u8FC7\u3002
unlinkableDesignTypes.MSG=\u9009\u5B9A\u7684\u96F6\u7EC4\u4EF6\u7248\u672C\u7C7B\u578B\u65E0\u6CD5\u4E0E\u96F6\u4EF6\u5BF9\u5E94\u3002\n\u8BF7\u4E0E\u7CFB\u7EDF\u7BA1\u7406\u5458\u786E\u8BA4\u5141\u8BB8\u7684\u96F6\u7EC4\u4EF6\u7C7B\u578B\u3002
noDesignTypes.MSG=\u5B9A\u4E49\u53EF\u4EE5\u4E0E\u96F6\u4EF6\u5BF9\u5E94\u7684\u96F6\u7EC4\u4EF6\u7C7B\u578B\u3002\n\u8BF7\u4E0E\u7CFB\u7EDF\u7BA1\u7406\u5458\u8054\u7CFB\u3002
mixedTypesDisallowed.MSG=\u8BF7\u9009\u62E9\u76F8\u540C\u7C7B\u578B\u7684\u6240\u6709\u6E90\u96F6\u7EC4\u4EF6
removedPrimaryRepresentation.MSG=\u8BE5\u96F6\u4EF6\u7684\u4E3B\u8981\u8868\u793A\u5DF2\u79FB\u9664\u3002
linkDesignToPart.ErrorTitle=\u5BF9\u5E94\u65F6\u51FA\u9519
unlinkDesignToPart.ErrorTitle=\u53D6\u6D88\u5C06\u8BBE\u8BA1/\u56FE\u7EB8\u4E0E\u96F6\u4EF6\u5BF9\u5E94\u65F6\u51FA\u9519
linkDesignToPart.WarningTitle=\u5C06\u8BBE\u8BA1/\u56FE\u7EB8\u4E0E\u96F6\u4EF6\u5BF9\u5E94\u6210\u529F\u4F46\u53D1\u51FA\u8B66\u544A
linkDesignToPart.WarningTitle=\u53D6\u6D88\u5C06\u8BBE\u8BA1/\u56FE\u7EB8\u4E0E\u96F6\u4EF6\u5BF9\u5E94\u6210\u529F\u4F46\u53D1\u51FA\u8B66\u544A
#-------------------------------------
# Entries for GMO License
#-------------------------------------
noGMLicense=\u60A8\u4E0D\u5177\u6709\u6267\u884C\u6B64\u64CD\u4F5C\u7684 GM Overlay \u8BB8\u53EF\u8BC1\u3002
NoGMLicense.TITLE=GM Overlay \u8BB8\u53EF\u8BC1
#-------------------------------------
# Entries for VVI File creation
#-------------------------------------
INTEROP_TAG_PLMXML_BOTH_CANNOT_EXIST=\u5BF9\u8C61\u6807\u8BB0\u4E0E PLMXML \u5747\u4E0D\u5B58\u5728
INTEROP_NULL_INPUTS=PLMXML \u6587\u4EF6\u4E0E\u5BF9\u8C61\u6807\u8BB0\u7684\u7A7A\u8F93\u5165
INTEROP_INVALID_INPUT=\u5DF2\u9009\u62E9\u8981\u542F\u52A8\u7684\u65E0\u6548\u8F93\u5165\u3002
# TcServices
TcServicesMissingPrefs.MSG=\u7CBE\u7B80 XML \u7F3A\u5C11\u9996\u9009\u9879\u503C
# Roll up Messages
#------------------
rollupValidateError.TITLE=\u7D2F\u79EF\u9A8C\u8BC1\u51FA\u9519
rollupValidateTemplateExistsError.MSG=\u5B58\u5728\u672A\u547D\u540D\u7684\u7D2F\u79EF\u6A21\u677F\u3002
rollupValidateInvalidDelimiterError.MSG=\u7D2F\u79EF\u6A21\u677F\u7684\u5206\u9694\u7B26\u65E0\u6548\u3002
rollupValidateCalcEmptyFieldsError.MSG=\u7D2F\u79EF\u6A21\u677F\u5728\u8BA1\u7B97\u7A7A\u5B57\u6BB5\u3002
delimiter_other=\u5176\u4ED6
# Keys for About Dialog
prevHostName=\u4E3B\u673A\u540D\uFF1A
prevLogFile=\u65E5\u5FD7\u6587\u4EF6\uFF1A
prevJournalFile=\u64CD\u4F5C\u8BB0\u5F55\u6587\u4EF6\uFF1A
# SOA Services
ErrorWithSOACall.ERROR=\u8C03\u7528 SOA \u670D\u52A1\u65F6\u8FD4\u56DE\u9519\u8BEF
ErrorWithSOACall.TITLE=SOA \u670D\u52A1\u5931\u8D25
ErrorFromSOACall.TITLE=\u9519\u8BEF
SoaExceptionHandler.TITLE=\u670D\u52A1\u5668\u901A\u4FE1
SoaExceptionHandler_ERROR1.TEXT=\u670D\u52A1\u5668\u8FD4\u56DE\u4E00\u4E2A\u5185\u90E8\u670D\u52A1\u5668\u9519\u8BEF\u3002
SoaExceptionHandler_ERROR2.TEXT=\u60A8\u5E0C\u671B\u91CD\u8BD5\u4E0A\u4E00\u4E2A\u670D\u52A1\u8BF7\u6C42\u5417\uFF1F
# Messages for preAction of opening Validation Result Dataset
noPerferenceValue=\u9996\u9009\u9879 TC_VALIDATION_STYLESHEET_DATASETNAME \u672A\u8BBE\u7F6E\u3002
noPerferenceValue.TITLE=\u627E\u4E0D\u5230\u9996\u9009\u9879
invalidPreferenceValue=\u9996\u9009\u9879 TC_VALIDATION_STYLESHEET_DATASETNAME \u65E0\u6548\u3002
invalidPreferenceValue.TITLE=\u9996\u9009\u9879\u503C\u65E0\u6548
noXSLFile=\u4E0E\u9996\u9009\u9879 TC_VALIDATION_STYLESHEET_DATASETNAME \u5339\u914D\u7684 XSL \u6587\u4EF6\u627E\u4E0D\u5230\u3002
noXSLFile.TITLE=\u65E0 XSL \u6587\u4EF6
queryXSLFile=\u5BF9\u6570\u636E\u96C6\u4F7F\u7528\u5DF2\u4FDD\u5B58\u7684\u67E5\u8BE2\u5931\u8D25\u3002
queryXSLFile.TITLE=\u67E5\u8BE2 XSL \u6570\u636E\u96C6\u5931\u8D25
#rev rule string
effectivity=\u6709\u6548\u6027\uFF1A
notSpecified=\u4ECA\u5929
effectivityWithEndItem=\u5177\u6709\u9876\u5C42\u96F6\u7EC4\u4EF6\u7684\u6709\u6548\u6027\uFF1A
dateString=\u65E5\u671F\uFF08{0}\uFF09
#POR 008045 - multi-lingual TextServer
#Definition of the warning panel title, and additional text to guide the end-user
SERVER_LOGIN_WARNING_CODE.TITLE=\u8BED\u8A00\u9000\u5316
SERVER_LOGIN_WARNING_CODE.TEXT=\u65E0\u6CD5\u4E0E\u8BF7\u6C42\u7684\u8BED\u8A00\u73AF\u5883\u76F8\u8FDE\u63A5\u3002\n\n\u7531\u4E8E\u5C06\u4F7F\u7528 Teamcenter \u670D\u52A1\u5668\u7684\u9ED8\u8BA4\u8BED\u8A00\uFF0C\u56E0\u6B64\u5E94\u7528\u7A0B\u5E8F\u663E\u793A\u65F6\u5C06\u5939\u6742\u4E24\u79CD\u8BED\u8A00\u3002
#SERVER_LOGIN_ERROR_CODE.TITLE=Language restriction
SERVER_LOGIN_ERROR_CODE.TEXT=\u8BED\u8A00\u9650\u5236\n\n\u5BF9\u8BED\u8A00 {0} \u7684\u8FDE\u63A5\u88AB\u62D2\u7EDD\u3002\n\n\u5173\u95ED\u8BE5\u5E94\u7528\u7A0B\u5E8F\uFF0C\u5E76\u4FEE\u6539\u542F\u52A8\u811A\u672C\u4F7F\u7528\u7684\u8BED\u8A00\u503C\u3002\n\nTeamcenter \u670D\u52A1\u5668\u6D88\u606F\uFF1A\n\t{1}
# extension type string
EXT.extpointType.PRECONDITION=precondition
EXT.extpointType.PREACTION=preaction
EXT.extpointType.POSTACTION=postaction
EXT.extpointType.BASEACTION=baseaction
EXT.extpointType.UNKNOWN=\u672A\u77E5
user.services.marshal.error=\u5904\u7406 TcUserService \u7684 XML \u65F6\u53D1\u751F\u7F16\u7EC4\u9519\u8BEF
################################################################
# Start Validation Evaluation message description
################################################################
#Up to date; result pass or not required
ValidaitonRunPassStatusDesc=\u8BC4\u4F30\u901A\u8FC7
VALIDATION_RUN_STATUS_DESC_upToDate=\u7ED3\u679C\u5DF2\u5931\u8D25
VALIDATION_RUN_STATUS_DESC_outOfDatePartChanged=\u7531\u4E8E\u66F4\u6539\u4E86\u96F6\u4EF6\uFF0C\u5BFC\u81F4\u7ED3\u679C\u8FC7\u671F
VALIDATION_RUN_STATUS_DESC_outOfDateRequirementChanged=\u7531\u4E8E\u66F4\u6539\u4E86\u9700\u6C42\uFF0C\u5BFC\u81F4\u7ED3\u679C\u8FC7\u671F
VALIDATION_RUN_STATUS_DESC_verifyParameterFailed=\u53C2\u6570\u9A8C\u8BC1\u5931\u8D25
VALIDATION_RUN_STATUS_DESC_missingReportLog=\u7F3A\u5C11\u7ED3\u679C\u65E5\u5FD7\u6587\u4EF6
VALIDATION_RUN_STATUS_DESC_notRun=\u672A\u627E\u5230\u7ED3\u679C
VALIDATION_RUN_STATUS_DESC_notRequired=\u8BC4\u4F30\u901A\u8FC7
VALIDATIONRunClient=\u6BCF\u4E2A\u4EE3\u7406\u7248\u672C\u81EA\u8EAB\u90FD\u5FC5\u987B\u63D0\u4F9B runValidationOnClient \u65B9\u6CD5\u7684\u5B9E\u65BD
VALIDATIONRun=\u6BCF\u4E2A\u4EE3\u7406\u7248\u672C\u81EA\u8EAB\u90FD\u5FC5\u987B\u63D0\u4F9B runValidationOn \u65B9\u6CD5\u7684\u5B9E\u65BD
VALIDATIONInvalidProperty=\u5C5E\u6027\u5BF9\u9A8C\u8BC1\u4EE3\u7406\u7248\u672C\u7C7B\u578B\u65E0\u6548
################################################################
# End Validation Evaluation message description
################################################################
#MSExcelX validation strings
INVALID_SHEET=Excel \u6A21\u677F\u65E0\u6548\u3002\u8BF7\u53C2\u89C1\u7528\u6237\u6307\u5357\u4EE5\u83B7\u53D6\u6709\u5173\u6A21\u677F\u4E2D\u6807\u8BB0\u7528\u6CD5\u7684\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\u3002
DUPLICATE_TAG_FOUND=\u68C0\u67E5\u6240\u7528\u7684\u6A21\u677F\u662F\u5426\u5305\u542B\u91CD\u590D\u7684\u6807\u8BB0\u3002\u6570\u636E\u5DE5\u4F5C\u8868\u9700\u8981\u5305\u542B\u5F00\u59CB\u3001\u7ED3\u675F\u53CA\u89C4\u5219\u6807\u8BB0\u3002\u8BF4\u660E\u5DE5\u4F5C\u8868\u9700\u8981\u5305\u542B\u5FFD\u7565\u6807\u8BB0\u3002\u8BF7\u53C2\u89C1\u7528\u6237\u6307\u5357\u4EE5\u83B7\u53D6\u6709\u5173\u6A21\u677F\u4E2D\u6807\u8BB0\u7528\u6CD5\u7684\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\u3002
MISSING_TAG=\u68C0\u67E5\u6240\u7528\u7684\u6A21\u677F\u662F\u5426\u5305\u542B\u9002\u5F53\u7684\u6807\u8BB0\u3002\u6570\u636E\u5DE5\u4F5C\u8868\u9700\u8981\u5305\u542B\u5F00\u59CB\u3001\u7ED3\u675F\u53CA\u89C4\u5219\u6807\u8BB0\u3002\u8BF4\u660E\u5DE5\u4F5C\u8868\u9700\u8981\u5305\u542B\u5FFD\u7565\u6807\u8BB0\u3002\u8BF7\u53C2\u89C1\u7528\u6237\u6307\u5357\u4EE5\u83B7\u53D6\u6709\u5173\u6A21\u677F\u4E2D\u6807\u8BB0\u7528\u6CD5\u7684\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\u3002
ORDER_INVALID={0} \u5DE5\u4F5C\u8868\uFF08\u5C5E\u4E8E Excel \u6A21\u677F {1}\uFF09\u7684\u89C4\u5219\u8868\u5217\u7684\u987A\u5E8F\u65E0\u6548\u3002\u8BF7\u68C0\u67E5\u987A\u5E8F\u662F\u5426\u4E3A\u201C\u7EA7\u522B-\u5173\u7CFB-\u7C7B\u578B-\u4F20\u9012\u6A21\u5F0F\u201D\u3002\u8BF7\u53C2\u89C1\u7528\u6237\u6307\u5357\u4EE5\u83B7\u53D6\u6709\u5173\u6A21\u677F\u4E2D\u5217\u7528\u6CD5\u7684\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\u3002
INSUFFICIENT_PRIVILEDGE=\u6CA1\u6709\u8DB3\u591F\u7684\u7279\u6743\u6765\u7F16\u8F91\u6216\u66F4\u65B0\u6A21\u677F\u3002
COLUMNS_NOT_FOUND=\u68C0\u67E5 {0} \u5DE5\u4F5C\u8868\uFF08\u5C5E\u4E8E Excel \u6A21\u677F {1}\uFF09\u4E2D\u662F\u5426\u7F3A\u5C11\u201C\u7EA7\u522B-\u5173\u7CFB-\u7C7B\u578B-\u4F20\u9012\u6A21\u5F0F\u201D\u4E2D\u7684\u4E00\u4E2A\u6216\u591A\u4E2A\u5217\u3002\u8BF7\u53C2\u89C1\u7528\u6237\u6307\u5357\u4EE5\u83B7\u53D6\u6709\u5173\u6A21\u677F\u4E2D\u5217\u7528\u6CD5\u7684\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\u3002
RULETABLE_NOT_FOUND={0} \u5DE5\u4F5C\u8868\uFF08\u5C5E\u4E8E Excel \u6A21\u677F {1}\uFF09\u4E2D\u627E\u4E0D\u5230\u89C4\u5219\u8868\u3002\u8BF7\u53C2\u89C1\u7528\u6237\u6307\u5357\u4EE5\u83B7\u53D6\u6709\u5173\u6A21\u677F\u4E2D\u89C4\u5219\u8868\u7684\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\u3002
################################################################
# Language_Tbl validation
################################################################
DUPLICATE_LANGUAGE_FOUND=\u8868\u4E2D\u5DF2\u5B58\u5728\u8BED\u8A00 {0}\u3002
#################################################################
# License Usage Warning Messages
#################################################################
graceDaysWarning=\u672C\u6708\u7528\u91CF\u5DF2\u8D85\u51FA\u4E34\u65F6\u7528\u6237\u8BB8\u53EF\u8BC1\u6240\u5141\u8BB8\u7684\u4F7F\u7528\u9650\u5236\u3002\n\u5728\u989D\u5916\u4F7F\u7528 {0} \u4E2A\u552F\u4E00\u65E5\u5386\u65E5\u6216 {1} \u5C0F\u65F6\u540E\uFF0C\u672C\u6708\u767B\u5F55 Teamcenter \u5C06\u88AB\u7981\u7528\u3002
usedDaysWarning=\u5728\u8FBE\u5230\u4E34\u65F6\u7528\u6237\u7684\u4F7F\u7528\u9650\u5236\u4E4B\u524D\uFF0C\u672C\u6708\u5269\u4F59 {0} \u4E2A\u552F\u4E00\u65E5\u5386\u65E5\u6216 {1} \u5C0F\u65F6\u7684\u7528\u91CF\u3002
#################################################################
# Import File name length validation
#################################################################
FILE_NAME_LENGTH_EXCEEDED=\u6587\u4EF6\u540D {0} \u7684\u957F\u5EA6\u5DF2\u8D85\u51FA\u5141\u8BB8\u7684\u9650\u5EA6\u3002\u5141\u8BB8\u7684\u6700\u5927\u957F\u5EA6\u4E3A {1} \u5B57\u7B26\uFF08\u5305\u62EC\u6587\u4EF6\u6269\u5C55\u540D\uFF09\u3002
#################################################################
# TCPreferenceService - Display value for enumerations
#################################################################
#1. Preference types
STRING_TYPE=\u5B57\u7B26\u4E32\u578B
INTEGER_TYPE=\u6574\u578B
LOGICAL_TYPE=\u903B\u8F91\u578B
DOUBLE_TYPE=\u53CC\u7CBE\u5EA6\u578B
DATE_TYPE=\u65E5\u671F\u578B
#2. Preference locations
USER_LOCATION=\u7528\u6237
ROLE_LOCATION=\u89D2\u8272
GROUP_LOCATION=\u7EC4
OVERLAY_LOCATION=\u53E0\u52A0
COTS_LOCATION=\u73B0\u6210\u7684
ENV_VARIABLE_LOCATION=\u73AF\u5883\u53D8\u91CF
#TODO - 013926 - remove this resource for phase III
SITE_LOCATION=\u7AD9\u70B9
#3. Preference protection scopes
USER_PROTECTION_SCOPE=\u7528\u6237
ROLE_PROTECTION_SCOPE=\u89D2\u8272
GROUP_PROTECTION_SCOPE=\u7EC4
SITE_PROTECTION_SCOPE=\u7AD9\u70B9
SYSTEM_PROTECTION_SCOPE=\u7CFB\u7EDF
#4. For the tooltip in Edit/Options - Definition and Details panel
userLocation.TEXT=\u7528\u6237\uFF1A{0}
userLocation.Id_error.TEXT=\u65E0\u7528\u6237 ID
roleLocation.TEXT=\u89D2\u8272\uFF1A{0}
groupLocation.TEXT=\u7EC4\uFF1A{0}
siteLocation.TEXT=\u7AD9\u70B9
environment.TEXT=\u73AF\u5883\u53D8\u91CF
ttt=\u65E0\u6CD5\u5BFC\u5165\u6587\u4EF6

File diff suppressed because it is too large Load Diff

@ -0,0 +1,50 @@
package com.teamcenter.rac.kernel;
import java.util.ArrayList;
import java.util.List;
import com.teamcenter.rac.util.Registry;
// Referenced classes of package com.teamcenter.rac.kernel:
// InterfaceTCSessionClose, AEShell
public class AEShellManager implements InterfaceTCSessionClose {
public AEShellManager() {
}
public void addShell(AEShell aeshell) {
AEShells.add(aeshell);
}
public void removeShell(AEShell aeshell) {
AEShells.remove(aeshell);
}
public AEShell[] getShells() {
return (AEShell[]) AEShells.toArray(new AEShell[AEShells.size()]);
}
public int size() {
return AEShells.size();
}
public void sessionClose() throws Exception {
if (!AEShells.isEmpty())
throw new Exception(Registry.getRegistry(this).getString(
"shellsRunning"));
else
return;
}
private final List AEShells = new ArrayList();
}
/*
* DECOMPILATION REPORT
*
* Decompiled from:
* F:\Teamcenter10.1.4Env\portal\plugins\com.teamcenter.rac.kernel_10000.1.0.jar
* Total time: 97 ms Jad reported messages/errors: Exit status: 0 Caught
* exceptions:
*/

@ -0,0 +1,300 @@
package com.teamcenter.rac.kernel;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Vector;
/**
* 此类继承系统InterfaceDatasetAction类用于重写preProcess方法在打开 数据集 时前操作。
*
* @author yangh
* @version 1.0, 2015-01-6
*/
public class OpenDatasetSignoff implements InterfaceDatasetAction {
@Override
public boolean postProcess(TCComponentDataset arg0, String arg1, int arg2) {
// TODO Auto-generated method stub
return false;
}
@SuppressWarnings("deprecation")
@Override
public int preProcess(TCComponentDataset tccomponentdataset, AEShell arg1,
int arg2) {
// System.out.println(arg1.askSelectedFileName());
// TODO Auto-generated method stub
TCPreferenceService tcp = tccomponentdataset.getSession()
.getPreferenceService();
// type+"_signoff" type+"_signoff"+"_attr"
// IMAN_master_form_rev:FormType
// Rev.item_id=域名
// Form.object_name=域名
try {
StringBuffer itemMsgSb = new StringBuffer();
TCComponentItemRevision tempRev = (TCComponentItemRevision) tccomponentdataset
.getReferenceProperty("item_revision");// 获得当前数据集所在版本对象
if (tempRev == null) {
return 0;
}
tempRev.refresh();
if (tempRev != null) {
if (tccomponentdataset.getType().equals("TM2_AutoCAD")
|| tccomponentdataset.getType().equals("JF3_DWG")) {
openCad();
String tempType = tempRev.getType();
this.getClass().getProtectionDomain().getCodeSource()
.getLocation().getPath();
String itemID = "";
if (tempType.equals("TM2_TedrawingRevision")) {
TCComponent[] comps = tempRev
.getReferenceListProperty("IMAN_master_form_rev");
if (comps.length > 0)
itemID = comps[0].getStringProperty("tm2_tuhao");
} else {
itemID = tempRev.getStringProperty("item_id");
}
itemMsgSb
.append(itemID)
.append("|")
.append(tempRev
.getStringProperty("item_revision_id"));
// tempRev.getStringProperty("item_revision_id");
String fileName = System.getenv("TEMP")
+ "\\open_cad_info.txt";
try {
BufferedWriter wr = new BufferedWriter(new FileWriter(
fileName));
wr.write(itemMsgSb.toString());
wr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("版本类型:" + tempRev.getType());
String str1 = tcp.getString(
TCPreferenceService.TC_preference_site,
tempRev.getType() + "_signoff");
String[] str2 = tcp.getStringArray(
TCPreferenceService.TC_preference_site,
tempRev.getType() + "_signoff_attr");
if (str1 != null && str1.indexOf(":") > 0 && str2 != null
&& str2.length > 0) {// 含有获取Form的属性情况
String rel = str1.split(":")[0];
String formType = str1.split(":")[1];
System.out.println("关系名称:" + rel);
TCComponent[] subComponent = tempRev
.getRelatedComponents(rel);
for (int i = 0; i < subComponent.length; i++) {
subComponent[i].refresh();
System.out.println("遍历的Form类型"
+ subComponent[i].getType() + " ReadForm ="
+ formType);
if (subComponent[i] instanceof TCComponentForm
&& subComponent[i].getType().equals(formType)) {
System.out.println("ReadForm");
DatasetParser dp = new DatasetParser(tempRev,
(TCComponentForm) subComponent[i]);
Vector<String> txtFileContent = dp
.parsePreference(str2);
String txtFilePath = System.getenv("TEMP")
+ "\\signoff.txt";// 为了VB程序操作的方便将生成的txt文档的路径和名字写死了。
TxtFileRWHelper helper = new TxtFileRWHelper(
txtFilePath);
try {
helper.writeTxtFile(txtFileContent);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
} else {
System.out.println("NOT FORM");
}
}
} else if (str2 != null && str2.length > 0) {// 只获取版本属性情况
DatasetParser dp = new DatasetParser(tempRev);
Vector<String> txtFileContent = dp.parsePreference(str2);
String txtFilePath = System.getenv("TEMP")
+ "\\signoff.txt";// 为了VB程序操作的方便将生成的txt文档的路径和名字写死了。
TxtFileRWHelper helper = new TxtFileRWHelper(txtFilePath);
try {
System.out.println("txtFileContent============"
+ txtFileContent);
helper.writeTxtFile(txtFileContent);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
} catch (TCException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
public void openCad() {
String path = this.getClass().getProtectionDomain().getCodeSource()
.getLocation().getPath();
String exePath = path.substring(1, path.indexOf("com.connor.signoff"))
.replace("/", "\\");
exePath = exePath + "";
File file = new File(exePath);
if (file != null && file.exists()) {
System.out.println("执行注册表修改");
Runtime rn = Runtime.getRuntime();
Process p = null;
try {
p = rn.exec("\"" + exePath + "\"");
} catch (Exception e) {
System.out.println("Error exec!");
}
} else {
System.out.println("不存在" + exePath + "文件");
}
}
/*
* 解析数据集
*/
class DatasetParser {
private TCComponentItemRevision rev;
private TCComponentForm form;
public DatasetParser(TCComponentItemRevision rev, TCComponentForm form) {
this.rev = rev;
this.form = form;
}
public DatasetParser(TCComponentItemRevision rev) {
this.rev = rev;
}
// 根据首选项值获得对应对象的内容并返回需要写入txt文档中的内容
public Vector<String> parsePreference(String[] preferenceValues)
throws TCException {
Vector<String> realm_attr = new Vector<String>();// “域名=属性值”的集合
for (int i = 0; i < preferenceValues.length; i++) {
String[] obj_attrs = preferenceValues[i].split("=");
if (obj_attrs.length == 2) {
int index = obj_attrs[0].indexOf('.');
if (index != -1) {
String obj = obj_attrs[0].substring(0, index);
String att = obj_attrs[0].substring(index + 1);
StringBuffer sb = new StringBuffer(obj_attrs[1]);// 域名
sb.append("="); // =
if ("Rev".equals(obj)) { // 属性值
String value = "";
String proValue = rev.getProperty(att);
if (proValue != null)
value = proValue;
sb.append(value);
} else if ("Form".equals(obj)) {
String value = "";
String proValue = form.getProperty(att);
if (proValue != null)
value = proValue;
sb.append(value);
}
realm_attr.add(sb.toString());
} else {
return null;
}
} else {
return null;
}
}
return realm_attr;
}
}
/*
* 读写Text文档
*/
class TxtFileRWHelper {
private File txtFile = null;
private BufferedReader br = null;
private BufferedWriter bw = null;
public TxtFileRWHelper(String txtFilePath) {
this.txtFile = new File(txtFilePath);
if (!this.txtFile.exists()) {
try {
this.txtFile.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
// 读 Text文件
// 返回值Text文件内容Vector每个成员相当于一行数据
public Vector<String> readTxtFile() throws IOException {
Vector<String> txtFileContent = new Vector<String>();
br = new BufferedReader(new FileReader(txtFile));
if (!txtFile.canRead()) {
txtFile.setReadable(true);
}
String line = br.readLine();
while (line != null) {
txtFileContent.add(line);
line = br.readLine();
}
br.close();
br = null;
return txtFileContent;
}
// 写text文件
// 入参Vector<String>Vector中的每个成员作为一行数据处理
public void writeTxtFile(Vector<String> txtFileContent)
throws IOException {
bw = new BufferedWriter(new FileWriter(txtFile));
if (!txtFile.canWrite()) {
txtFile.setWritable(true);
}
for (int i = 0; i < txtFileContent.size(); i++) {
bw.write(txtFileContent.get(i));
if (i != txtFileContent.size() - 1) {
bw.write("|");
}
}
bw.close();
bw = null;
}
// 删除text 文件
public void deleteTxtFile() {
if (txtFile.exists()) {
txtFile.delete();
}
}
}
}

@ -0,0 +1,18 @@
#A4
A4=210,297,159.9,202.9
#A3
A3=297,420,280,287
#A2
A2=420,594,454,410
#A1
A1=594,841,701,584
#A0
A0=841,1189,1039,821
#A01
A5=841,1682,1532,821
#A02
A6=841,2378,2228,821
#A03
A7=841,3567,3417,821
#A04
A8=841,4756,4606,821

File diff suppressed because it is too large Load Diff

@ -0,0 +1,8 @@
MSWord.ACTION_OBJECT=com.teamcenter.rac.kernel.OpenDatasetSignoff
MSWordX.ACTION_OBJECT=com.teamcenter.rac.kernel.OpenDatasetSignoff
MSExcel.ACTION_OBJECT=com.teamcenter.rac.kernel.OpenDatasetSignoff
MSExcelX.ACTION_OBJECT=com.teamcenter.rac.kernel.OpenDatasetSignoff

@ -0,0 +1,8 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
plugin.xml,\
lib/,\
lib/itext-2.0.3.jar,\
lib/iText-5.0.2.jar

Binary file not shown.

Binary file not shown.

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
</plugin>

@ -0,0 +1,863 @@
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) radix(10) lradix(10)
package com.teamcenter.rac.kernel;
import com.teamcenter.rac.aif.AIFShell;
import com.teamcenter.rac.aif.kernel.AbstractAIFSession;
import com.teamcenter.rac.aif.kernel.InterfaceAIFSessionLogoutListener;
import com.teamcenter.rac.kernel.tcservices.TcStatefulnessUtil;
import com.teamcenter.rac.util.*;
import java.awt.GraphicsEnvironment;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import org.apache.log4j.Logger;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.jobs.IJobChangeEvent;
import org.eclipse.core.runtime.jobs.JobChangeAdapter;
// Referenced classes of package com.teamcenter.rac.kernel:
// TCComponentDatasetContext, TCComponentDataset, TCSession, TCComponentDatasetDefinition,
// TCComponentType, NamedReferenceContext, AEShellManager, TCReservationService,
// TCException, TCComponent, TCClass, InterfaceDatasetAction,
// PostActionShell, TCPreferenceService, CheckTcAEGMOLicense, AliasOpenAction
public class AEShell extends JobChangeAdapter
{
public AEShell(TCComponentDatasetContext tccomponentdatasetcontext, String s, boolean flag, int i)
{
this(tccomponentdatasetcontext.getDatasetComponent().getSession(), tccomponentdatasetcontext, s, flag, i);
}
public AEShell(TCSession tcsession, TCComponentDatasetContext tccomponentdatasetcontext, String s, boolean flag, int i)
{
m_newFileCreatedTime = -9223372036854775808L;
m_readOnly = false;
m_removeFilesAtComplete = true;
m_session = tcsession;
m_datasetContext = tccomponentdatasetcontext;
m_workingDirName = s;
m_userDefinedDir = flag;
m_selectedAction = i;
setAppShellActiveVerdict(true);
if(m_datasetContext != null)
{
File afile[] = m_datasetContext.getFiles();
if(afile != null)
{
m_lastModifiedDate = new long[afile.length];
for(int j = 0; j < afile.length; j++)
m_lastModifiedDate[j] = afile[j].lastModified();
}
}
}
private boolean isExtensionMatched(String s, String s1)
{
boolean flag = false;
if(s.equalsIgnoreCase("*") || s.equalsIgnoreCase(".*") || s.equalsIgnoreCase("*.*"))
{
flag = true;
} else
{
int i = s.indexOf(".");
String s2 = i < 0 ? s : s.substring(i);
int j = s2.lastIndexOf("*");
if(j > 0)
s2 = s2.substring(0, j);
i = s1.indexOf(".");
if(i > 0)
{
String s3 = s1.substring(i);
if(s3.equalsIgnoreCase(s2))
flag = true;
else
if(j > 0 && s3.toLowerCase().indexOf(s2.toLowerCase()) != -1)
flag = true;
}
}
return flag;
}
private void processNewFiles()
throws Exception
{
String s = m_datasetContext.getDatasetComponent().getType();
if(s.equalsIgnoreCase("ValidationResultLog"))
return;
File file = new File(m_workingDirName);
String as[] = file.list();
int i = as.length;
Registry registry = Registry.getRegistry(com/teamcenter/rac/kernel/AEShell);
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("New File Count = ")).append(Integer.toString(i)).append('\n').append("newFileCreatedTime = ").append(Long.toString(m_newFileCreatedTime)).toString());
if(i == 0)
return;
File file1 = new File(m_selectedFileName);
String s1 = file1.getName();
String s2 = (new StringBuilder(String.valueOf(s1))).append("%").toString();
String s3 = (new StringBuilder(String.valueOf(s1))).append("~").toString();
String s4 = (new StringBuilder("~")).append(s1).toString();
Object obj = null;
for(int j = 0; j < i; j++)
if(s1.equals(as[j]))
{
File file2 = new File(file, as[j]);
long l = file2.lastModified();
if(l == m_newFileCreatedTime || m_newFileCreatedTime == -9223372036854775808L)
{
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("Deleting (new) file: ")).append(file2.toString()).toString());
file2.delete();
}
} else
if(m_selectedMimeType.equals("text/plain") && (as[j].equals(s2) || as[j].equals(s3) || as[j].equals(s4)))
{
File file3 = new File(file, as[j]);
file3.delete();
}
as = file.list();
i = as.length;
if(i == 0)
return;
TCComponentDataset tccomponentdataset = m_datasetContext.getDatasetComponent();
TCComponentDatasetDefinition tccomponentdatasetdefinition = tccomponentdataset.getDatasetDefinitionComponent();
NamedReferenceContext anamedreferencecontext[] = tccomponentdatasetdefinition.getNamedReferenceContexts();
String as1[] = new String[i];
String as2[] = new String[i];
String as3[] = new String[i];
String as4[] = new String[i];
File afile[] = new File[i];
int k = 0;
boolean flag = false;
if(Platform.getOS().equals("win32") && tccomponentdataset.getTypeComponent().toString().equals("XMLAuditLog"))
{
for(int i1 = 0; i1 < i; i1++)
{
File file4 = new File(file, as[i1]);
if(file4.isDirectory())
{
File afile2[] = file4.listFiles();
File afile3[];
int i2 = (afile3 = afile2).length;
for(int l1 = 0; l1 < i2; l1++)
{
File file6 = afile3[l1];
file6.delete();
}
if(!file4.delete())
logger.info((new StringBuilder("Unable to delete file: ")).append(file4.getAbsoluteFile()).toString());
}
}
return;
}
File afile1[] = m_datasetContext.getFiles();
for(int j1 = 0; j1 < i; j1++)
{
boolean flag1 = false;
File file5 = new File(file, as[j1]);
if(as[j1].startsWith("~$") && (s1.substring(2).equals(as[j1].substring(2)) || s1.substring(1).equals(as[j1].substring(2)) || s1.equals(as[j1].substring(2))))
continue;
if(afile1 != null && afile1.length > 0)
{
boolean flag2 = false;
File afile4[];
int j3 = (afile4 = afile1).length;
for(int j2 = 0; j2 < j3; j2++)
{
File file7 = afile4[j2];
if(!file5.equals(file7))
continue;
flag2 = true;
break;
}
if(flag2)
{
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("excluding exported file= ")).append(file5.toString()).toString());
continue;
}
}
String s5 = file5.getName();
if(anamedreferencecontext != null)
{
NamedReferenceContext anamedreferencecontext1[];
int k3 = (anamedreferencecontext1 = anamedreferencecontext).length;
for(int k2 = 0; k2 < k3; k2++)
{
NamedReferenceContext namedreferencecontext = anamedreferencecontext1[k2];
String s9 = namedreferencecontext.getFileTemplate();
int i4 = s9.indexOf(".");
if(i4 > -1)
s9 = s9.substring(i4);
if(!s5.endsWith(s9))
continue;
as1[k] = namedreferencecontext.getNamedReference();
as2[k] = namedreferencecontext.getFileFormat();
as4[k] = file5.getPath();
as3[k] = null;
afile[k] = file5;
k++;
flag1 = true;
break;
}
if(!flag1)
{
NamedReferenceContext anamedreferencecontext2[];
int l3 = (anamedreferencecontext2 = anamedreferencecontext).length;
for(int l2 = 0; l2 < l3; l2++)
{
NamedReferenceContext namedreferencecontext1 = anamedreferencecontext2[l2];
String s10 = namedreferencecontext1.getFileTemplate();
if(!isExtensionMatched(s10, s5))
continue;
as1[k] = namedreferencecontext1.getNamedReference();
as2[k] = namedreferencecontext1.getFileFormat();
as4[k] = file5.getPath();
as3[k] = null;
afile[k] = file5;
k++;
flag1 = true;
break;
}
}
}
if(!flag1)
{
String s6 = null;
int i3 = s5.lastIndexOf(".");
if(i3 > 0)
s6 = s5.substring(i3);
else
s6 = "*";
String s7 = (new StringBuilder(String.valueOf(registry.getString("unableImportFile.MSG1")))).append(" ").append(file5.getPath()).toString();
String s8 = (new StringBuilder(String.valueOf(registry.getString("unableImportFile.MSG2")))).append(" '").append(s6).append("'. ").append(file5.getPath()).append(" ").append(registry.getString("unableImportFile.MSG3")).toString();
if(GraphicsEnvironment.isHeadless())
logger.error((new StringBuilder(String.valueOf(s7))).append(": ").append(s8).toString());
else
MessageBox.post(s7, s8, registry.getString("unableImportFile.TITLE"), 1);
}
}
if(k > 0)
{
m_version0.setFiles(as4, as2, as3, as1);
m_fileSaved = true;
for(int k1 = 0; k1 < k; k1++)
if(!afile[k1].delete())
logger.info((new StringBuilder("File ")).append(afile[k1].getAbsoluteFile()).append(" not deleted.").toString());
}
}
private void removeFiles()
{
if(m_removeFilesAtComplete)
{
File file = new File(m_workingDirName);
if(logger.isDebugEnabled())
logger.debug((new StringBuilder()).append(this).append(".removeFiles(): WorkingDir [").append(file).append("]").toString());
String as[] = file.list();
int i = as != null ? as.length : 0;
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("WorkingDir [")).append(file).append("] contains ").append(i).append(" files").toString());
for(short word0 = 0; word0 < i; word0++)
{
File file1 = new File(file, as[word0]);
try
{
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("Deleting file [")).append(file1).append("] from WorkingDir [").append(file).append("]").toString());
if(!file1.delete())
logger.info((new StringBuilder("Unable to delete file :")).append(file1.getAbsolutePath()).toString());
}
catch(SecurityException _ex)
{
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("Unable to delete file [")).append(file1).append("] from WorkingDir [").append(file).append("], error ignored...").toString());
}
}
if(!m_userDefinedDir && !file.delete())
logger.info((new StringBuilder("Failed to delete directory ")).append(file.getAbsolutePath()).toString());
}
}
public void done(IJobChangeEvent ijobchangeevent)
{
TCComponentDataset tccomponentdataset = m_datasetContext.getDatasetComponent();
boolean flag = false;
try
{
flag = tccomponentdataset.isValidUid();
}
catch(Exception exception)
{
m_session.getAEShellManager().removeShell(this);
if(GraphicsEnvironment.isHeadless())
logger.error(exception.getLocalizedMessage(), exception);
else
MessageBox.post(exception);
return;
}
if(!flag)
{
logger.error("Dataset is no longer a valid object. It might have been purged.");
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("Dataset in AEShell [")).append(this).append("] is no longer a valid object").toString());
return;
}
setAppShellActiveVerdict(false);
Shell shell = (Shell)ijobchangeevent.getJob();
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("exitCode = ")).append(Integer.toString(shell.getExitValue())).toString());
try
{
if(shell.getExitValue() == 9008)
{
if(m_checkedOutState == 1)
try
{
m_session.getReservationService().cancelReservation(tccomponentdataset);
}
catch(TCException _ex) { }
removeFiles();
deleteAliasXMLFile();
m_session.getAEShellManager().removeShell(this);
throw new TCException(Registry.getRegistry(com/teamcenter/rac/kernel/AEShell).getString("toolNotFound"));
}
String s = tccomponentdataset.getType();
Registry registry = Registry.getRegistry(com/teamcenter/rac/kernel/AEShell);
String s1 = null;
TCComponent tccomponent = tccomponentdataset.getDefaultTool();
if(tccomponent != null)
s1 = tccomponent.toString();
String s2 = null;
String s4 = askSelectedTool().toString();
if(s4.equals(s1))
{
String s5 = getApplRegKey(s, m_session);
if(s5 != null)
s2 = (new StringBuilder(String.valueOf(s5))).append(".ACTION_OBJECT").toString();
}
if(s2 == null)
s2 = (new StringBuilder(String.valueOf(s))).append(".ACTION_OBJECT").toString();
String as[] = registry.getStringArray(s2, null, null);
if(as == null)
{
String s3 = (new StringBuilder(String.valueOf(tccomponentdataset.getTCClass().toString()))).append(".ACTION_OBJECT").toString();
as = registry.getStringArray(s3, null, null);
}
if(as != null)
{
boolean flag1 = false;
int i = as.length;
for(int j = 0; j < i; j++)
{
InterfaceDatasetAction interfacedatasetaction = (InterfaceDatasetAction)Instancer.newInstance(as[j]);
if(interfacedatasetaction != null)
{
boolean flag2 = interfacedatasetaction.postProcess(tccomponentdataset, m_workingDirName, shell.getExitValue());
if(!flag2)
j = i;
}
interfacedatasetaction = null;
}
}
TCComponentDatasetDefinition tccomponentdatasetdefinition = tccomponentdataset.getDatasetDefinitionComponent();
TCComponent tccomponent1 = askSelectedTool();
TCComponent tccomponent2 = tccomponentdatasetdefinition.getPostAction(tccomponent1, m_selectedAction);
String s6 = null;
if(tccomponent2 != null)
s6 = tccomponentdatasetdefinition.getToolMimeType(tccomponent2);
if(tccomponent2 != null && s6 != null && s6.length() > 0)
{
String as1[] = tccomponentdatasetdefinition.getPostActionParameters(tccomponent1, m_selectedAction);
String as2[] = tccomponentdataset.buildInputParams(askSelectedFileName(), as1, askSelectedNamedRef(), m_selectedAction);
AIFShell aifshell = new AIFShell("");
if(as2 != null && as2.length > 0)
aifshell.setCommand(as2);
aifshell.setMimeType(s6);
aifshell.addJobChangeListener(new PostActionShell(this));
if(m_selectedAction == 3 || m_selectedAction == 4)
aifshell.setAction("O");
else
if(m_selectedAction == 2 || m_selectedAction == 9)
aifshell.setAction("P");
logger.debug("starting PostActionShell");
aifshell.start();
} else
{
cleanupAESession();
}
}
catch(TCException tcexception)
{
if(m_checkedOutState == 1)
try
{
m_session.getReservationService().cancelReservation(tccomponentdataset);
}
catch(TCException _ex) { }
removeFiles();
deleteAliasXMLFile();
m_session.getAEShellManager().removeShell(this);
MessageBox.post(tcexception);
}
catch(Exception exception1)
{
MessageBox.post(exception1);
}
}
void cleanupAESession()
throws Exception
{
final File exportedFiles[];
TCComponentDataset tccomponentdataset;
ArrayList arraylist;
exportedFiles = m_datasetContext.getFiles();
String as[] = m_datasetContext.getRemoteFileNames();
String as1[] = m_datasetContext.getFileTypes();
String as2[] = m_datasetContext.namedRefrences();
int i = m_datasetContext.performedAction();
m_fileSaved = false;
tccomponentdataset = m_datasetContext.getDatasetComponent();
if(i != 3 && i != 4)
break MISSING_BLOCK_LABEL_1018;
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("actionCode = ")).append(Integer.toString(i)).toString());
tccomponentdataset.setUploadingFlag(true);
arraylist = new ArrayList();
ArrayList arraylist1 = new ArrayList();
ArrayList arraylist2 = new ArrayList();
ArrayList arraylist3 = new ArrayList();
if(exportedFiles == null)
break MISSING_BLOCK_LABEL_849;
for(int k = 0; k < exportedFiles.length; k++)
{
File file = exportedFiles[k];
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("Processing Exported File= ")).append(file.toString()).toString());
if(file.exists())
{
long l = file.lastModified();
if(l != m_lastModifiedDate[k])
{
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("Modified File= ")).append(file.toString()).toString());
arraylist.add(file);
arraylist1.add(as[k]);
arraylist2.add(as1[k]);
arraylist3.add(as2[k]);
}
}
}
if(arraylist.isEmpty())
break MISSING_BLOCK_LABEL_722;
File afile[];
String as4[];
String as5[];
String as6[];
try
{
boolean flag = m_session.getReservationService().isReserved(tccomponentdataset);
if(!flag)
{
Registry registry = Registry.getRegistry(com/teamcenter/rac/kernel/AEShell);
StringBuilder stringbuilder = new StringBuilder();
stringbuilder.append(registry.getString("notReserved.MSG1"));
stringbuilder.append('\n');
stringbuilder.append(m_workingDirName);
if(GraphicsEnvironment.isHeadless())
logger.error(stringbuilder.toString());
else
MessageBox.post(stringbuilder.toString(), registry.getString("notReserved.TITLE"), 1);
tccomponentdataset.setUploadingFlag(false);
m_session.getAEShellManager().removeShell(this);
return;
}
}
catch(TCException tcexception)
{
tccomponentdataset.setUploadingFlag(false);
m_session.getAEShellManager().removeShell(this);
if(m_checkedOutState == 1)
try
{
m_session.getReservationService().cancelReservation(tccomponentdataset);
}
catch(TCException _ex) { }
Registry registry1 = Registry.getRegistry(com/teamcenter/rac/kernel/AEShell);
StringBuilder stringbuilder1 = new StringBuilder();
stringbuilder1.append(registry1.getString("unableUploadFile.MSG1"));
stringbuilder1.append(tcexception.getLocalizedMessage());
stringbuilder1.append('\n');
stringbuilder1.append('\n');
stringbuilder1.append(m_workingDirName);
stringbuilder1.append('\n');
stringbuilder1.append(registry1.getString("unableUploadFile.MSG2"));
if(GraphicsEnvironment.isHeadless())
logger.error(stringbuilder1.toString(), tcexception);
else
MessageBox.post(tcexception.getError(), stringbuilder1, registry1.getString("unableUploadFile.TITLE"), 1);
return;
}
afile = (File[])arraylist.toArray(new File[arraylist.size()]);
as4 = (String[])arraylist1.toArray(new String[arraylist1.size()]);
as5 = (String[])arraylist2.toArray(new String[arraylist2.size()]);
as6 = (String[])arraylist3.toArray(new String[arraylist3.size()]);
tccomponentdataset.validateFiles(tccomponentdataset, afile);
tccomponentdataset.replaceFiles(afile, as4, as5, as6);
m_fileSaved = true;
if(m_removeFilesAtComplete)
{
for(short word0 = 0; word0 < exportedFiles.length; word0++)
{
File file1 = exportedFiles[word0];
boolean flag1 = file1.delete();
if(!flag1)
logger.error((new StringBuilder("Exported File [")).append(file1.toString()).append("] Delete Failed").toString());
else
if(logger.isDebugEnabled())
logger.debug((new StringBuilder("Exported File [")).append(file1.toString()).append("] Removed").toString());
}
}
deleteAliasXMLFile();
if(!tccomponentdataset.isValidUid())
tccomponentdataset = m_version0;
try
{
processNewFiles();
if(tccomponentdataset.isCheckedOut())
{
if(!arraylist.isEmpty())
{
if(m_checkedOutState == 1)
m_session.getReservationService().unreserve(tccomponentdataset);
} else
{
if(!tccomponentdataset.isValidUid())
tccomponentdataset = m_version0;
if(m_checkedOutState == 1 && !m_readOnly)
m_session.getReservationService().cancelReservation(tccomponentdataset);
}
if(m_checkedOutState == 1)
tccomponentdataset.getAllVersions();
}
}
catch(TCException tcexception1)
{
if(GraphicsEnvironment.isHeadless())
logger.error(tcexception1.getLocalizedMessage(), tcexception1);
else
MessageBox.post(tcexception1);
}
catch(IOException ioexception)
{
logger.error(ioexception.getLocalizedMessage(), ioexception);
}
tccomponentdataset.setUploadingFlag(false);
final File workingDir = new File(m_workingDirName);
if(m_removeFilesAtComplete)
{
if(m_checkedOutState == 0 && (m_selectedAction == 2 || m_selectedAction == 9) && exportedFiles != null)
m_session.addSessionLogoutListener(new InterfaceAIFSessionLogoutListener() {
public void sessionLogout(AbstractAIFSession abstractaifsession)
{
for(short word1 = 0; word1 < exportedFiles.length; word1++)
{
File file2 = exportedFiles[word1];
if(!file2.delete())
AEShell.logger.info((new StringBuilder("Unable to delete file: ")).append(file2.getAbsolutePath()).toString());
}
String as7[] = workingDir.list();
if((as7 == null || as7.length == 0) && !workingDir.delete())
AEShell.logger.info((new StringBuilder("Unable to delete directory")).append(workingDir.getAbsolutePath()).toString());
}
final AEShell this$0;
private final File val$exportedFiles[];
private final File val$workingDir;
{
this$0 = AEShell.this;
exportedFiles = afile;
workingDir = file;
super();
}
}
);
String as3[] = workingDir.list();
int j = as3.length;
if(j == 0 && !m_userDefinedDir && !workingDir.delete())
logger.info((new StringBuilder("Unable to delete directory")).append(workingDir.getAbsolutePath()).toString());
deleteAliasXMLFile();
}
m_session.getAEShellManager().removeShell(this);
if(m_fileSaved && m_selectedAction == 4)
try
{
m_selectedDataset.setDefaultTool(m_selectedTool);
}
catch(Exception _ex) { }
tccomponentdataset.resetInIcContext();
return;
}
public void setSelectedFileName(String s)
{
m_selectedFileName = s;
}
void setSelectedNamedRef(String s)
{
m_selectedNamedRef = s;
}
public void setSelectedDataset(TCComponentDataset tccomponentdataset)
{
m_selectedDataset = tccomponentdataset;
}
void setExportedFiles(File afile[])
{
m_exportedFiles = afile;
}
void setSelectedMimeType(String s)
{
m_selectedMimeType = s;
}
public void setSelectedTool(TCComponent tccomponent)
{
m_selectedTool = tccomponent;
}
void setSearchBy(String s)
{
m_searchBy = s;
}
void setRev0DS(TCComponentDataset tccomponentdataset)
{
m_version0 = tccomponentdataset;
}
void setReserveOption(int i)
{
m_checkedOutState = i;
}
void setNewFileCreatedTime(File file)
{
m_newFileCreatedTime = file.lastModified();
}
String askSelectedFileName()
{
return m_selectedFileName;
}
String askSelectedNamedRef()
{
return m_selectedNamedRef;
}
TCComponentDataset askSelectedDataset()
{
return m_selectedDataset;
}
File[] askExportedFiles()
{
return m_exportedFiles;
}
String askSelectedMimeType()
{
return m_selectedMimeType;
}
TCComponent askSelectedTool()
{
return m_selectedTool;
}
String askSearchBy()
{
return m_searchBy;
}
protected void setAppShellActiveVerdict(boolean flag)
{
synchronized(this)
{
if(flag)
{
if(m_statefulnessReg == 0)
m_statefulnessReg = TcStatefulnessUtil.registerState(m_session, "Edit");
} else
if(m_statefulnessReg > 0)
{
TcStatefulnessUtil.unregister(m_session, m_statefulnessReg);
m_statefulnessReg = 0;
}
}
}
private String getApplRegKey(String s, TCSession tcsession)
{
TCPreferenceService tcpreferenceservice = tcsession.getPreferenceService();
String as[] = tcpreferenceservice.getStringValues("TC_encapsulation_application_key");
String as1[] = tcpreferenceservice.getStringValues("CAE_analysis_tools");
if(as != null && as1 != null)
{
String as2[];
int j = (as2 = as).length;
for(int i = 0; i < j; i++)
{
String s1 = as2[i];
if(s1.equals("CAE"))
{
String as3[];
int l = (as3 = as1).length;
for(int k = 0; k < l; k++)
{
String s2 = as3[k];
if(s.equals(s2))
return "CAE";
}
}
}
}
return null;
}
public String toString()
{
StringBuilder stringbuilder = new StringBuilder(super.toString());
if(logger.isDebugEnabled())
try
{
stringbuilder.delete(0, stringbuilder.length());
stringbuilder.append(getClass().getName()).append("\n DatasetContext [").append(m_datasetContext != null ? m_datasetContext.toString() : "").append("]\n");
stringbuilder.append(" userDefinedDir [").append(m_userDefinedDir).append("]\n");
stringbuilder.append(" workingDirName [").append(m_workingDirName).append("]\n");
stringbuilder.append(" selectedAction ").append(TCComponentDataset.getAction(m_selectedAction)).append("\n");
if(m_selectedDataset == null)
stringbuilder.append(" TCComponentDataset [").append(m_selectedDataset).append("]\n");
else
stringbuilder.append(" TCComponentDataset [").append(m_selectedDataset).append("] uid ").append(m_selectedDataset.getUid()).append(", type [").append(m_selectedDataset.getType()).append("]\n");
if(m_version0 == null)
stringbuilder.append(" version0Dataset [").append(m_version0).append("]\n");
else
stringbuilder.append(" version0Dataset [").append(m_version0).append("] uid ").append(m_version0.getUid()).append(", type [").append(m_version0.getType()).append("]\n");
stringbuilder.append(" TCComponentDataset [").append(m_selectedDataset).append("]\n");
stringbuilder.append(" version0Dataset [").append(m_version0).append("]\n");
stringbuilder.append(" Tool [").append(m_selectedTool).append("]\n");
stringbuilder.append(" selectedFileName [").append(m_selectedFileName).append("]\n");
stringbuilder.append(" selectedNamedRef [").append(m_selectedNamedRef).append("]\n");
stringbuilder.append(" selectedMimeType [").append(m_selectedMimeType).append("]\n");
stringbuilder.append(" searchBy [").append(m_searchBy).append("]\n");
int i = m_exportedFiles != null ? m_exportedFiles.length : 0;
stringbuilder.append(i).append(" exported files:\n");
for(int j = 0; j < i; j++)
stringbuilder.append(" [").append(m_exportedFiles[j].toString()).append("]\n");
stringbuilder.append(" checkedOutState ").append(m_checkedOutState).append("]\n");
stringbuilder.append(" fileSaved [").append(m_fileSaved).append("]\n");
stringbuilder.append(" removeFilesAtComplete [").append(m_removeFilesAtComplete).append("]\n");
}
catch(Exception exception)
{
logger.error(exception.getLocalizedMessage(), exception);
}
return stringbuilder.toString();
}
private void deleteAliasXMLFile()
{
try
{
CheckTcAEGMOLicense checktcaegmolicense = new CheckTcAEGMOLicense();
if(checktcaegmolicense.checkGMOLicense())
{
String s = AliasOpenAction.ouputXMLFilePath;
if(s != null)
{
File file = new File(s);
if(file.exists() && !file.delete())
logger.info((new StringBuilder("Unable to delete file: ")).append(file.getAbsolutePath()).toString());
}
}
}
catch(Exception exception)
{
logger.error(exception.getLocalizedMessage(), exception);
}
}
public void setReadOnly(boolean flag)
{
m_readOnly = flag;
}
private static final Logger logger = Logger.getLogger(com/teamcenter/rac/kernel/AEShell);
private static final int AE_tool_not_found = 9008;
private static final String ACTION_OBJECT_SUFFIX = ".ACTION_OBJECT";
private final TCComponentDatasetContext m_datasetContext;
private long m_lastModifiedDate[];
private long m_newFileCreatedTime;
private final boolean m_userDefinedDir;
private final String m_workingDirName;
private final int m_selectedAction;
private TCComponentDataset m_selectedDataset;
private TCComponentDataset m_version0;
private TCComponent m_selectedTool;
private String m_selectedFileName;
private String m_selectedNamedRef;
private String m_selectedMimeType;
private String m_searchBy;
private File m_exportedFiles[];
private int m_checkedOutState;
private boolean m_fileSaved;
private int m_statefulnessReg;
private final TCSession m_session;
private boolean m_readOnly;
private boolean m_removeFilesAtComplete;
}
/*
DECOMPILATION REPORT
Decompiled from: F:\Teamcenter10.1.4Env\portal\plugins\com.teamcenter.rac.kernel_10000.1.0.jar
Total time: 132 ms
Jad reported messages/errors:
Couldn't resolve all exception handlers in method cleanupAESession
Overlapped try statements detected. Not all exception handlers will be resolved in the method setAppShellActiveVerdict
Exit status: 0
Caught exceptions:
*/

@ -0,0 +1,461 @@
# @<COPYRIGHT>@
# ==================================================
# Copyright 2013.
# Siemens Product Lifecycle Management Software Inc.
# All Rights Reserved.
# ==================================================
# @<COPYRIGHT>@
#*==================================================================================================
# File description: This properties file contains all locale specific keys for the kernel package.
# It is the intent that this file is to be localized based upon the Java
# localization resource bundle naming conventions. For further information
# please refer to the Java doc on this subject.
#===================================================================================================
# Strings for registry display
#---------------------------------
inbox=\u4EFB\u52A1\u7BB1
# Task name prefixs
# ---------------------------
#newProcessName=New Process
newTaskNamePrefix=\u65B0\u5EFA
# Strings for Errors
# ----------------------
noVolumeAccess=\u60A8\u5BF9\u4EFB\u4F55\u5377\u90FD\u6CA1\u6709\u5199\u6743\u9650\u3002
noFCC=\u6587\u4EF6\u5BA2\u6237\u7AEF\u7F13\u5B58\u672A\u542F\u7528\u3002\u8BF7\u4E0E\u7CFB\u7EDF\u7BA1\u7406\u5458\u8054\u7CFB\u3002
downloadTransientFileException=\u4E0B\u8F7D\u4E34\u65F6\u6587\u4EF6\u5931\u8D25\uFF1A
uploadTransientFileException=\u4E0A\u4F20\u4E34\u65F6\u6587\u4EF6\u5931\u8D25\uFF1A
getNewFileException=\u83B7\u53D6\u65B0\u6587\u4EF6\u5931\u8D25 -
createTransientDirException=\u4E3A\u4E34\u65F6\u6587\u4EF6\u521B\u5EFA\u5DE5\u4F5C\u76EE\u5F55\u5931\u8D25\uFF1A
fatalCommunicationException=\u4E25\u91CD\u7684\u901A\u4FE1\u5F02\u5E38\u3002
missingFactoryComponentRegistryEntry=\u7F3A\u5C11\u51FA\u5382\u7EC4\u4EF6\u6CE8\u518C\u6761\u76EE\uFF1A
invalidFactoryComponentEntry=\u7EC4\u4EF6\u51FA\u5382\u9879\u65E0\u6548
unknownLOVType=\u610F\u5916\u7684 LOV \u7C7B\u578B
failedToLogin=\u672A\u80FD\u767B\u5F55
shellsRunning=\u65E0\u6CD5\u9000\u51FA\uFF1APortal \u5DF2\u542F\u52A8\u4E86\u4E00\u4E9B\u5E94\u7528\u7A0B\u5E8F\u3002\u8BF7\u5C06\u5176\u5173\u95ED\u518D\u9000\u51FA\u767B\u5F55\u3002
shellsRunning_FilesOpened=\u65E0\u6CD5\u6CE8\u9500\uFF1A\u8FD0\u884C\u8BE5\u95E8\u6237\u7684\u5E94\u7528\u7A0B\u5E8F\u5DF2\u542F\u52A8\uFF0C\u7528\u4E8E\u67E5\u770B\u6216\u7F16\u8F91\u4EE5\u4E0B\u6570\u636E\uFF1A\n{0}\n\u8BF7\u5173\u95ED\u5B83\u4EEC\u5E76\u9000\u51FA\u3002
invalidRelationType=\u5173\u7CFB\u65E0\u6548\u3002\u4E0D\u80FD\u63D2\u5165\u5230\u7236\u5BF9\u8C61\uFF1A
invalidPropertyName=\u5C5E\u6027\u540D\u79F0\u65E0\u6548\uFF1A{0}
invalidPropertyType=\u5C5E\u6027\u7C7B\u578B\u65E0\u6548
propertyIsArray=\u5C5E\u6027\u4E3A\u6570\u7EC4...\u8BF7\u4F7F\u7528 get<Type>ValueArray()\u3002
propertyIsNotArray=\u5C5E\u6027\u4E0D\u662F\u6570\u7EC4...\u8BF7\u4F7F\u7528 get<Type>Value()\u3002
invalidDirectory=\u76EE\u5F55\u65E0\u6548
noFactoriesRegistered=\u6CA1\u6709\u5382\u5BB6\u53EF\u5728 kernel.properties \u4E2D\u6CE8\u518C\uFF01
notImplementedYet=\u5C1A\u672A\u5B9E\u65BD
callNewIDBeforeisNewIDModifiable=\u8BF7\u5728\u8C03\u7528 isNewIDModifiable \u4E4B\u524D\u8C03\u7528 getNewID\uFF01
callNewRevBeforeisNewRevModifiable=\u8BF7\u5728\u8C03\u7528 isNewRevModifiable \u4E4B\u524D\u8C03\u7528 getNewRev\uFF01
bomlineAddError=\u6B64\u5904\u4EC5\u80FD\u7C98\u8D34\u96F6\u7EC4\u4EF6\u3001\u96F6\u7EC4\u4EF6\u7248\u672C\u6216 BOM \u884C\u3002
genericPasteError=\u9009\u5B9A\u5BF9\u8C61\u65E0\u6CD5\u7C98\u8D34\u3002
bomlinePasteMarkupChildError=\u6279\u6CE8\u884C\u65E0\u6CD5\u7C98\u8D34\u3002
bomlinePasteMarkupParentError=\u4E0D\u5F97\u5BF9\u6279\u6CE8\u884C\u8FDB\u884C\u7C98\u8D34\u3002
failedToOpen=\u672A\u80FD\u6253\u5F00\uFF1B\u5BF9\u8C61\u5DF2\u7531\u4EE5\u4E0B\u7528\u6237\u7B7E\u51FA
createDirFailed=\u672A\u80FD\u521B\u5EFA\u5DE5\u4F5C\u76EE\u5F55 \uFF1A
misMatchedFileExtension=\u5BFC\u5165\u6587\u4EF6\u5177\u6709\u672A\u88AB\u9009\u5B9A\u7684 namedReference \u5B9A\u4E49\u7684\u6269\u5C55\u540D
insertNotAllow=\u9009\u5B9A\u5BF9\u8C61\u6CA1\u6709\u5B9A\u4E49\u7C98\u8D34\u5173\u7CFB\u3002\u56E0\u6B64\uFF0C\u5BF9\u7236\u5BF9\u8C61\u7981\u7528\u63D2\u5165/\u7C98\u8D34\uFF1A
checkTCExportDir=\u68C0\u67E5 client_specific.properties \u6587\u4EF6\u4E2D TCExportDir \u53D8\u91CF\u7684\u8DEF\u5F84\u662F\u5426\u6B63\u786E\u8BBE\u7F6E\u3002
bomlineAddTypeError=\u672A\u80FD\u6DFB\u52A0\u7ED3\u6784\u5355\u5143\u3002\u4E00\u4E2A\u7ED3\u6784\u7684\u5355\u5143\u4EC5\u53EF\u4EE5\u88AB\u6DFB\u52A0\u5230\u76F8\u540C\u7684\u7C7B\u578B\u3002
overwriteFileError=\u7B7E\u51FA\u6587\u4EF6\u5931\u8D25\u3002\u6587\u4EF6\u4E0D\u80FD\u5BFC\u51FA\uFF0C\u56E0\u4E3A\u5B83\u5DF2\u5B58\u5728\u4E8E\u4EE5\u4E0B\u4F4D\u7F6E\uFF1A{0}\u3002\u8BF7\u79FB\u52A8\u6B64\u6587\u4EF6\u6216\u5728\u201C\u7B7E\u51FA\u201D\u5BF9\u8BDD\u6846\u4E2D\u9009\u62E9\u201C\u8986\u76D6\u73B0\u6709\u7684\u6587\u4EF6\u201D\u9009\u9879\u3002
noSessionSuspend=\u4F1A\u8BDD\u6302\u8D77\u4E0D\u518D\u53D7\u652F\u6301\u3002\u5C06 usePortalServerTimeouts \u8BBE\u7F6E\u6210 false\u3002
serverTimeout.TITLE=\u670D\u52A1\u5668\u5DF2\u91CD\u65B0\u6307\u6D3E
serverTimeout.TEXT=Teamcenter \u5BA2\u6237\u7AEF\u5931\u53BB\u4E86\u4E0E\u670D\u52A1\u5668\u7684\u8FDE\u63A5\u3002\u6B64\u65F6\u5BA2\u6237\u7AEF\u65E0\u6CD5\n\u4E0E\u65B0\u670D\u52A1\u5668\u91CD\u65B0\u5EFA\u7ACB\u53EF\u9760\u7684\u8FDE\u63A5\u3002\u8BF7\u9000\u51FA\u5E76\u91CD\u65B0\u767B\u5F55\u4EE5\u91CD\u65B0\u5EFA\u7ACB\n\u8FDE\u63A5\u3002\u5982\u679C\u95EE\u9898\u4ECD\u7136\u5B58\u5728\uFF0C\u53C2\u8003 Teamcenter \u670D\u52A1\u5668\u7CFB\u7EDF\u65E5\u5FD7\uFF0C\n\u83B7\u53D6\u6709\u5173\u9020\u6210\u8FDE\u63A5\u4E22\u5931\u7684\u53EF\u80FD\u539F\u56E0\u7684\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\u3002
serverTimeout.TEXT2=\u6309{0}\u4EE5\u9000\u51FA Teamcenter\u3002
serverTimeout.TEXT3=\u6309 {0} \u4EE5\u7EE7\u7EED\u3002
serverTimeout.TEXT4=\u5DF2\u6307\u6D3E\u65B0\u7684 Teamcenter \u670D\u52A1\u5668\u3002
operationFail=\u64CD\u4F5C\u53EF\u80FD\u5DF2\u7ECF\u5931\u8D25\u3002
invalidTypeName=\u7C7B\u578B\u540D\u79F0\u65E0\u6548\u3002
failedWritingDatasetInfo=\u5728 xml \u6587\u4EF6\u4E2D\u5199\u5165\u6570\u636E\u96C6\u4FE1\u606F\u65F6\u5931\u8D25\u3002
bomlinePropertyLoadError=\u68C0\u7D22 BOM \u884C\u7684\u5C5E\u6027\u65F6\u51FA\u9519\u3002
USER_CANNOT_COPY = \u60A8\u6CA1\u6709\u4FEE\u6539\u8BE5\u9879\u76EE\u7684\u6743\u9650\u3002
# Strings for Logon Messages and logon timeout in seconds.
# ----------------------------------------------------------
# This is appended with " " + server_name + "..."
connectingToServer=\u8FDE\u63A5\u5230
# This is appended with " + server_name + ": " + exception_message
errorConnectingToServer=\u8FDE\u63A5\u670D\u52A1\u5668\u65F6\u51FA\u9519\uFF1A
# Strings for licensing errors
integerFeatureKeyUsageError=\u6574\u578B\u7279\u5F81\u7F16\u53F7\u5DF2\u4F5C\u5E9F\u3002\u4F7F\u7528\u9002\u5F53\u7684\u5B57\u7B26\u4E32\u7279\u5F81\u540D\u79F0\u3002
refresh_install_msg=\u6B63\u5728\u540C\u6B65\u80D6\u5BA2\u6237\u7AEF\u5B89\u88C5\u6587\u4EF6\u4E0E Teamcenter \u670D\u52A1\u5668...
refresh_install_title=\u6B63\u5728\u540C\u6B65\u5DF2\u5B89\u88C5\u7684\u6587\u4EF6
#
# Strings for connection errors to servers and server directory.
#
unableToObtainServerRef=\u65E0\u6CD5\u83B7\u5F97\u6307\u5B9A\u670D\u52A1\u5668\u7684\u5F15\u7528
unableToBindServer=\u65E0\u6CD5\u7ED1\u5B9A\u5230\u8FD0\u884C\u7684\u670D\u52A1\u5668\u4E0A
unableToConnectToNamingServer=\u65E0\u6CD5\u8FDE\u63A5\u5230\u670D\u52A1\u5668\u76EE\u5F55
unableToSetContext=\u65E0\u6CD5\u8BBE\u7F6E\u65B0\u76EE\u5F55\u5173\u8054
unableToResolveObject=\u65E0\u6CD5\u5728\u76EE\u5F55\u4E2D\u627E\u5230\u6761\u76EE
unableRetrieveEntries=\u65E0\u6CD5\u68C0\u7D22\u5230\u76EE\u5F55\u6761\u76EE
authFailed=\u7528\u6237\u8BA4\u8BC1\u5931\u8D25\u3002\u8BF7\u91CD\u8BD5\u3002
badUri=\u5BF9\u670D\u52A1\u5668 URL \u6307\u5B9A\u4E86\u65E0\u6548\u7684\uFF08\u6216\u4E0D\u5B58\u5728\u7684\uFF09\u4F4D\u7F6E
serviceInitFailure=\u65E0\u6CD5\u521D\u59CB\u5316 SOAP \u5BA2\u6237\u7AEF\u670D\u52A1
commsFailure=\u9519\u8BEF\uFF1A\u65E0\u6CD5\u8FDB\u884C\u8FDC\u7A0B\u7F51\u7EDC\u8C03\u7528\u3002
# The following is a compund statement, and will be made up as follows:
# logginIntoServer + " " + server_name + " " + logginInForUser + "..."
loggingIntoServer=\u6B63\u5728\u767B\u5F55 Teamcenter \u670D\u52A1\u5668
logginInForUser=\u7528\u6237\uFF1A
# The following is a compund statement, and will be made up as follows:
# succesfulLogin + " " + server_name + " " + logginInForUser + "."
succesfulLogin=\u6210\u529F\u767B\u5F55\u5230 Teamcenter \u670D\u52A1\u5668
# The following is a compund statement, and will be made up as follows:
# unSuccesfulLogin + " " + server_name + " " + logginInForUser + "."
unSuccesfulLogin=\u767B\u5F55 Teamcenter \u670D\u52A1\u5668\u4E0D\u6210\u529F
# If the passed connector object is null
noValidServerConnector=\u670D\u52A1\u5668\u8FDE\u63A5\u5668\u4E0D\u80FD\u4E3A\u7A7A\u3002
# Marshalling exceptions
marshallingParameterCountMismatch=\u7F16\u7EC4\u53C2\u6570\u8BA1\u6570\u4E0D\u5339\u914D\u3002
marshallingParameterTypeMismatch=\u7F16\u7EC4\u53C2\u6570\u7C7B\u578B\u4E0D\u5339\u914D\u3002
marshallingParameterInvalidType=\u7F16\u7EC4\u53C2\u6570\u7C7B\u578B\u65E0\u6548\u3002
exception=\u4E00\u822C TC \u5F02\u5E38
toolNotFound=\u65E0\u6CD5\u6253\u5F00\u6570\u636E\u96C6\uFF1A\u672A\u627E\u5230\u517C\u5BB9\u7684\u5DE5\u5177\u3002
invalidFileOrDirectory=\u6587\u4EF6\u6216\u76EE\u5F55\u65E0\u6548
# Volume Errors
nullVolumeParameter=\u4F20\u9012\u7684\u5377\u4E0D\u80FD\u4E3A\u7A7A
nullAccessorParameter=\u8BBF\u95EE\u8005\u4E0D\u80FD\u4E3A\u7A7A
nullVolumeName=\u5377\u540D\u4E0D\u80FD\u4E3A\u7A7A
nullVolumeNode=\u8282\u70B9\u4E0D\u80FD\u4E3A\u7A7A
invalidFMSEntries=\u5FC5\u987B\u6307\u5B9A FSC ID\u3001\u6587\u4EF6\u5B58\u50A8\u7EC4 ID \u6216\u8D1F\u8F7D\u5E73\u8861\u5668 ID \u4E2D\u7684\u4E00\u4E2A
# Person Errors
nullPersonParameter=\u4F20\u9012\u7684\u4EBA\u5458\u4E0D\u80FD\u4E3A\u7A7A
PersonAndIconMismatch=\u4EBA\u5458\u540D\u4E0E\u56FE\u6807 ID \u6570\u7EC4\u957F\u5EA6\u4E0D\u540C
# Group Errors
nullGroupParameter=\u4F20\u9012\u7684\u7EC4\u4E0D\u80FD\u4E3A\u7A7A
nullGroupNameParameter=\u7EC4\u540D\u79F0\u4E0D\u5F97\u4E3A\u7A7A
GroupAndIconMismatch=\u7EC4\u540D\u79F0\u4E0E\u56FE\u6807 ID \u6570\u7EC4\u957F\u5EA6\u4E0D\u540C
# GroupMember Errors
nullGroupMemberParameter=\u4F20\u9012\u7684\u7EC4\u6210\u5458\u4E0D\u80FD\u4E3A\u7A7A
GroupMemberAndIconMismatch=\u7EC4\u6210\u5458\u540D\u4E0E\u56FE\u6807 ID \u6570\u7EC4\u957F\u5EA6\u4E0D\u540C
# Role Errors
nullRoleParameter=\u4F20\u9012\u7684\u89D2\u8272\u4E0D\u80FD\u4E3A\u7A7A
RoleAndIconMismatch=\u89D2\u8272\u540D\u4E0E\u56FE\u6807 ID \u6570\u7EC4\u957F\u5EA6\u4E0D\u540C
# User Errors
nullUserParameter=\u4F20\u9012\u7684\u7528\u6237\u4E0D\u80FD\u4E3A\u7A7A
nullUserId=\u7528\u6237 ID \u4E0D\u80FD\u4E3A\u7A7A
nullPassword=\u5BC6\u7801\u4E0D\u80FD\u4E3A\u7A7A
nullOSUserName=\u64CD\u4F5C\u7CFB\u7EDF\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A
nullDefaultGroup=\u7528\u6237\u7684\u9ED8\u8BA4\u7EC4\u4E0D\u80FD\u4E3A\u7A7A
UserAndIconMismatch=\u7528\u6237\u540D\u4E0E\u56FE\u6807 ID \u6570\u7EC4\u957F\u5EA6\u4E0D\u540C
# Preference Service errors
nullPreferenceName=\u9996\u9009\u9879\u540D\u79F0\u4E0D\u53EF\u7559\u7A7A\u3002
invalidPreferenceScope=\u9996\u9009\u9879\u503C\u4F4D\u7F6E\u65E0\u6548\u3002
unequalLengthOfArrays=\u53D1\u751F\u5185\u90E8\u9519\u8BEF\u3002\n\u4F20\u5165\u9635\u5217\u7684\u957F\u5EA6\u5E76\u975E\u5B8C\u5168\u76F8\u540C\u3002
invalidTargetIds=\u7528\u6237/\u89D2\u8272/\u7EC4\u7EC4\u4EF6\u4F20\u9012\u5230\u6B64\u65B9\u6CD5\uFF0C\u68C0\u6D4B\u5230\u95EE\u9898\u3002
# Print property header
propertyHeaders.DISPLAYNAME=\u5C5E\u6027\u663E\u793A\u540D\u79F0
propertyHeaders.REALNAME=\u5C5E\u6027\u771F\u5B9E\u540D\u79F0
propertyHeaders.VALUE=\u503C
objectPropety.TITLE=\u5DE5\u4F5C\u533A\u5C5E\u6027
formPropety.TITLE=\u8868\u5355\u5C5E\u6027
# TCServer Connection errors
nullHostParameter=TCServerConnection \u5BF9\u8C61\u7684\u53C2\u6570 serverHost \u4E0D\u80FD\u4E3A\u7A7A
# Compound Property errors
nullValuesNotAllowed=\u5B9A\u4E49\u590D\u5408\u5C5E\u6027\u7684\u4F20\u9012\u7684\u503C\u4E0D\u80FD\u4E3A\u7A7A\u3002
# AIE message strings
# -------------------------
unableToDelete=\u5BFC\u5165\u64CD\u4F5C\u6210\u529F\uFF0C\u4F46\u7531\u4E8E\u51FA\u73B0\u672A\u77E5\u6587\u4EF6\uFF0C\u56E0\u6B64\u65E0\u6CD5\u5220\u9664\u8FDE\u63A5\u5BF9\u8C61
importOperationFailed=\u5BFC\u5165\u64CD\u4F5C\u5931\u8D25
noPrimaryNamedRef=\u65E0\u6CD5\u627E\u5230\u4E3B\u547D\u540D\u5F15\u7528\u6587\u4EF6
operationInProgressImport=\u65E0\u6CD5\u5BFC\u5165\uFF1A\u5728\u6B64\u8FDE\u63A5\u6709\u53E6\u4E00\u9879\u64CD\u4F5C\u5728\u8FDB\u884C
operationInProgressExport=\u65E0\u6CD5\u5BFC\u51FA\uFF1B\u5728\u6B64\u8FDE\u63A5\u6709\u53E6\u4E00\u9879\u64CD\u4F5C\u5728\u8FDB\u884C
badData=\u5728\u8FDE\u63A5\u5BF9\u8C61\u4E2D\u7684\u574F\u6570\u636E
directoryDoesNotExist=\u8FDE\u63A5\u76EE\u5F55\u4E0D\u5B58\u5728
unableToUpdate=\u65E0\u6CD5\u66F4\u65B0\u8FDE\u63A5\u5BF9\u8C61
exportOnlyConnection=\u4E0D\u5F97\u4ECE\u4EC5\u53EF\u5BFC\u51FA\u7684\u8FDE\u63A5\u5BFC\u5165
noExportToFailed=\u4E0D\u5F97\u5BFC\u51FA\u5230\u5931\u8D25\u7684\u8FDE\u63A5
errorImportingFiles=\u5BFC\u5165\u6587\u4EF6\u65F6\u9519\u8BEF
noFilesToExport.TEXT=\u9009\u62E9\u7684\u6570\u636E\u96C6\u672A\u5305\u62EC\u5BFC\u51FA\u6587\u4EF6
nonTrivialXFileDir=\u4E0D\u652F\u6301 Non-trivial xfile \u76EE\u5F55
noParentItemRev=\u4E0D\u652F\u6301\u6CA1\u6709\u7236\u96F6\u7EC4\u4EF6\u7248\u672C\u7684 AutoCAD \u6570\u636E\u96C6
# This is appended with " " + filespec + <another message>
fileToOpen=\u8981\u6253\u5F00\u7684\u6587\u4EF6
# usage: fileToOpen + " " + filespec + " " + notFoundIn...
notFoundInConnection=\u5728\u8FDE\u63A5\u5BF9\u8C61\u4E2D\u672A\u627E\u5230
notFoundInDirectory=\u5728\u8FDE\u63A5\u76EE\u5F55\u4E2D\u672A\u627E\u5230
# usage: <any of these> + connection name
exportingToConnection=\u6B63\u5728\u5BFC\u51FA\u5230\u8FDE\u63A5
importingFromConnection=\u6B63\u5728\u4ECE\u8FDE\u63A5\u5BFC\u5165
analyzingDatasetsForExport=\u6B63\u5728\u5206\u6790\u5BFC\u51FA\u5230\u8FDE\u63A5\u7684\u6570\u636E\u96C6
analyzingDatasetsForImport=\u6B63\u5728\u5206\u6790\u5BFC\u51FA\u76EE\u5F55\u548C Teamcenter \u4EE5\u4ECE\u8FDE\u63A5\u5BFC\u5165
# For component selection
# -----------------------
invalidQuery.MSG=\u6307\u5B9A\u7684\u67E5\u8BE2\u65E0\u6548\uFF1A
# Error message for a dataset which has canceled the checkout
notReserved.TITLE=\u6570\u636E\u96C6\u66FF\u6362/\u4E0A\u4F20...
notReserved.MSG1=\u7531\u4E8E\u7B7E\u51FA\u53D6\u6D88\uFF0C\u6570\u636E\u96C6\u4E0A\u4F20\u5931\u8D25\u3002\u5DF2\u66F4\u65B0\u7684\u6587\u4EF6\u53EF\u5728\u4EE5\u4E0B\u4F4D\u7F6E\u627E\u5230
# Error message for Open dataset - Unable to import file
unableImportFile.TITLE=\u6570\u636E\u96C6\u6253\u5F00/\u6253\u5F00...
unableImportFile.MSG1=\u65E0\u6CD5\u5BFC\u5165\u6587\u4EF6
unableImportFile.MSG2=\u672A\u5B9A\u4E49\u5E26\u6269\u5C55\u540D\u7684\u6587\u4EF6\u7684\u6587\u4EF6\u6A21\u677F
unableImportFile.MSG3=\u88AB\u4FDD\u7559\u5E76\u9700\u8981\u624B\u5DE5\u5220\u9664\u3002
# Error message for Upload dataset - Unable to upload file(s)
unableUploadFile.TITLE=\u6570\u636E\u96C6\u66FF\u6362/\u4E0A\u4F20...
unableUploadFile.MSG1=\u6570\u636E\u96C6\u4E0A\u4F20\u5931\u8D25\u3002\u60A8\u5DF2\u66F4\u65B0\u7684\u6587\u4EF6\u4F4D\u4E8E\uFF1A
unableUploadFile.MSG2=\u8BF7\u4E0E\u7BA1\u7406\u5458\u8054\u7CFB\u3002
# For ME occurrence group lines
#------------------------
errorAddAppearance=\u4E0D\u5F97\u5728\u4E8B\u4F8B\u7EC4\u4E0B\u5C1D\u8BD5\u66F4\u6539\u7ED3\u6784
errorRemoveAppearance=\u4E0D\u5F97\u5728\u4E8B\u4F8B\u7EC4\u4E0B\u5C1D\u8BD5\u66F4\u6539\u7ED3\u6784
errorNoAppearanceToAdd=\u6DFB\u52A0\u5230\u4E8B\u4F8B\u7EC4\u7684\u5BF9\u8C61\u65E0\u6548
# For cfg attachment lines
#------------------------
errorCannotFindLine=\u627E\u4E0D\u5230\u4EE5\u4E0B\u9879\u7684\u9644\u52A0\u884C
# Error message for plmxml File Not created. Used from TCInteropService
plmxmlFileNotCreated.MESSAGE=\u672A\u80FD\u521B\u5EFA plmxml \u6587\u4EF6\u3002
# For deleting root activity
errorDeleteRootActivity=\u4E0D\u80FD\u5220\u9664\u6839\u6D3B\u52A8
# For TcFile errors
# ------------------------
nullTcFileParameter=\u4F20\u9012\u7684\u6587\u4EF6\u4E0D\u80FD\u4E3A\u7A7A
# For privilege Report errors
# ------------------------
nullPrivilegeReportParameter=\u4F20\u9012\u7684\u53C2\u6570\u4E0D\u80FD\u4E3A\u7A7A\uFF01
# Variant rule errors
# ------------------------
variantRule.noOptionForName=\u53D8\u91CF\u89C4\u5219\u4E0D\u5305\u62EC\u9009\u9879
veNotFound=\u5728\u547D\u540D\u7684\u53D8\u91CF\u8868\u8FBE\u5F0F\u4E2D\n\u627E\u4E0D\u5230\u53D8\u91CF\u8868\u8FBE\u5F0F
# RDVService errors
# ------------------------
TCRDVServiceERROR.TITLE=TCRDVService \u9519\u8BEF
sendAdditionalIncompatibleIC.MSG=\u5F53\u524D\u7684 IC \u548C\u4EE5\u524D\u7684\u7528\u4E8E\u53D1\u9001\u539F\u59CB\u6570\u636E\u7684 IC \u4E0D\u517C\u5BB9
# If an interdependent property is not used in a Query Clause,
# We need to add a dummy level to support incremental search.
# ------------------------
missingLevel.LABEL=\u7EA7\u522B
# Assembly Arrangement messages
# ------------------------
deleteDefaultArrangement.TITLE=\u6B63\u5728\u5220\u9664\u9ED8\u8BA4\u7684\u5E03\u7F6E
deleteDefaultArrangement.MSG=\u60A8\u6B63\u5728\u5220\u9664\u6B64\u88C5\u914D\u7684\u9ED8\u8BA4\u5E03\u7F6E\uFF1B\n\u5982\u679C\u6B64\u88C5\u914D\u5DF2\u7528\u4E8E\u53E6\u4E00\u88C5\u914D\u4E2D\uFF0C\n\u5219\u5220\u9664\u8BE5\u9ED8\u8BA4\u5E03\u7F6E\u4F1A\u5BFC\u81F4\u610F\u5916\n\u7684\u53EF\u89C6\u5316\u884C\u4E3A\u3002\u8981\u7EE7\u7EED\u5417\uFF1F
# FMS errors
badFmsHome.TITLE=FMS \u914D\u7F6E\u9519\u8BEF\u3002
badFmsHome.MSG=\u8FD0\u884C FMS \u65F6\u6240\u5FC5\u9700\u7684\u7EC4\u4EF6\u4E0D\u53EF\u7528\u3002FMS_HOME \u53EF\u80FD\u8BBE\u7F6E\u4E0D\u6B63\u786E\u3002
terminalFCCResourceError.TITLE=\u6587\u4EF6\u8BBF\u95EE\u95EE\u9898
terminalFCCResourceError.MSG=FCC \u63A5\u53E3\u672A\u80FD\u521D\u59CB\u5316\u3002
terminalFCCResourceError.DETAIL=\u53EA\u6709\u89E3\u51B3\u4E86\u5173\u952E\u95EE\u9898\u624D\u53EF\u8FDB\u884C\u6587\u4EF6\u8BBF\u95EE\u3002\n\u8FD9\u901A\u5E38\u662F\u7531\u914D\u7F6E\u6216\u5B89\u88C5\u95EE\u9898\u9020\u6210\u7684\u3002\n\u68C0\u67E5 FMS_HOME \u73AF\u5883\u53D8\u91CF\u7684\u503C\u5E76\u786E\u8BA4\u5E73\u53F0\u76F8\u5E94\u7684 FCCJavaClientProxy\n\u5171\u4EAB\u5E93\u662F\u5426\u5B58\u5728\u4E8E lib \u76EE\u5F55\u3002\n\uFF08\u5E93\u547D\u540D\u7EA6\u5B9A\uFF1A[lib]FCCJavaClientProxy[64].[dll|so|sl|dylib]\uFF09\n\u5982\u679C\u95EE\u9898\u4ECD\u65E7\u5B58\u5728\uFF0C\u8BF7\u8054\u7CFB\u60A8\u7684\u7CFB\u7EDF\u7BA1\u7406\u5458\u3002
warningFCCStartFailure.TITLE=\u6587\u4EF6\u8BBF\u95EE\u95EE\u9898
warningFCCStartFailure.MSG=FCC \u672A\u80FD\u542F\u52A8\u3002
warningFCCStartFailure.DETAIL=\u76F4\u5230\u6210\u529F\u542F\u52A8 FCC \u624D\u53EF\u8FDB\u884C\u6587\u4EF6\u8BBF\u95EE\u3002\n\u8FD9\u901A\u5E38\u662F\u7531\u4E8E\u7F51\u7EDC\u670D\u52A1\u5F53\u524D\u4E0D\u53EF\u7528\u6216\u5B58\u5728\u914D\u7F6E\u95EE\u9898\u9020\u6210\u7684\u3002\n\u5C06\u5B9A\u671F\u91CD\u8BD5\u8BE5\u63A5\u53E3\uFF0C\u5982\u679C\u89E3\u51B3\u4E86\u8BE5\u95EE\u9898\uFF0C\u5219\u5C06\u542F\u7528\u6587\u4EF6\u8BBF\u95EE\u3002\n\u5982\u679C\u95EE\u9898\u4ECD\u65E7\u5B58\u5728\uFF0C\u8BF7\u8054\u7CFB\u60A8\u7684\u7CFB\u7EDF\u7BA1\u7406\u5458\u3002
# CAD-Part alignment
invalidSource.TITLE=\u65E0\u6548\u7684\u6E90\u5BF9\u8C61
linkDesignToPart.TITLE=\u5C06\u8BBE\u8BA1/\u56FE\u7EB8\u4E0E\u96F6\u4EF6\u5BF9\u5E94
unlinkDesignFromPart.TITLE=\u53D6\u6D88\u8BBE\u8BA1/\u56FE\u7EB8\u4E0E\u96F6\u4EF6\u7684\u5BF9\u5E94
notCadOrDrawingSource.MSG=\u8BF7\u9009\u62E9 Teamcenter \u6570\u636E\u5E93\u4E2D\u53EF\u8C03\u6574\u7684\u96F6\u7EC4\u4EF6\u7248\u672C\u5B50\u7C7B\u578B\u6216 TCBOM \u6570\u636E\u5E93\u4E2D\u7684\u4F01\u4E1A\u56FE\u7EB8
notPartSource.MSG=\u4EC5\u96F6\u4EF6\u53EF\u4EE5\u4E0E CAD/\u56FE\u7EB8\u5BF9\u5E94
designAlreadyAligned.MSG=\u67D0\u4E9B\u6E90\u96F6\u7EC4\u4EF6\u7248\u672C/BOM \u884C\u5DF2\u4E0E\u9009\u5B9A\u76EE\u6807\u96F6\u4EF6/ACT \u884C\u5BF9\u5E94\u3002\n \u5DF2\u4E3A\u8FD9\u4E9B\u96F6\u7EC4\u4EF6\u8DF3\u8FC7\u64CD\u4F5C\u3002
drawingAlreadyAligned.MSG=\u4E00\u4E9B\u56FE\u7EB8\u5DF2\u7ECF\u4E0E\u9009\u5B9A\u7684\u96F6\u4EF6\u5BF9\u5E94\u3002\n \u5DF2\u8DF3\u8FC7\u9488\u5BF9\u8FD9\u4E9B\u96F6\u7EC4\u4EF6\u7684\u64CD\u4F5C\u3002
partAlreadyAligned.MSG=\u4E00\u4E9B\u6E90\u96F6\u4EF6\u5DF2\u4E0E\u9009\u5B9A\u7684\u76EE\u6807\u5BF9\u5E94\u3002\n \u9488\u5BF9\u8FD9\u4E9B\u96F6\u4EF6\u7684\u64CD\u4F5C\u5C06\u88AB\u8DF3\u8FC7\u3002
unlinkableDesignTypes.MSG=\u9009\u5B9A\u7684\u96F6\u7EC4\u4EF6\u7248\u672C\u7C7B\u578B\u65E0\u6CD5\u4E0E\u96F6\u4EF6\u5BF9\u5E94\u3002\n\u8BF7\u4E0E\u7CFB\u7EDF\u7BA1\u7406\u5458\u786E\u8BA4\u5141\u8BB8\u7684\u96F6\u7EC4\u4EF6\u7C7B\u578B\u3002
noDesignTypes.MSG=\u5B9A\u4E49\u53EF\u4EE5\u4E0E\u96F6\u4EF6\u5BF9\u5E94\u7684\u96F6\u7EC4\u4EF6\u7C7B\u578B\u3002\n\u8BF7\u4E0E\u7CFB\u7EDF\u7BA1\u7406\u5458\u8054\u7CFB\u3002
mixedTypesDisallowed.MSG=\u8BF7\u9009\u62E9\u76F8\u540C\u7C7B\u578B\u7684\u6240\u6709\u6E90\u96F6\u7EC4\u4EF6
removedPrimaryRepresentation.MSG=\u8BE5\u96F6\u4EF6\u7684\u4E3B\u8981\u8868\u793A\u5DF2\u79FB\u9664\u3002
linkDesignToPart.ErrorTitle=\u5BF9\u5E94\u65F6\u51FA\u9519
unlinkDesignToPart.ErrorTitle=\u53D6\u6D88\u5C06\u8BBE\u8BA1/\u56FE\u7EB8\u4E0E\u96F6\u4EF6\u5BF9\u5E94\u65F6\u51FA\u9519
linkDesignToPart.WarningTitle=\u5C06\u8BBE\u8BA1/\u56FE\u7EB8\u4E0E\u96F6\u4EF6\u5BF9\u5E94\u6210\u529F\u4F46\u53D1\u51FA\u8B66\u544A
linkDesignToPart.WarningTitle=\u53D6\u6D88\u5C06\u8BBE\u8BA1/\u56FE\u7EB8\u4E0E\u96F6\u4EF6\u5BF9\u5E94\u6210\u529F\u4F46\u53D1\u51FA\u8B66\u544A
#-------------------------------------
# Entries for GMO License
#-------------------------------------
noGMLicense=\u60A8\u4E0D\u5177\u6709\u6267\u884C\u6B64\u64CD\u4F5C\u7684 GM Overlay \u8BB8\u53EF\u8BC1\u3002
NoGMLicense.TITLE=GM Overlay \u8BB8\u53EF\u8BC1
#-------------------------------------
# Entries for VVI File creation
#-------------------------------------
INTEROP_TAG_PLMXML_BOTH_CANNOT_EXIST=\u5BF9\u8C61\u6807\u8BB0\u4E0E PLMXML \u5747\u4E0D\u5B58\u5728
INTEROP_NULL_INPUTS=PLMXML \u6587\u4EF6\u4E0E\u5BF9\u8C61\u6807\u8BB0\u7684\u7A7A\u8F93\u5165
INTEROP_INVALID_INPUT=\u5DF2\u9009\u62E9\u8981\u542F\u52A8\u7684\u65E0\u6548\u8F93\u5165\u3002
# TcServices
TcServicesMissingPrefs.MSG=\u7CBE\u7B80 XML \u7F3A\u5C11\u9996\u9009\u9879\u503C
# Roll up Messages
#------------------
rollupValidateError.TITLE=\u7D2F\u79EF\u9A8C\u8BC1\u51FA\u9519
rollupValidateTemplateExistsError.MSG=\u5B58\u5728\u672A\u547D\u540D\u7684\u7D2F\u79EF\u6A21\u677F\u3002
rollupValidateInvalidDelimiterError.MSG=\u7D2F\u79EF\u6A21\u677F\u7684\u5206\u9694\u7B26\u65E0\u6548\u3002
rollupValidateCalcEmptyFieldsError.MSG=\u7D2F\u79EF\u6A21\u677F\u5728\u8BA1\u7B97\u7A7A\u5B57\u6BB5\u3002
delimiter_other=\u5176\u4ED6
# Keys for About Dialog
prevHostName=\u4E3B\u673A\u540D\uFF1A
prevLogFile=\u65E5\u5FD7\u6587\u4EF6\uFF1A
prevJournalFile=\u64CD\u4F5C\u8BB0\u5F55\u6587\u4EF6\uFF1A
# SOA Services
ErrorWithSOACall.ERROR=\u8C03\u7528 SOA \u670D\u52A1\u65F6\u8FD4\u56DE\u9519\u8BEF
ErrorWithSOACall.TITLE=SOA \u670D\u52A1\u5931\u8D25
ErrorFromSOACall.TITLE=\u9519\u8BEF
SoaExceptionHandler.TITLE=\u670D\u52A1\u5668\u901A\u4FE1
SoaExceptionHandler_ERROR1.TEXT=\u670D\u52A1\u5668\u8FD4\u56DE\u4E00\u4E2A\u5185\u90E8\u670D\u52A1\u5668\u9519\u8BEF\u3002
SoaExceptionHandler_ERROR2.TEXT=\u60A8\u5E0C\u671B\u91CD\u8BD5\u4E0A\u4E00\u4E2A\u670D\u52A1\u8BF7\u6C42\u5417\uFF1F
# Messages for preAction of opening Validation Result Dataset
noPerferenceValue=\u9996\u9009\u9879 TC_VALIDATION_STYLESHEET_DATASETNAME \u672A\u8BBE\u7F6E\u3002
noPerferenceValue.TITLE=\u627E\u4E0D\u5230\u9996\u9009\u9879
invalidPreferenceValue=\u9996\u9009\u9879 TC_VALIDATION_STYLESHEET_DATASETNAME \u65E0\u6548\u3002
invalidPreferenceValue.TITLE=\u9996\u9009\u9879\u503C\u65E0\u6548
noXSLFile=\u4E0E\u9996\u9009\u9879 TC_VALIDATION_STYLESHEET_DATASETNAME \u5339\u914D\u7684 XSL \u6587\u4EF6\u627E\u4E0D\u5230\u3002
noXSLFile.TITLE=\u65E0 XSL \u6587\u4EF6
queryXSLFile=\u5BF9\u6570\u636E\u96C6\u4F7F\u7528\u5DF2\u4FDD\u5B58\u7684\u67E5\u8BE2\u5931\u8D25\u3002
queryXSLFile.TITLE=\u67E5\u8BE2 XSL \u6570\u636E\u96C6\u5931\u8D25
#rev rule string
effectivity=\u6709\u6548\u6027\uFF1A
notSpecified=\u4ECA\u5929
effectivityWithEndItem=\u5177\u6709\u9876\u5C42\u96F6\u7EC4\u4EF6\u7684\u6709\u6548\u6027\uFF1A
dateString=\u65E5\u671F\uFF08{0}\uFF09
#POR 008045 - multi-lingual TextServer
#Definition of the warning panel title, and additional text to guide the end-user
SERVER_LOGIN_WARNING_CODE.TITLE=\u8BED\u8A00\u9000\u5316
SERVER_LOGIN_WARNING_CODE.TEXT=\u65E0\u6CD5\u4E0E\u8BF7\u6C42\u7684\u8BED\u8A00\u73AF\u5883\u76F8\u8FDE\u63A5\u3002\n\n\u7531\u4E8E\u5C06\u4F7F\u7528 Teamcenter \u670D\u52A1\u5668\u7684\u9ED8\u8BA4\u8BED\u8A00\uFF0C\u56E0\u6B64\u5E94\u7528\u7A0B\u5E8F\u663E\u793A\u65F6\u5C06\u5939\u6742\u4E24\u79CD\u8BED\u8A00\u3002
#SERVER_LOGIN_ERROR_CODE.TITLE=Language restriction
SERVER_LOGIN_ERROR_CODE.TEXT=\u8BED\u8A00\u9650\u5236\n\n\u5BF9\u8BED\u8A00 {0} \u7684\u8FDE\u63A5\u88AB\u62D2\u7EDD\u3002\n\n\u5173\u95ED\u8BE5\u5E94\u7528\u7A0B\u5E8F\uFF0C\u5E76\u4FEE\u6539\u542F\u52A8\u811A\u672C\u4F7F\u7528\u7684\u8BED\u8A00\u503C\u3002\n\nTeamcenter \u670D\u52A1\u5668\u6D88\u606F\uFF1A\n\t{1}
# extension type string
EXT.extpointType.PRECONDITION=precondition
EXT.extpointType.PREACTION=preaction
EXT.extpointType.POSTACTION=postaction
EXT.extpointType.BASEACTION=baseaction
EXT.extpointType.UNKNOWN=\u672A\u77E5
user.services.marshal.error=\u5904\u7406 TcUserService \u7684 XML \u65F6\u53D1\u751F\u7F16\u7EC4\u9519\u8BEF
################################################################
# Start Validation Evaluation message description
################################################################
#Up to date; result pass or not required
ValidaitonRunPassStatusDesc=\u8BC4\u4F30\u901A\u8FC7
VALIDATION_RUN_STATUS_DESC_upToDate=\u7ED3\u679C\u5DF2\u5931\u8D25
VALIDATION_RUN_STATUS_DESC_outOfDatePartChanged=\u7531\u4E8E\u66F4\u6539\u4E86\u96F6\u4EF6\uFF0C\u5BFC\u81F4\u7ED3\u679C\u8FC7\u671F
VALIDATION_RUN_STATUS_DESC_outOfDateRequirementChanged=\u7531\u4E8E\u66F4\u6539\u4E86\u9700\u6C42\uFF0C\u5BFC\u81F4\u7ED3\u679C\u8FC7\u671F
VALIDATION_RUN_STATUS_DESC_verifyParameterFailed=\u53C2\u6570\u9A8C\u8BC1\u5931\u8D25
VALIDATION_RUN_STATUS_DESC_missingReportLog=\u7F3A\u5C11\u7ED3\u679C\u65E5\u5FD7\u6587\u4EF6
VALIDATION_RUN_STATUS_DESC_notRun=\u672A\u627E\u5230\u7ED3\u679C
VALIDATION_RUN_STATUS_DESC_notRequired=\u8BC4\u4F30\u901A\u8FC7
VALIDATIONRunClient=\u6BCF\u4E2A\u4EE3\u7406\u7248\u672C\u81EA\u8EAB\u90FD\u5FC5\u987B\u63D0\u4F9B runValidationOnClient \u65B9\u6CD5\u7684\u5B9E\u65BD
VALIDATIONRun=\u6BCF\u4E2A\u4EE3\u7406\u7248\u672C\u81EA\u8EAB\u90FD\u5FC5\u987B\u63D0\u4F9B runValidationOn \u65B9\u6CD5\u7684\u5B9E\u65BD
VALIDATIONInvalidProperty=\u5C5E\u6027\u5BF9\u9A8C\u8BC1\u4EE3\u7406\u7248\u672C\u7C7B\u578B\u65E0\u6548
################################################################
# End Validation Evaluation message description
################################################################
#MSExcelX validation strings
INVALID_SHEET=Excel \u6A21\u677F\u65E0\u6548\u3002\u8BF7\u53C2\u89C1\u7528\u6237\u6307\u5357\u4EE5\u83B7\u53D6\u6709\u5173\u6A21\u677F\u4E2D\u6807\u8BB0\u7528\u6CD5\u7684\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\u3002
DUPLICATE_TAG_FOUND=\u68C0\u67E5\u6240\u7528\u7684\u6A21\u677F\u662F\u5426\u5305\u542B\u91CD\u590D\u7684\u6807\u8BB0\u3002\u6570\u636E\u5DE5\u4F5C\u8868\u9700\u8981\u5305\u542B\u5F00\u59CB\u3001\u7ED3\u675F\u53CA\u89C4\u5219\u6807\u8BB0\u3002\u8BF4\u660E\u5DE5\u4F5C\u8868\u9700\u8981\u5305\u542B\u5FFD\u7565\u6807\u8BB0\u3002\u8BF7\u53C2\u89C1\u7528\u6237\u6307\u5357\u4EE5\u83B7\u53D6\u6709\u5173\u6A21\u677F\u4E2D\u6807\u8BB0\u7528\u6CD5\u7684\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\u3002
MISSING_TAG=\u68C0\u67E5\u6240\u7528\u7684\u6A21\u677F\u662F\u5426\u5305\u542B\u9002\u5F53\u7684\u6807\u8BB0\u3002\u6570\u636E\u5DE5\u4F5C\u8868\u9700\u8981\u5305\u542B\u5F00\u59CB\u3001\u7ED3\u675F\u53CA\u89C4\u5219\u6807\u8BB0\u3002\u8BF4\u660E\u5DE5\u4F5C\u8868\u9700\u8981\u5305\u542B\u5FFD\u7565\u6807\u8BB0\u3002\u8BF7\u53C2\u89C1\u7528\u6237\u6307\u5357\u4EE5\u83B7\u53D6\u6709\u5173\u6A21\u677F\u4E2D\u6807\u8BB0\u7528\u6CD5\u7684\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\u3002
ORDER_INVALID={0} \u5DE5\u4F5C\u8868\uFF08\u5C5E\u4E8E Excel \u6A21\u677F {1}\uFF09\u7684\u89C4\u5219\u8868\u5217\u7684\u987A\u5E8F\u65E0\u6548\u3002\u8BF7\u68C0\u67E5\u987A\u5E8F\u662F\u5426\u4E3A\u201C\u7EA7\u522B-\u5173\u7CFB-\u7C7B\u578B-\u4F20\u9012\u6A21\u5F0F\u201D\u3002\u8BF7\u53C2\u89C1\u7528\u6237\u6307\u5357\u4EE5\u83B7\u53D6\u6709\u5173\u6A21\u677F\u4E2D\u5217\u7528\u6CD5\u7684\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\u3002
INSUFFICIENT_PRIVILEDGE=\u6CA1\u6709\u8DB3\u591F\u7684\u7279\u6743\u6765\u7F16\u8F91\u6216\u66F4\u65B0\u6A21\u677F\u3002
COLUMNS_NOT_FOUND=\u68C0\u67E5 {0} \u5DE5\u4F5C\u8868\uFF08\u5C5E\u4E8E Excel \u6A21\u677F {1}\uFF09\u4E2D\u662F\u5426\u7F3A\u5C11\u201C\u7EA7\u522B-\u5173\u7CFB-\u7C7B\u578B-\u4F20\u9012\u6A21\u5F0F\u201D\u4E2D\u7684\u4E00\u4E2A\u6216\u591A\u4E2A\u5217\u3002\u8BF7\u53C2\u89C1\u7528\u6237\u6307\u5357\u4EE5\u83B7\u53D6\u6709\u5173\u6A21\u677F\u4E2D\u5217\u7528\u6CD5\u7684\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\u3002
RULETABLE_NOT_FOUND={0} \u5DE5\u4F5C\u8868\uFF08\u5C5E\u4E8E Excel \u6A21\u677F {1}\uFF09\u4E2D\u627E\u4E0D\u5230\u89C4\u5219\u8868\u3002\u8BF7\u53C2\u89C1\u7528\u6237\u6307\u5357\u4EE5\u83B7\u53D6\u6709\u5173\u6A21\u677F\u4E2D\u89C4\u5219\u8868\u7684\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\u3002
################################################################
# Language_Tbl validation
################################################################
DUPLICATE_LANGUAGE_FOUND=\u8868\u4E2D\u5DF2\u5B58\u5728\u8BED\u8A00 {0}\u3002
#################################################################
# License Usage Warning Messages
#################################################################
graceDaysWarning=\u672C\u6708\u7528\u91CF\u5DF2\u8D85\u51FA\u4E34\u65F6\u7528\u6237\u8BB8\u53EF\u8BC1\u6240\u5141\u8BB8\u7684\u4F7F\u7528\u9650\u5236\u3002\n\u5728\u989D\u5916\u4F7F\u7528 {0} \u4E2A\u552F\u4E00\u65E5\u5386\u65E5\u6216 {1} \u5C0F\u65F6\u540E\uFF0C\u672C\u6708\u767B\u5F55 Teamcenter \u5C06\u88AB\u7981\u7528\u3002
usedDaysWarning=\u5728\u8FBE\u5230\u4E34\u65F6\u7528\u6237\u7684\u4F7F\u7528\u9650\u5236\u4E4B\u524D\uFF0C\u672C\u6708\u5269\u4F59 {0} \u4E2A\u552F\u4E00\u65E5\u5386\u65E5\u6216 {1} \u5C0F\u65F6\u7684\u7528\u91CF\u3002
#################################################################
# Import File name length validation
#################################################################
FILE_NAME_LENGTH_EXCEEDED=\u6587\u4EF6\u540D {0} \u7684\u957F\u5EA6\u5DF2\u8D85\u51FA\u5141\u8BB8\u7684\u9650\u5EA6\u3002\u5141\u8BB8\u7684\u6700\u5927\u957F\u5EA6\u4E3A {1} \u5B57\u7B26\uFF08\u5305\u62EC\u6587\u4EF6\u6269\u5C55\u540D\uFF09\u3002
#################################################################
# TCPreferenceService - Display value for enumerations
#################################################################
#1. Preference types
STRING_TYPE=\u5B57\u7B26\u4E32\u578B
INTEGER_TYPE=\u6574\u578B
LOGICAL_TYPE=\u903B\u8F91\u578B
DOUBLE_TYPE=\u53CC\u7CBE\u5EA6\u578B
DATE_TYPE=\u65E5\u671F\u578B
#2. Preference locations
USER_LOCATION=\u7528\u6237
ROLE_LOCATION=\u89D2\u8272
GROUP_LOCATION=\u7EC4
OVERLAY_LOCATION=\u53E0\u52A0
COTS_LOCATION=\u73B0\u6210\u7684
ENV_VARIABLE_LOCATION=\u73AF\u5883\u53D8\u91CF
#TODO - 013926 - remove this resource for phase III
SITE_LOCATION=\u7AD9\u70B9
#3. Preference protection scopes
USER_PROTECTION_SCOPE=\u7528\u6237
ROLE_PROTECTION_SCOPE=\u89D2\u8272
GROUP_PROTECTION_SCOPE=\u7EC4
SITE_PROTECTION_SCOPE=\u7AD9\u70B9
SYSTEM_PROTECTION_SCOPE=\u7CFB\u7EDF
#4. For the tooltip in Edit/Options - Definition and Details panel
userLocation.TEXT=\u7528\u6237\uFF1A{0}
userLocation.Id_error.TEXT=\u65E0\u7528\u6237 ID
roleLocation.TEXT=\u89D2\u8272\uFF1A{0}
groupLocation.TEXT=\u7EC4\uFF1A{0}
siteLocation.TEXT=\u7AD9\u70B9
environment.TEXT=\u73AF\u5883\u53D8\u91CF
ttt=\u65E0\u6CD5\u5BFC\u5165\u6587\u4EF6

@ -0,0 +1,52 @@
package com.connor.signoff;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
/**
* The activator class controls the plug-in life cycle
*/
public class Activator extends AbstractUIPlugin {
// The plug-in ID
public static final String PLUGIN_ID = "com.connor.signoff"; //$NON-NLS-1$
// The shared instance
private static Activator plugin;
/**
* The constructor
*/
public Activator() {
}
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
*/
@Override
public void start(BundleContext context) throws Exception {
super.start(context);
plugin = this;
}
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
*/
@Override
public void stop(BundleContext context) throws Exception {
plugin = null;
super.stop(context);
}
/**
* Returns the shared instance
*
* @return the shared instance
*/
public static Activator getDefault() {
return plugin;
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,50 @@
package com.teamcenter.rac.kernel;
import java.util.ArrayList;
import java.util.List;
import com.teamcenter.rac.util.Registry;
// Referenced classes of package com.teamcenter.rac.kernel:
// InterfaceTCSessionClose, AEShell
public class AEShellManager implements InterfaceTCSessionClose {
public AEShellManager() {
}
public void addShell(AEShell aeshell) {
AEShells.add(aeshell);
}
public void removeShell(AEShell aeshell) {
AEShells.remove(aeshell);
}
public AEShell[] getShells() {
return (AEShell[]) AEShells.toArray(new AEShell[AEShells.size()]);
}
public int size() {
return AEShells.size();
}
public void sessionClose() throws Exception {
if (!AEShells.isEmpty())
throw new Exception(Registry.getRegistry(this).getString(
"shellsRunning"));
else
return;
}
private final List AEShells = new ArrayList();
}
/*
* DECOMPILATION REPORT
*
* Decompiled from:
* F:\Teamcenter10.1.4Env\portal\plugins\com.teamcenter.rac.kernel_10000.1.0.jar
* Total time: 97 ms Jad reported messages/errors: Exit status: 0 Caught
* exceptions:
*/

@ -0,0 +1,41 @@
package com.teamcenter.rac.kernel;
public class JFomPdfBean {
private Float w = 0.0f;
private Float h = 0.0f;
private Float wi = 0.0f;
private Float hi = 0.0f;
public Float getW() {
return w;
}
public void setW(Float w) {
this.w = w;
}
public Float getH() {
return h;
}
public void setH(Float h) {
this.h = h;
}
public Float getWi() {
return wi;
}
public void setWi(Float wi) {
this.wi = wi;
}
public Float getHi() {
return hi;
}
public void setHi(Float hi) {
this.hi = hi;
}
}

@ -0,0 +1,387 @@
package com.teamcenter.rac.kernel;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;
import com.itextpdf.text.Element;
import com.itextpdf.text.Image;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfGState;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
public class JFomPdfOperateMethodUtil {
public List<JFomPdfBean> beanList;
// public static void main(String[] args) {
// JFomPdfOperateMethodUtil util = new JFomPdfOperateMethodUtil();
// try {
// util.addPdfMark(
// "C:\\Users\\hub\\Desktop\\继峰PDF\\A4-JFY-210x297.pdf",
// "C:\\Users\\hub\\Desktop\\继峰PDF\\A4-JFY-210x297_1.pdf",
// "C:\\Users\\hub\\Desktop\\继峰PDF\\受控章.tif");
// System.out.println(System.getenv("TEMP"));
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// }
public static void main(String[] args) {
JFomPdfOperateMethodUtil util = new JFomPdfOperateMethodUtil();
try {
StringBuffer sb = new StringBuffer();
sb.append("设计=胡冰1|设计时间=201608021|");
sb.append("标准化=胡冰2|标准化时间=201608022|");
sb.append("审核=胡冰3|审核时间=201608023|");
sb.append("工艺=胡冰4|工艺时间=201608024|");
sb.append("批准=胡冰5|批准时间=201608025");
util.writePdf("F:\\Connor项目管理\\东睦项目\\PDF签名模版\\A4.pdf", "F:\\Connor项目管理\\东睦项目\\PDF签名模版\\A4_2.pdf",
sb.toString());
System.out.println(System.getenv("TEMP"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public JFomPdfOperateMethodUtil() {
this.beanList = new ArrayList<JFomPdfBean>();
try {
// 获取配置文件中的信息
getBeanMsgList();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* properties
*
* @throws IOException
*/
public void getBeanMsgList() throws IOException {
Properties properties = new Properties();
InputStream is = null;
is = this.getClass().getClassLoader().getResourceAsStream("com/teamcenter/rac/kernel/PDFInfo.properties");
properties.load(is);
// properties.getProperty("role_name");
for (int i = 0; true; i++) {
// System.out.println();
String str = properties.getProperty("A" + i);
if (str == null) {
break;
}
String[] values = str.split(",");
if (values != null && values.length == 4) {
JFomPdfBean bean = new JFomPdfBean();
Float fhValue = 0.0f;
Float fwValue = 0.0f;
Float fhiValue = 0.0f;
Float fwiValue = 0.0f;
try {
fhValue = Float.parseFloat(values[0]);
fwValue = Float.parseFloat(values[1]);
fhiValue = Float.parseFloat(values[2]);
fwiValue = Float.parseFloat(values[3]);
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
bean.setH(fhValue);
bean.setW(fwValue);
bean.setHi(fhiValue);
bean.setWi(fwiValue);
this.beanList.add(bean);
}
}
is.close();
}
/**
*
*
* @param args
*/
public static float getPercent(float h, float w) {
float p2 = 10.0f;
// p2 = 820 / w * 100;
System.out.println(p2);
return p2;
}
public void writePdf(String inPutPath, String outPutPath, String msg) throws Exception {
float sizeOff = 2.8346f;
HashMap<String, String> signoffMapping = new HashMap<>();
String[] textS = msg.split("\\|");
if (textS != null)
for (String text : textS) {
String[] strS = text.split("=");
System.out.println(strS.length);
if (strS != null && strS.length == 2)
signoffMapping.put(strS[0], strS[1]);
}
System.out.println(textS.length);
// PDF 输入文件
PdfReader reader = new PdfReader(inPutPath, "PDF".getBytes());
// PDF 输出文件
PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(outPutPath));
// 水印图片
// 获取PDF的页数
int pageSize = reader.getNumberOfPages();
for (int i = 1; i <= pageSize; i++) {
Rectangle rectangle = reader.getPageSize(i);
JFomPdfBean fposition = getSize2(rectangle);
int x = new BigDecimal(fposition.getH() / sizeOff).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
int y = new BigDecimal(fposition.getW() / sizeOff).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
float xx = 0;
float yy = 0;
float xxx = 0;
float yyy = 0;
// A2
if (x > 590 && x < 600 && y > 415 && y < 425) {
xx = 422;
yy = 29;
}
// A3
else if (x > 415 && x < 425 && y > 292 && y < 302) {
xx = 246;
yy = 29;
}
// A4
else if (y > 292 && y < 302 && x > 205 && x < 215) {
xx = 38;
yy = 29;
}
System.out.println(x + " | " + y);
PdfContentByte over = stamp.getOverContent(i);
over.beginText();
BaseFont bf = BaseFont.createFont("c://windows//fonts//simsun.ttc,1", BaseFont.IDENTITY_H,
BaseFont.EMBEDDED);
// BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA,//
// STSongStd-Light
// BaseFont.WINANSI, false);
over.setFontAndSize(bf, 9);
over.setTextMatrix(30, 30);
Set<Entry<String, String>> set = signoffMapping.entrySet();
String value = "";
for (Entry<String, String> entry : set) {
value = entry.getValue();
switch (entry.getKey()) {
case "设计":
xxx = xx;
yyy = yy;
over.showTextAligned(Element.ALIGN_LEFT, value, (xxx) * sizeOff, yyy * sizeOff, 0);
break;
case "设计时间":
xxx = xx + 12;
yyy = yy;
over.showTextAligned(Element.ALIGN_LEFT, value, (xxx) * sizeOff, yyy * sizeOff, 0);
break;
case "标准":
xxx = xx + 40;
yyy = yy;
over.showTextAligned(Element.ALIGN_LEFT, value, (xxx) * sizeOff, yyy * sizeOff, 0);
break;
case "标准时间":
xxx = xx + 52;
yyy = yy;
over.showTextAligned(Element.ALIGN_LEFT, value, (xxx) * sizeOff, yyy * sizeOff, 0);
break;
case "审核":
xxx = xx;
yyy = yy - 15;
over.showTextAligned(Element.ALIGN_LEFT, value, (xxx) * sizeOff, yyy * sizeOff, 0);
break;
case "审核时间":
xxx = xx + 12;
yyy = yy - 15;
over.showTextAligned(Element.ALIGN_LEFT, value, (xxx) * sizeOff, yyy * sizeOff, 0);
break;
case "工艺":
xxx = xx;
yyy = yy - 21;
over.showTextAligned(Element.ALIGN_LEFT, value, (xxx) * sizeOff, yyy * sizeOff, 0);
break;
case "工艺时间":
xxx = xx + 12;
yyy = yy - 21;
over.showTextAligned(Element.ALIGN_LEFT, value, (xxx) * sizeOff, yyy * sizeOff, 0);
break;
case "批准":
xxx = xx + 40;
yyy = yy - 21;
over.showTextAligned(Element.ALIGN_LEFT, value, (xxx) * sizeOff, yyy * sizeOff, 0);
break;
case "批准时间":
xxx = xx + 52;
yyy = yy - 21;
over.showTextAligned(Element.ALIGN_LEFT, value, (xxx) * sizeOff, yyy * sizeOff, 0);
break;
default:
break;
}
System.out.println(xxx + "/" + yyy);
}
over.endText();
}
stamp.close();// 关闭
reader.close();// 关闭
File tempfile = new File(inPutPath);
if (tempfile.exists()) {
// 删除原文件
// tempfile.delete();
}
}
/**
* pdf
*
* @param InPdfFile pdf
* @param outPdfFile
* @param markImagePath
* @param pageSize pdfexcelpdfexcel
* reader.getNumberOfPages()pdf
* @throws Exception
*/
public void addPdfMark(String InPdfFile, String outPdfFile, String markImagePath) throws Exception {
// PDF 输入文件
PdfReader reader = new PdfReader(InPdfFile, "PDF".getBytes());
// PDF 输出文件
PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(outPdfFile));
// 水印图片
Image img = Image.getInstance(markImagePath);
float imgW = img.getScaledWidth();
float imgH = img.getScaledHeight();
// 获取PDF的页数
int pageSize = reader.getNumberOfPages();
for (int i = 1; i <= pageSize; i++) {
Rectangle rectangle = reader.getPageSize(i);
Float[] fposition = getSize(rectangle);
// 设置水印的插入位置
img.setAbsolutePosition(fposition[0] - imgW, fposition[1] - imgH);
// 向PDF输出文件中插入水印
PdfContentByte under = stamp.getOverContent(i);//
stamp.getUnderContent(i);
PdfGState gs = new PdfGState();
gs.setFillOpacity(0.4f);// 设置透明度为0.2
under.setGState(gs);
under.addImage(img);
}
stamp.close();// 关闭
reader.close();// 关闭
File tempfile = new File(InPdfFile);
if (tempfile.exists()) {
// 删除原文件
// tempfile.delete();
}
}
public void addPdfMark(String InPdfFile, String outPdfFile) throws Exception {
InputStream is = null;
System.getenv("TEMP");
is = this.getClass().getClassLoader().getResourceAsStream("com/connor/jfeng/pdf/operate/PDFInfo.properties");
is.close();
}
public JFomPdfBean getSize2(Rectangle rectangle) {
float toleft = rectangle.getLeft();
float tobottom = rectangle.getBottom();
float toright = rectangle.getRight();
float totop = rectangle.getTop();
JFomPdfBean bean = new JFomPdfBean();
bean.setH(toright - toleft);
bean.setW(totop - tobottom);
return bean;
}
/**
* PDF
*
* @param rectangle
* @return
*/
public Float[] getSize(Rectangle rectangle) {
Float[] sizef = new Float[2];
float toleft = rectangle.getLeft();
float tobottom = rectangle.getBottom();
float toright = rectangle.getRight();
float totop = rectangle.getTop();
JFomPdfBean bean = new JFomPdfBean();
bean.setH(toright - toleft);
bean.setW(totop - tobottom);
return getPosization(bean);
}
/**
* 2.8346
*
* @param bean
* @return
*/
public Float[] getPosization(JFomPdfBean bean) {
Float size = 2.8346f;
Float h = (float) (bean.getH() / size);
Float w = (float) (bean.getW() / size);
System.out.println(h + " | " + w);
Float[] sizef = new Float[] { 0.0f, 0.0f };
if (this.beanList != null) {
for (int i = 0; i < this.beanList.size(); i++) {
JFomPdfBean beant = beanList.get(i);
// System.out.println(bean.getH() + " | "+ beant);
if ((beant.getH() - 10) < h && h < (beant.getH() + 10) && (beant.getW() - 10) < w
&& w < (beant.getW() + 10)) {
sizef[0] = beant.getHi() * size;
sizef[1] = beant.getWi() * size;
break;
}
if ((beant.getH() - 10) < w && w < (beant.getH() + 10) && (beant.getW() - 10) < h
&& h < (beant.getW() + 10)) {
sizef[0] = beant.getHi() * size;
sizef[1] = beant.getWi() * size;
break;
}
}
}
return sizef;
}
}

@ -0,0 +1,300 @@
package com.teamcenter.rac.kernel;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Vector;
/**
* 此类继承系统InterfaceDatasetAction类用于重写preProcess方法在打开 数据集 时前操作。
*
* @author yangh
* @version 1.0, 2015-01-6
*/
public class OpenDatasetSignoff implements InterfaceDatasetAction {
@Override
public boolean postProcess(TCComponentDataset arg0, String arg1, int arg2) {
// TODO Auto-generated method stub
return false;
}
@SuppressWarnings("deprecation")
@Override
public int preProcess(TCComponentDataset tccomponentdataset, AEShell arg1,
int arg2) {
// System.out.println(arg1.askSelectedFileName());
// TODO Auto-generated method stub
TCPreferenceService tcp = tccomponentdataset.getSession()
.getPreferenceService();
// type+"_signoff" type+"_signoff"+"_attr"
// IMAN_master_form_rev:FormType
// Rev.item_id=域名
// Form.object_name=域名
try {
StringBuffer itemMsgSb = new StringBuffer();
TCComponentItemRevision tempRev = (TCComponentItemRevision) tccomponentdataset
.getReferenceProperty("item_revision");// 获得当前数据集所在版本对象
if (tempRev == null) {
return 0;
}
tempRev.refresh();
if (tempRev != null) {
if (tccomponentdataset.getType().equals("TM2_AutoCAD")
|| tccomponentdataset.getType().equals("JF3_DWG")) {
openCad();
String tempType = tempRev.getType();
this.getClass().getProtectionDomain().getCodeSource()
.getLocation().getPath();
String itemID = "";
if (tempType.equals("TM2_TedrawingRevision")) {
TCComponent[] comps = tempRev
.getReferenceListProperty("IMAN_master_form_rev");
if (comps.length > 0)
itemID = comps[0].getStringProperty("tm2_tuhao");
} else {
itemID = tempRev.getStringProperty("item_id");
}
itemMsgSb
.append(itemID)
.append("|")
.append(tempRev
.getStringProperty("item_revision_id"));
// tempRev.getStringProperty("item_revision_id");
String fileName = System.getenv("TEMP")
+ "\\open_cad_info.txt";
try {
BufferedWriter wr = new BufferedWriter(new FileWriter(
fileName));
wr.write(itemMsgSb.toString());
wr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("版本类型:" + tempRev.getType());
String str1 = tcp.getString(
TCPreferenceService.TC_preference_site,
tempRev.getType() + "_signoff");
String[] str2 = tcp.getStringArray(
TCPreferenceService.TC_preference_site,
tempRev.getType() + "_signoff_attr");
if (str1 != null && str1.indexOf(":") > 0 && str2 != null
&& str2.length > 0) {// 含有获取Form的属性情况
String rel = str1.split(":")[0];
String formType = str1.split(":")[1];
System.out.println("关系名称:" + rel);
TCComponent[] subComponent = tempRev
.getRelatedComponents(rel);
for (int i = 0; i < subComponent.length; i++) {
subComponent[i].refresh();
System.out.println("遍历的Form类型"
+ subComponent[i].getType() + " ReadForm ="
+ formType);
if (subComponent[i] instanceof TCComponentForm
&& subComponent[i].getType().equals(formType)) {
System.out.println("ReadForm");
DatasetParser dp = new DatasetParser(tempRev,
(TCComponentForm) subComponent[i]);
Vector<String> txtFileContent = dp
.parsePreference(str2);
String txtFilePath = System.getenv("TEMP")
+ "\\signoff.txt";// 为了VB程序操作的方便将生成的txt文档的路径和名字写死了。
TxtFileRWHelper helper = new TxtFileRWHelper(
txtFilePath);
try {
helper.writeTxtFile(txtFileContent);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
} else {
System.out.println("NOT FORM");
}
}
} else if (str2 != null && str2.length > 0) {// 只获取版本属性情况
DatasetParser dp = new DatasetParser(tempRev);
Vector<String> txtFileContent = dp.parsePreference(str2);
String txtFilePath = System.getenv("TEMP")
+ "\\signoff.txt";// 为了VB程序操作的方便将生成的txt文档的路径和名字写死了。
TxtFileRWHelper helper = new TxtFileRWHelper(txtFilePath);
try {
System.out.println("txtFileContent============"
+ txtFileContent);
helper.writeTxtFile(txtFileContent);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
} catch (TCException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
public void openCad() {
String path = this.getClass().getProtectionDomain().getCodeSource()
.getLocation().getPath();
String exePath = path.substring(1, path.indexOf("com.connor.signoff"))
.replace("/", "\\");
exePath = exePath + "";
File file = new File(exePath);
if (file != null && file.exists()) {
System.out.println("执行注册表修改");
Runtime rn = Runtime.getRuntime();
Process p = null;
try {
p = rn.exec("\"" + exePath + "\"");
} catch (Exception e) {
System.out.println("Error exec!");
}
} else {
System.out.println("不存在" + exePath + "文件");
}
}
/*
* 解析数据集
*/
class DatasetParser {
private TCComponentItemRevision rev;
private TCComponentForm form;
public DatasetParser(TCComponentItemRevision rev, TCComponentForm form) {
this.rev = rev;
this.form = form;
}
public DatasetParser(TCComponentItemRevision rev) {
this.rev = rev;
}
// 根据首选项值获得对应对象的内容并返回需要写入txt文档中的内容
public Vector<String> parsePreference(String[] preferenceValues)
throws TCException {
Vector<String> realm_attr = new Vector<String>();// “域名=属性值”的集合
for (int i = 0; i < preferenceValues.length; i++) {
String[] obj_attrs = preferenceValues[i].split("=");
if (obj_attrs.length == 2) {
int index = obj_attrs[0].indexOf('.');
if (index != -1) {
String obj = obj_attrs[0].substring(0, index);
String att = obj_attrs[0].substring(index + 1);
StringBuffer sb = new StringBuffer(obj_attrs[1]);// 域名
sb.append("="); // =
if ("Rev".equals(obj)) { // 属性值
String value = "";
String proValue = rev.getProperty(att);
if (proValue != null)
value = proValue;
sb.append(value);
} else if ("Form".equals(obj)) {
String value = "";
String proValue = form.getProperty(att);
if (proValue != null)
value = proValue;
sb.append(value);
}
realm_attr.add(sb.toString());
} else {
return null;
}
} else {
return null;
}
}
return realm_attr;
}
}
/*
* 读写Text文档
*/
class TxtFileRWHelper {
private File txtFile = null;
private BufferedReader br = null;
private BufferedWriter bw = null;
public TxtFileRWHelper(String txtFilePath) {
this.txtFile = new File(txtFilePath);
if (!this.txtFile.exists()) {
try {
this.txtFile.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
// 读 Text文件
// 返回值Text文件内容Vector每个成员相当于一行数据
public Vector<String> readTxtFile() throws IOException {
Vector<String> txtFileContent = new Vector<String>();
br = new BufferedReader(new FileReader(txtFile));
if (!txtFile.canRead()) {
txtFile.setReadable(true);
}
String line = br.readLine();
while (line != null) {
txtFileContent.add(line);
line = br.readLine();
}
br.close();
br = null;
return txtFileContent;
}
// 写text文件
// 入参Vector<String>Vector中的每个成员作为一行数据处理
public void writeTxtFile(Vector<String> txtFileContent)
throws IOException {
bw = new BufferedWriter(new FileWriter(txtFile));
if (!txtFile.canWrite()) {
txtFile.setWritable(true);
}
for (int i = 0; i < txtFileContent.size(); i++) {
bw.write(txtFileContent.get(i));
if (i != txtFileContent.size() - 1) {
bw.write("|");
}
}
bw.close();
bw = null;
}
// 删除text 文件
public void deleteTxtFile() {
if (txtFile.exists()) {
txtFile.delete();
}
}
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,145 @@
package com.teamcenter.rac.kernel;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
import com.teamcenter.rac.util.FileUtility;
import com.teamcenter.rac.util.Registry;
// Referenced classes of package com.teamcenter.rac.kernel:
// AbstractDatasetOpenPreAction, AEShell, TCComponentDataset, TCSession,
// TCComponentItemRevision, TCComponent, TCComponentItem, TCTextService
public class OpentionAction extends AbstractDatasetOpenPreAction {
public OpentionAction(AEShell aeshell) {
super(aeshell);
System.out.println("打开数据集操作");
}
@Override
protected void cleanSession() {
// TODO Auto-generated method stub
// super.cleanSession();
System.out.println("清楚路径");
TCComponentDataset tccomponentdataset = shell.askSelectedDataset();
TCSession tcsession = tccomponentdataset.getSession();
AEShellManager aeshellmanager = tcsession.getAEShellManager();
try {
String s = tccomponentdataset.getWorkingDir();
// tccomponentdataset.removeWorkingDir(s);
} catch (TCException _ex) {
}
aeshellmanager.removeShell(shell);
}
@Override
public void startPreAction() {
selectedDataset = shell.askSelectedDataset();
session = selectedDataset.getSession();
aliasDatasetName = selectedDataset.toString();
referenceName = shell.askSelectedNamedRef();
appReg = Registry.getRegistry(this);
try {
userId = session.getUserName();
AIFComponentContext aaifcomponentcontext[] = null;
if (selectedDataset != null) {
aliasDatasetType = selectedDataset.getType();
aaifcomponentcontext = selectedDataset.getPrimary();
}
if (aaifcomponentcontext[0] != null) {
TCComponentItemRevision tccomponentitemrevision = (TCComponentItemRevision) aaifcomponentcontext[0]
.getComponent();
TCComponent atccomponent[] = selectedDataset
.getNamedRefComponents("Alias_Wire");
aliasDatasetUid = selectedDataset.getUid();
if (atccomponent.length > 0)
fileUid = atccomponent[0].getUid();
revID = tccomponentitemrevision.getProperty("item_revision_id");
itemID = tccomponentitemrevision.getItem().getProperty(
"item_id");
String s = aaifcomponentcontext[0].getContext().toString();
TCTextService tctextservice = session.getTextService();
String s1 = tctextservice.getTextValue(s);
relationName = appReg.getString(s1);
}
} catch (Exception exception) {
System.out.println(exception.getClass().getName());
}
createInputXMLFile();
}
private void createInputXMLFile() {
String s = FileUtility.getExportDir();
String s1 = aliasDatasetName;
ouputXMLFilePath = (new StringBuilder(String.valueOf(s)))
.append(File.separator).append(s1).append(".xml").toString();
try {
aliasXMLFile = new File(ouputXMLFilePath);
aliasXMLWriter = new PrintWriter(new BufferedWriter(new FileWriter(
aliasXMLFile)), true);
aliasXMLWriter.println("<?xml version=\"1.0\"?>");
aliasXMLWriter.println("<AliasTcEncapsulationInfo>");
aliasXMLWriter.println((new StringBuilder("<userId>"))
.append(userId).append("</userId>").toString());
aliasXMLWriter.println((new StringBuilder("<itemId>"))
.append(itemID).append("</itemId>").toString());
aliasXMLWriter.println((new StringBuilder("<itemRevisionId>"))
.append(revID).append("</itemRevisionId>").toString());
aliasXMLWriter.println((new StringBuilder("<datasetType>"))
.append(aliasDatasetType).append("</datasetType>")
.toString());
aliasXMLWriter.println((new StringBuilder("<datasetName>"))
.append(aliasDatasetName).append("</datasetName>")
.toString());
aliasXMLWriter.println((new StringBuilder("<referenceType>"))
.append(referenceName).append("</referenceType>")
.toString());
aliasXMLWriter.println((new StringBuilder("<referenceName> "))
.append(referenceName).append("</referenceName>")
.toString());
aliasXMLWriter.println((new StringBuilder("<relationship>"))
.append(relationName).append("</relationship>").toString());
aliasXMLWriter
.println((new StringBuilder("<datasetUid>"))
.append(aliasDatasetUid).append("</datasetUid>")
.toString());
aliasXMLWriter.println((new StringBuilder("<fileUid>"))
.append(fileUid).append("</fileUid>").toString());
aliasXMLWriter.println("</AliasTcEncapsulationInfo>");
} catch (Exception exception) {
System.out.println(exception.getClass().getName());
}
}
// private static final Logger logger =
// Logger.getLogger(com/teamcenter/rac/kernel/AliasOpenAction);
private File aliasXMLFile;
private PrintWriter aliasXMLWriter;
private TCSession session;
private TCComponentDataset selectedDataset;
private Registry appReg;
private String itemID;
private String revID;
private String aliasDatasetName;
private String referenceName;
private String relationName;
private String userId;
private String aliasDatasetType;
private String aliasDatasetUid;
private String fileUid;
public static String ouputXMLFilePath;
}
/*
* DECOMPILATION REPORT
*
* Decompiled from:
* F:\Teamcenter10.1.4Env\portal\plugins\com.teamcenter.rac.kernel_10000.1.0.jar
* Total time: 59 ms Jad reported messages/errors: Exit status: 0 Caught
* exceptions:
*/

@ -0,0 +1,18 @@
#A4
A4=210,297,159.9,202.9
#A3
A3=297,420,280,287
#A2
A2=420,594,454,410
#A1
A1=594,841,701,584
#A0
A0=841,1189,1039,821
#A01
A5=841,1682,1532,821
#A02
A6=841,2378,2228,821
#A03
A7=841,3567,3417,821
#A04
A8=841,4756,4606,821

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,48 @@
package com.teamcenter.rac.kernel;
import java.io.File;
import java.io.IOException;
public class Test {
public void getPath() {
String path = this.getClass().getProtectionDomain().getCodeSource()
.getLocation().getPath();
String exePath = path.substring(1, path.indexOf("com.connor.signoff"))
.replace("/", "\\");
File file = new File(path + "OpenCad.exe");
if (file != null && file.exists()) {
System.out.println("执行注册表修改");
} else {
System.out.println("不存在" + exePath + "文件");
}
}
public static void main(String[] args) {
String str = "item=|itemid|";
if (str.endsWith("|")) {
str = str.substring(0, str.lastIndexOf("|"));
System.out.println(str);
}
String[] strS = str.split("=");
System.out.println((strS == null || strS.length != 2) ? "" : strS[1]);
Test test = new Test();
test.getPath();
String[] cmd = new String[] { "cmd.exe", "/C", "f:\\OpenCAD.exe" };
try {
Process process = Runtime.getRuntime().exec(cmd);
process.destroy();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

@ -0,0 +1,8 @@
MSWord.ACTION_OBJECT=com.teamcenter.rac.kernel.OpenDatasetSignoff
MSWordX.ACTION_OBJECT=com.teamcenter.rac.kernel.OpenDatasetSignoff
MSExcel.ACTION_OBJECT=com.teamcenter.rac.kernel.OpenDatasetSignoff
MSExcelX.ACTION_OBJECT=com.teamcenter.rac.kernel.OpenDatasetSignoff

@ -0,0 +1,26 @@
XYPartRevision
## XYPartRevision_signoff
描述:单值,表单关系:表单类型
IMAN_master_form_rev:XYPartMaster
## XYPartRevision_signoff_attr
描述:多值,属性所在位置.属性名称+属性所在位置.属性名称=图纸上的域名属性位置支持Rev,Form,ItemRev,WhereRev,WhereForm这五种分别代表数据集所在版本版本某个关系下的表单版本所在对象版本对象通过XYPartRevision_signoff_where定义的引用关系获得的版本B版本B的版本表单
## XYPartRevision_signoff_where
描述:多值或者不配置
* 如果多值,引用关系:引用对象的类型
* 如果不配置就用XYPartRevision_signoff_attr配置的首选项获取属性配置
Loading…
Cancel
Save