]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/Clone.java
Adjusted sizes to accommodate Windows, iMac and Linux GUI
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / Clone.java
index 8f1ec6c6bab4e9ab0257256769cc3a00bdb9af4a..9253793ca966d137311af29b506413fff59a26a9 100644 (file)
@@ -38,10 +38,10 @@ import org.tianocore.frameworkwizard.common.DataValidation;
 import org.tianocore.frameworkwizard.common.FileOperation;\r
 import org.tianocore.frameworkwizard.common.IFileFilter;\r
 import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.OpenFile;\r
 import org.tianocore.frameworkwizard.common.SaveFile;\r
 import org.tianocore.frameworkwizard.common.Tools;\r
 import org.tianocore.frameworkwizard.common.Identifications.Identification;\r
-import org.tianocore.frameworkwizard.common.Identifications.OpenFile;\r
 import org.tianocore.frameworkwizard.common.ui.IDialog;\r
 import org.tianocore.frameworkwizard.common.ui.IFrame;\r
 import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
@@ -121,7 +121,7 @@ public class Clone extends IDialog {
     private JTextField getJTextFieldType() {\r
         if (jTextFieldType == null) {\r
             jTextFieldType = new JTextField();\r
-            jTextFieldType.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
+            jTextFieldType.setBounds(new java.awt.Rectangle(210, 10, 320, 20));\r
             jTextFieldType.setEditable(false);\r
         }\r
         return jTextFieldType;\r
@@ -135,7 +135,7 @@ public class Clone extends IDialog {
     private JTextField getJTextFieldSource() {\r
         if (jTextFieldSource == null) {\r
             jTextFieldSource = new JTextField();\r
-            jTextFieldSource.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
+            jTextFieldSource.setBounds(new java.awt.Rectangle(210, 35, 320, 20));\r
             jTextFieldSource.setEditable(false);\r
         }\r
         return jTextFieldSource;\r
@@ -149,7 +149,7 @@ public class Clone extends IDialog {
     private JButton getJButtonBrowse() {\r
         if (jButtonBrowse == null) {\r
             jButtonBrowse = new JButton();\r
-            jButtonBrowse.setBounds(new java.awt.Rectangle(395, 60, 85, 20));\r
+            jButtonBrowse.setBounds(new java.awt.Rectangle(445, 85, 85, 20));\r
             jButtonBrowse.setText("Browse");\r
             jButtonBrowse.addActionListener(this);\r
         }\r
@@ -164,7 +164,7 @@ public class Clone extends IDialog {
     private JTextField getJTextFieldFilePath() {\r
         if (jTextFieldFilePath == null) {\r
             jTextFieldFilePath = new JTextField();\r
-            jTextFieldFilePath.setBounds(new java.awt.Rectangle(160, 60, 230, 20));\r
+            jTextFieldFilePath.setBounds(new java.awt.Rectangle(210, 85, 230, 20));\r
         }\r
         return jTextFieldFilePath;\r
     }\r
@@ -177,7 +177,7 @@ public class Clone extends IDialog {
     private JTextField getJTextFieldBaseName() {\r
         if (jTextFieldBaseName == null) {\r
             jTextFieldBaseName = new JTextField();\r
-            jTextFieldBaseName.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
+            jTextFieldBaseName.setBounds(new java.awt.Rectangle(210, 110, 320, 20));\r
         }\r
         return jTextFieldBaseName;\r
     }\r
@@ -190,7 +190,7 @@ public class Clone extends IDialog {
     private JTextField getJTextFieldGuid() {\r
         if (jTextFieldGuid == null) {\r
             jTextFieldGuid = new JTextField();\r
-            jTextFieldGuid.setBounds(new java.awt.Rectangle(160, 135, 230, 20));\r
+            jTextFieldGuid.setBounds(new java.awt.Rectangle(210, 135, 230, 20));\r
         }\r
         return jTextFieldGuid;\r
     }\r
@@ -203,7 +203,7 @@ public class Clone extends IDialog {
     private JTextField getJTextFieldVersion() {\r
         if (jTextFieldVersion == null) {\r
             jTextFieldVersion = new JTextField();\r
-            jTextFieldVersion.setBounds(new java.awt.Rectangle(160, 160, 320, 20));\r
+            jTextFieldVersion.setBounds(new java.awt.Rectangle(210, 160, 320, 20));\r
         }\r
         return jTextFieldVersion;\r
     }\r
@@ -216,7 +216,7 @@ public class Clone extends IDialog {
     private JButton getJButtonOk() {\r
         if (jButtonOk == null) {\r
             jButtonOk = new JButton();\r
-            jButtonOk.setBounds(new java.awt.Rectangle(235, 200, 90, 20));\r
+            jButtonOk.setBounds(new java.awt.Rectangle(285, 200, 90, 20));\r
             jButtonOk.setText("Ok");\r
             jButtonOk.addActionListener(this);\r
         }\r
@@ -231,7 +231,7 @@ public class Clone extends IDialog {
     private JButton getJButtonCancel() {\r
         if (jButtonCancel == null) {\r
             jButtonCancel = new JButton();\r
-            jButtonCancel.setBounds(new java.awt.Rectangle(355, 200, 90, 20));\r
+            jButtonCancel.setBounds(new java.awt.Rectangle(405, 200, 90, 20));\r
             jButtonCancel.setText("Cancel");\r
             jButtonCancel.addActionListener(this);\r
         }\r
@@ -246,7 +246,7 @@ public class Clone extends IDialog {
     private JButton getJButtonGenerateGuid() {\r
         if (jButtonGenerateGuid == null) {\r
             jButtonGenerateGuid = new JButton();\r
-            jButtonGenerateGuid.setBounds(new java.awt.Rectangle(395, 135, 85, 20));\r
+            jButtonGenerateGuid.setBounds(new java.awt.Rectangle(445, 135, 85, 20));\r
             jButtonGenerateGuid.setText("Gen");\r
             jButtonGenerateGuid.addActionListener(this);\r
         }\r
@@ -261,7 +261,7 @@ public class Clone extends IDialog {
     private JComboBox getJComboBoxExistingPackage() {\r
         if (jComboBoxExistingPackage == null) {\r
             jComboBoxExistingPackage = new JComboBox();\r
-            jComboBoxExistingPackage.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
+            jComboBoxExistingPackage.setBounds(new java.awt.Rectangle(210, 60, 320, 20));\r
         }\r
         return jComboBoxExistingPackage;\r
     }\r
@@ -316,7 +316,7 @@ public class Clone extends IDialog {
      * @return void\r
      */\r
     private void init() {\r
-        this.setSize(493, 260);\r
+        this.setSize(550, 260);\r
         this.setContentPane(getJContentPane());\r
         this.setTitle("Clone");\r
         this.centerWindow();\r
@@ -331,28 +331,36 @@ public class Clone extends IDialog {
         init();\r
         if (mode == DataType.RETURN_TYPE_MODULE_SURFACE_AREA) {\r
             this.jTextFieldType.setText(DataType.MODULE_SURFACE_AREA);\r
-            this.jTextFieldSource.setText(oldId.getPath());\r
+            String s = oldId.getPath();\r
+            s = Tools.getRelativePath(s, Tools.getFilePathOnly(wt.getPackageIdByModuleId(oldId).getPath()));\r
+            this.jTextFieldSource.setText(Tools.convertPathToCurrentOsType(s));\r
             initExistingPackage();\r
-            this.jButtonBrowse.setEnabled(false);\r
-            this.jTextFieldFilePath.setToolTipText("Input module name here. For example, Application\\HelloWorld\\HelloWorld.msa");\r
-            this.jLabelDestinationFile.setText("Module Path\\Name");\r
+            this.jButtonBrowse.setVisible(false);\r
+            this.jTextFieldFilePath\r
+                                   .setToolTipText("Input module name here. For example, Application\\HelloWorld\\HelloWorld.msa");\r
+            this.jTextFieldFilePath.setSize(320, this.jTextFieldFilePath.getSize().height);\r
+            this.jLabelDestinationFile.setText("New Module Path and Filename");\r
         }\r
         if (mode == DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA) {\r
             this.jTextFieldType.setText(DataType.PACKAGE_SURFACE_AREA);\r
-            this.jTextFieldSource.setText(oldId.getPath());\r
+            String s = oldId.getPath();\r
+            s = Tools.getRelativePath(oldId.getPath(), Workspace.getCurrentWorkspace());\r
+            this.jTextFieldSource.setText(Tools.convertPathToCurrentOsType(s));\r
             this.jLabelBelong.setEnabled(false);\r
             this.jComboBoxExistingPackage.setEnabled(false);\r
-            this.jButtonBrowse.setEnabled(false);\r
+            this.jButtonBrowse.setVisible(false);\r
             this.jTextFieldFilePath.setToolTipText("Input package name here. For example, MdePkg\\MdePkg.fpd");\r
-            this.jLabelDestinationFile.setText("Package Path\\Name");\r
+            this.jTextFieldFilePath.setSize(320, this.jTextFieldFilePath.getSize().height);\r
+            this.jLabelDestinationFile.setText("New Package Path and Filename");\r
         }\r
         if (mode == DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA) {\r
             this.jTextFieldType.setText(DataType.PLATFORM_SURFACE_AREA);\r
             this.jTextFieldSource.setText(oldId.getPath());\r
             this.jLabelBelong.setEnabled(false);\r
             this.jComboBoxExistingPackage.setEnabled(false);\r
-            this.jTextFieldFilePath.setToolTipText("Select platform path here. For example, C:\\MyWorkspace\\EdkNt32Pkg\\Nt32.fpd");\r
-            this.jLabelDestinationFile.setText("New Platform path");\r
+            this.jTextFieldFilePath\r
+                                   .setToolTipText("Select platform path here. For example, C:\\MyWorkspace\\EdkNt32Pkg\\Nt32.fpd");\r
+            this.jLabelDestinationFile.setText("New Platform Path and Filename");\r
         }\r
         if (mode == DataType.RETURN_TYPE_WORKSPACE) {\r
             this.jTextFieldType.setText(DataType.WORKSPACE);\r
@@ -367,7 +375,7 @@ public class Clone extends IDialog {
             this.jLabelVersion.setEnabled(false);\r
             this.jTextFieldVersion.setEnabled(false);\r
             this.jTextFieldFilePath.setToolTipText("Input workspace path here. For example, C:\\MyWorkspace");\r
-            this.jLabelDestinationFile.setText("New Workspace path");\r
+            this.jLabelDestinationFile.setText("New Workspace Path");\r
         }\r
     }\r
 \r
@@ -379,29 +387,29 @@ public class Clone extends IDialog {
     private JPanel getJContentPane() {\r
         if (jContentPane == null) {\r
             jLabelBelong = new JLabel();\r
-            jLabelBelong.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
+            jLabelBelong.setBounds(new java.awt.Rectangle(15, 60, 190, 20));\r
             jLabelBelong.setText("Clone to Package");\r
             jLabelVersion = new JLabel();\r
-            jLabelVersion.setBounds(new java.awt.Rectangle(15, 160, 140, 20));\r
+            jLabelVersion.setBounds(new java.awt.Rectangle(15, 160, 190, 20));\r
             jLabelVersion.setText("Version");\r
             jLabelGuid = new JLabel();\r
-            jLabelGuid.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
+            jLabelGuid.setBounds(new java.awt.Rectangle(15, 135, 190, 20));\r
             jLabelGuid.setText("Guid");\r
             jLabelBaseName = new JLabel();\r
-            jLabelBaseName.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
+            jLabelBaseName.setBounds(new java.awt.Rectangle(15, 110, 190, 20));\r
             jLabelBaseName.setText("Base Name");\r
             jLabelDestinationFile = new JLabel();\r
-            jLabelDestinationFile.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
+            jLabelDestinationFile.setBounds(new java.awt.Rectangle(15, 85, 190, 20));\r
             jLabelDestinationFile.setText("Destination File Name");\r
             jLabelSource = new JLabel();\r
-            jLabelSource.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
+            jLabelSource.setBounds(new java.awt.Rectangle(15, 35, 190, 20));\r
             jLabelSource.setText("Source");\r
             jLabelType = new JLabel();\r
-            jLabelType.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
+            jLabelType.setBounds(new java.awt.Rectangle(15, 10, 190, 20));\r
             jLabelType.setText("Type");\r
             jContentPane = new JPanel();\r
             jContentPane.setLayout(null);\r
-            jContentPane.setSize(new java.awt.Dimension(490, 227));\r
+            jContentPane.setSize(new java.awt.Dimension(540, 227));\r
             jContentPane.add(jLabelType, null);\r
             jContentPane.add(getJTextFieldType(), null);\r
             jContentPane.add(jLabelSource, null);\r
@@ -440,16 +448,16 @@ public class Clone extends IDialog {
                 try {\r
                     this.save();\r
                 } catch (IOException e) {\r
+                    Log.wrn("Clone", e.getMessage());\r
                     Log.err("Clone", e.getMessage());\r
-                    e.printStackTrace();\r
                     return;\r
                 } catch (XmlException e) {\r
+                    Log.wrn("Clone", e.getMessage());\r
                     Log.err("Clone", e.getMessage());\r
-                    e.printStackTrace();\r
                     return;\r
                 } catch (Exception e) {\r
+                    Log.wrn("Clone", e.getMessage());\r
                     Log.err("Clone", e.getMessage());\r
-                    e.printStackTrace();\r
                     return;\r
                 }\r
             } else {\r
@@ -501,11 +509,11 @@ public class Clone extends IDialog {
         // Check Basename\r
         //\r
         if (isEmpty(this.jTextFieldBaseName.getText())) {\r
-            Log.err("Base Name couldn't be empty!");\r
+            Log.wrn("Clone", "Base Name couldn't be empty!");\r
             return false;\r
         }\r
         if (!DataValidation.isBaseName(this.jTextFieldBaseName.getText())) {\r
-            Log.err("Incorrect data type for Base Name");\r
+            Log.wrn("Clone", "Incorrect data type for Base Name");\r
             return false;\r
         }\r
 \r
@@ -513,11 +521,11 @@ public class Clone extends IDialog {
         // Check Guid\r
         //\r
         if (isEmpty(this.jTextFieldGuid.getText())) {\r
-            Log.err("Guid couldn't be empty!");\r
+            Log.wrn("Clone", "Guid couldn't be empty!");\r
             return false;\r
         }\r
         if (!DataValidation.isGuid(this.jTextFieldGuid.getText())) {\r
-            Log.err("Incorrect data type for Guid");\r
+            Log.wrn("Clone", "Incorrect data type for Guid");\r
             return false;\r
         }\r
 \r
@@ -525,11 +533,11 @@ public class Clone extends IDialog {
         // Check Version\r
         //\r
         if (isEmpty(this.jTextFieldVersion.getText())) {\r
-            Log.err("Version couldn't be empty!");\r
+            Log.wrn("Clone", "Version couldn't be empty!");\r
             return false;\r
         }\r
         if (!DataValidation.isVersion(this.jTextFieldVersion.getText())) {\r
-            Log.err("Incorrect data type for Version");\r
+            Log.wrn("Clone", "Incorrect data type for Version");\r
             return false;\r
         }\r
 \r
@@ -551,7 +559,7 @@ public class Clone extends IDialog {
      \r
      **/\r
     private boolean check() {\r
-        String src = this.jTextFieldSource.getText();\r
+        String src = this.oldId.getPath();\r
         String trg = this.jTextFieldFilePath.getText();\r
         File srcFile = new File(src);\r
         File trgFile = new File(trg);\r
@@ -560,19 +568,19 @@ public class Clone extends IDialog {
         // Common Check\r
         //\r
         if (!srcFile.exists()) {\r
-            Log.err("The source doesn't exist");\r
+            Log.wrn("Clone", "The source doesn't exist");\r
             return false;\r
         }\r
         if (isEmpty(trg)) {\r
-            Log.err("The destination file path couldn't be empty");\r
+            Log.wrn("Clone", "The destination file path couldn't be empty");\r
             return false;\r
         }\r
         if (src.equals(trg)) {\r
-            Log.err("The source and destination couldn't be same");\r
+            Log.wrn("Clone", "The source and destination couldn't be same");\r
             return false;\r
         }\r
         if (trgFile.exists()) {\r
-            Log.err("The destination already exists");\r
+            Log.wrn("Clone", "The destination already exists");\r
             return false;\r
         }\r
 \r
@@ -581,7 +589,7 @@ public class Clone extends IDialog {
         //\r
         if (mode == DataType.RETURN_TYPE_WORKSPACE) {\r
             if (trg.indexOf(src + DataType.FILE_SEPARATOR) == 0) {\r
-                Log.err("The new workspace couldn't be in current workspace!");\r
+                Log.wrn("Clone", "The new workspace couldn't be in current workspace!");\r
                 return false;\r
             }\r
         }\r
@@ -590,18 +598,18 @@ public class Clone extends IDialog {
         // Check for Module\r
         //\r
         if (mode == DataType.RETURN_TYPE_MODULE_SURFACE_AREA) {\r
-//            if (trg.indexOf(DataType.DOS_FILE_SEPARATOR) == -1 && trg.indexOf(DataType.UNIX_FILE_SEPARATOR) == -1) {\r
-//                Log.err("The module name must include a path");\r
-//                return false;\r
-//            }\r
+            //            if (trg.indexOf(DataType.DOS_FILE_SEPARATOR) == -1 && trg.indexOf(DataType.UNIX_FILE_SEPARATOR) == -1) {\r
+            //                Log.err("The module name must include a path");\r
+            //                return false;\r
+            //            }\r
             trg = this.getModulePath();\r
             if (src.equals(trg)) {\r
-                Log.err("The source and destination couldn't be same");\r
+                Log.wrn("Clone", "The source and destination couldn't be same");\r
                 return false;\r
             }\r
             trgFile = new File(trg);\r
             if (trgFile.exists()) {\r
-                Log.err("The target module already exists");\r
+                Log.wrn("Clone", "The target module already exists");\r
                 return false;\r
             }\r
             return checkId();\r
@@ -612,17 +620,17 @@ public class Clone extends IDialog {
         //\r
         if (mode == DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA) {\r
             if (trg.indexOf(DataType.DOS_FILE_SEPARATOR) == -1 && trg.indexOf(DataType.UNIX_FILE_SEPARATOR) == -1) {\r
-                Log.err("The package name must include a path");\r
+                Log.wrn("Clone", "The package name must include a path");\r
                 return false;\r
             }\r
             trg = this.getPackagePath();\r
             if (Tools.getFilePathOnly(src).equals(Tools.getFilePathOnly(trg))) {\r
-                Log.err("The source and destination couldn't be same");\r
+                Log.wrn("Clone", "The source and destination couldn't be same");\r
                 return false;\r
             }\r
             trgFile = new File(trg);\r
             if (trgFile.exists()) {\r
-                Log.err("The target package already exists");\r
+                Log.wrn("Clone", "The target package already exists");\r
                 return false;\r
             }\r
             return checkId();\r
@@ -633,12 +641,12 @@ public class Clone extends IDialog {
         //\r
         if (mode == DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA) {\r
             if (trg.indexOf(Workspace.getCurrentWorkspace()) != 0) {\r
-                Log.err("The target platform must be in current workspace");\r
+                Log.wrn("Clone", "The target platform must be in current workspace");\r
                 return false;\r
             }\r
             trgFile = new File(trg);\r
             if (trgFile.exists()) {\r
-                Log.err("The target platform already exists");\r
+                Log.wrn("Clone", "The target platform already exists");\r
                 return false;\r
             }\r
             return checkId();\r
@@ -648,21 +656,15 @@ public class Clone extends IDialog {
     }\r
 \r
     private void save() throws IOException, XmlException, Exception {\r
-        String src = this.jTextFieldSource.getText();\r
+        String src = this.oldId.getPath();\r
         String trg = this.jTextFieldFilePath.getText();\r
         Vector<String> vFiles = new Vector<String>();\r
-        \r
+\r
         //\r
         // Clone Workspace\r
         //\r
         if (mode == DataType.RETURN_TYPE_WORKSPACE) {\r
-            try {\r
-                FileOperation.copyFolder(src, trg);\r
-            } catch (Exception e) {\r
-                this.returnType = DataType.RETURN_TYPE_CANCEL;\r
-                Log.err("Clone Workspace", e.getMessage());\r
-                e.printStackTrace();\r
-            }\r
+            FileOperation.copyFolder(src, trg);\r
             this.returnType = DataType.RETURN_TYPE_WORKSPACE;\r
         }\r
 \r
@@ -676,7 +678,7 @@ public class Clone extends IDialog {
             trg = getModulePath();\r
             newId.setPath(trg);\r
             vFiles = wt.getAllModuleFilesPath(src);\r
-            \r
+\r
             //\r
             // First copy all files to new directory\r
             //\r
@@ -704,7 +706,7 @@ public class Clone extends IDialog {
             // Update Cloned From element\r
             //\r
             updateModuleClonedId(msa, oldId);\r
-            \r
+\r
             //\r
             // Save to file\r
             //\r
@@ -713,14 +715,15 @@ public class Clone extends IDialog {
             //\r
             // Update to platformId\r
             //\r
-            this.setMid(new ModuleIdentification(newId, packages.elementAt(this.jComboBoxExistingPackage.getSelectedIndex())));\r
+            this.setMid(new ModuleIdentification(newId,\r
+                                                 packages.elementAt(this.jComboBoxExistingPackage.getSelectedIndex())));\r
 \r
             //\r
             // Open belonging package\r
             //\r
             PackageSurfaceArea psa = PackageSurfaceArea.Factory.newInstance();\r
             psa = OpenFile.openSpdFile(mid.getPackageId().getPath());\r
-            \r
+\r
             //\r
             // Update the db file\r
             //\r
@@ -739,14 +742,14 @@ public class Clone extends IDialog {
             trg = this.getPackagePath();\r
             newId.setPath(trg);\r
             vFiles = wt.getAllPakcageFilesPath(src);\r
-            \r
+\r
             FileOperation.copyFile(src, trg);\r
             for (int index = 1; index < vFiles.size(); index++) {\r
                 String oldFile = vFiles.get(index);\r
                 String newFile = vFiles.get(index).replace(Tools.getFilePathOnly(src), Tools.getFilePathOnly(trg));\r
                 FileOperation.copyFile(oldFile, newFile);\r
             }\r
-            \r
+\r
             //\r
             // First copy all files to new directory\r
             //\r
@@ -774,7 +777,7 @@ public class Clone extends IDialog {
             // Update Cloned From element\r
             //\r
             updatePackageClonedId(spd, oldId);\r
-            \r
+\r
             //\r
             // Save to file\r
             //\r
@@ -831,7 +834,7 @@ public class Clone extends IDialog {
         }\r
         vFiles = null;\r
     }\r
-    \r
+\r
     private String getSelectPackagePath() {\r
         return Tools.getFilePathOnly(packages.elementAt(this.jComboBoxExistingPackage.getSelectedIndex()).getPath());\r
     }\r
@@ -843,7 +846,7 @@ public class Clone extends IDialog {
         Tools.convertPathToCurrentOsType(trg);\r
         return trg;\r
     }\r
-    \r
+\r
     private String getPackagePath() {\r
         String trg = this.jTextFieldFilePath.getText();\r
         trg = Tools.addPathExt(trg, mode);\r
@@ -851,7 +854,7 @@ public class Clone extends IDialog {
         trg = Tools.convertPathToCurrentOsType(trg);\r
         return trg;\r
     }\r
-    \r
+\r
     /**\r
      Set target item's Cloned From element\r
 \r
@@ -898,6 +901,10 @@ public class Clone extends IDialog {
         c.setPackageGuid(wt.getPackageIdByModuleId(oldId).getGuid());\r
         c.setPackageVersion(wt.getPackageIdByModuleId(oldId).getVersion());\r
         c.setId(count.add(new BigInteger("1")));\r
+        String guid = wt.getModuleFarGuid(oldId);\r
+        if (guid != null && !guid.equals("")) {\r
+            c.setFarGuid(guid);\r
+        }\r
 \r
         cf.addNewCloned();\r
         cf.setClonedArray(cf.getClonedList().size() - 1, c);\r
@@ -950,6 +957,10 @@ public class Clone extends IDialog {
         c.setPackageGuid(id.getGuid());\r
         c.setPackageVersion(id.getVersion());\r
         c.setId(count.add(new BigInteger("1")));\r
+        String guid = wt.getModuleFarGuid(oldId);\r
+        if (guid != null && !guid.equals("")) {\r
+            c.setFarGuid(guid);\r
+        }\r
 \r
         cf.addNewCloned();\r
         cf.setClonedArray(cf.getClonedList().size() - 1, c);\r
@@ -1002,6 +1013,10 @@ public class Clone extends IDialog {
         c.setPlatformGuid(id.getGuid());\r
         c.setPlatformVersion(id.getVersion());\r
         c.setId(count.add(new BigInteger("1")));\r
+        String guid = wt.getModuleFarGuid(oldId);\r
+        if (guid != null && !guid.equals("")) {\r
+            c.setFarGuid(guid);\r
+        }\r
 \r
         cf.addNewCloned();\r
         cf.setClonedArray(cf.getClonedList().size() - 1, c);\r