From 7198c1e4bccfb2d907ee839e369072ac5dd6f677 Mon Sep 17 00:00:00 2001 From: codemanyak Date: Sat, 11 Apr 2020 11:19:33 +0200 Subject: [PATCH] Merge defects mended for 3.30-07 --- samples/arrz/TextWriter.arrz | Bin 28121 -> 27386 bytes src/Structorizer.java | 30 ++++++++-- .../fisch/structorizer/archivar/Archivar.java | 2 +- .../structorizer/archivar/ArchivePool.java | 2 +- .../fisch/structorizer/arranger/Surface.java | 4 +- .../structorizer/gui/ExportOptionDialoge.java | 52 +++++++++++++----- src/lu/fisch/structorizer/io/Ini.java | 14 ++--- 7 files changed, 74 insertions(+), 30 deletions(-) diff --git a/samples/arrz/TextWriter.arrz b/samples/arrz/TextWriter.arrz index c6b5cd4b59ff2eab283f48c364593ebdfe7bb733..17ce206484e5cb1990f9b856ff84e8134b5725f0 100644 GIT binary patch delta 4341 zcmZvfc|26>AIHxO!&J6bNzxeE329p7DkR4`bdV)KW63gOOd_cmBo#l*3%O{MxL2}t zJ5x#|QYx(~M5{I}ze*uj$?tL9W1iE?_=nfLKi}`?`JU%I&&R`V%J2h4=OEhSmgzl!>Sa!lEOHJTe901xH5*N4XoC8u7OTxnneh@|Rg2)s&Fz_H#n(%iDWS zP!J?dc3iS4GAfo66$DA_y+%E8C8%j-6{h*nW^w1tf5{wXKEGo zUpMSv!i^0?gyL@U$&#|${V}w<)xhu&DC$0~G)GAG-C&Kyf)wgvV*17b7%KI{sxb#>j7av^Lz+5V znvqZV7lbI!7@rCTA@~#Kcgn;=y~@MTCao%tE-0% z;pG?l89#fRt$!=_^Imgfk+036u|)$7|MyViHV4agJgU0 zaGNcJ8$MTADS*e}b0Gj%TeqJW_DL?`))OZB?X0MVMC1H;3|*Q^xo9ngAhYEWL=H3# z-WJGnA{C8wK&2+$kAm$O8sgr5@Fwue0I&C$Wb>A2K1p&4r@FLB+R%g;`c&CPHxy`E zzyUj^*%ZU$t&fJC&35AxYpdrePY;ZYh~Plqd*jX66#^LLDbEaw;>2RX+oBDZNY3Y* zo-wqESAi8`@1ladjd~9@XaZ=f0NRcTJfp(EMPtN?iu&i4!9R2QD8jLk(80|#Kh1@W zKp#2q`#UZC;@ve#jPR>>4?ZuLR?zqUKtbY)@Jst0i`UesQ?6sdzORL7 z^okX4>-PGoTdHtN4MgQ;)g{-m%TAs#tKM!A7_;BI^zV@SkM;R&#royF?a#{0-^C8^ znVviEsp&2>x9whf183h2E!Rbc%4Wy@YvHM=JJc2%Uv|hXXN|S0-KlJ>OL&;BD(N$sfkMpv%Ze7zpMJ}&gXi>i{mFK)^x9U|# zqX%svg^5#sRn_k)?SUmmY^*PSNyO#=vKUsDqypEIB)%DRd z-80hIdaKCAvd|#^hRFfeH}R$9dkbciUb>aIVNuT(=Zg(BO-SZfy0nYyyj3AfzWnI# z;r%9jM>neWoMsl6Fy&7j*CiC?2f44G8&ouYR5$M0F&KTv(p#ps>OJ4+L{(c{B&V_e zi(B+G^O^cL^8!-q9ZMg`mCC27Jb7p9-uniUB2G0D5JdKd+1-ibM|uf zb6HY7%4W1ehZIM=EB@U1Hv<8qI|HlaJE=!aZG6&m_lw0nowxBJH-gJn>z!eh9;IJw zkj)ex8to4hRnB}jQogi?AGx%K=BQ_Q$FsjOY2ewTuipBqrwXDLzesgjtCZPNpO-WG zO00`n^yL}_439SL*Lix}`=?Sxs#RZ|@P5)yR-^b+QN(=pR_XSp!5B)NluOa{-tEm_7xbE}>T)aFcv3sM z)-c8C`03uf1xu4IeQMm`ay$|}aYU-FcIu&y5RYq-?0oZcv+5p&vsP&D;3j147_QoR zq*_p7ApCotII}?Mx56EDD!hW`8j3JhG-X|ec(j;)^_dyE~ph-KU8?pAv&wL>r&<6Zbj413sxp^@)_j;`K-PR}S(0 z)VlVr#?rhp)92MTo-LJqYEP1LGvRv8K@4qcaJ@{PZBx@>RxX&qd<>5F@tSa+ zJ(vY^Y`~oZXXH3XO11egmkYRXMS_Ea?A|<>>ja$n41$Bh>zvBr%EV!++jBse&VmQ}#q5a0~7362y$FTmWYPzH02F2TWxlTGTI2)O^~6C5db zlDKBTr5O?&DQecked%EgCdHWGNa>PP&k=A2rUVBE%BV89o(OQu%m@ySl{3UJcOP&e zEP^9NNz(l0hBKJ>a)N`?BfAo==LrIg5coX_zs7;mw>xsNpPgB zNLq&um$69M3Yk0}o`);)xeUg68wB|^Bihx$)JZObxzm>D3nxVn(sS$QGBiHefk^&q zI%Hpm%Pr$EGy)uvNfKc*jBOvoT)@fpYX}^^0b}(%24ln(EcVwZcpIihc?`|Z7=lca z2R&quY?Pdndmi}3WSgBu@orzh<(YKknKPN|3DzfBJk4+4owx# H*kAt#qeDo2 delta 5335 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 diff --git a/src/Structorizer.java b/src/Structorizer.java index 23aea5a3..4147111b 100644 --- a/src/Structorizer.java +++ b/src/Structorizer.java @@ -71,6 +71,10 @@ * Kay Gürtzig 2019-08-07 Enh. #741: Option -s now also respected for interactive mode, * Bugfix #742 * Kay Gürtzig 2019-09-16 #744 workaround: file open queue on startup for OS X + * Kay Gürtzig 2020-03-23 Issues #828, #836: Slight unification of arrangement exports with + * group export: Without specified entry points all contained diagrams + * will be qualified for export. Remaining difference: We still first + * check for contained main diagrams as potential tree roots. * ****************************************************************************************************** * @@ -139,6 +143,7 @@ public static void main(String args[]) // START KGU#484 2018-03-21: Issue #463 - Configurability of the logging system ensured setupLogging(); // END KGU#484 2018-03-21 + Logger.getLogger(Structorizer.class.getName()).log(Level.INFO, "Command line: " + new StringList(args).getLongString()); // START KGU#187 2016-04-28: Enh. #179 Vector fileNames = new Vector(); String generator = null; @@ -769,21 +774,38 @@ private static boolean addExportPool(HashMap> pools, A } } else { + // START KGU#815/KGU#824 2020-03-23: Enh. #828, issue #836 - Collect all Roots from the archive as fallback + Vector allRoots = new Vector(); + // END KGU#815/KGU#824 2020-03-23 // Identify and collect all main diagrams of the pool for (Iterator iter = index.iterator(); iter.hasNext();) { ArchiveIndexEntry entry = iter.next(); Root root = null; if (entry.name == null) { - entry.getRoot(archivar); + entry.getRoot(archivar); // This may set entry.name! } if (entry.name != null && entry.minArgs == -1) { root = entry.getRoot(archivar); - if (root != null && root.isProgram()) { - poolRoots.add(root); + // START KGU#815/KGU#824 2020-03-23: Enh. #828, issue #836 - Collect all Roots from the archive as fallback + //if (root != null && root.isProgram()) { + // poolRoots.add(root); + //} + if (root != null) { + allRoots.add(root); + if (root.isProgram()) { + poolRoots.add(root); + } } + // END KGU#815/KGU#824 2020-03-23 } } + // START KGU#815/KGU#824 2020-03-23: Enh. #828, issue #836 cautious unification with group export: + // If no suitable program Root is found then we will simply add all diagrams + if (poolRoots.isEmpty()) { + poolRoots = allRoots; + } + // END KGU#815/KGU#824 2020-03-23 } if (!poolRoots.isEmpty()) { pools.put(pool, poolRoots); @@ -1052,7 +1074,7 @@ private static void writeRootsToFiles(List newRoots, String filename, Stri out = new OutputStreamWriter(fos, "UTF8"); try { XmlGenerator xmlgen = new XmlGenerator(); - out.write(xmlgen.generateCode(rootNew,"\t")); + out.write(xmlgen.generateCode(rootNew,"\t", false)); } finally { out.close(); diff --git a/src/lu/fisch/structorizer/archivar/Archivar.java b/src/lu/fisch/structorizer/archivar/Archivar.java index 6762754b..be3c5424 100644 --- a/src/lu/fisch/structorizer/archivar/Archivar.java +++ b/src/lu/fisch/structorizer/archivar/Archivar.java @@ -765,7 +765,7 @@ private boolean saveVirginNSD(Root _root, File _targetDir) throws IOException FileOutputStream fos = new FileOutputStream(filename); out = new OutputStreamWriter(fos, "UTF-8"); XmlGenerator xmlgen = new XmlGenerator(); - out.write(xmlgen.generateCode(_root, "\t")); + out.write(xmlgen.generateCode(_root, "\t", true)); _root.filename = filename; _root.rememberSaved(); done = true; diff --git a/src/lu/fisch/structorizer/archivar/ArchivePool.java b/src/lu/fisch/structorizer/archivar/ArchivePool.java index 2b06c0dd..067620ac 100644 --- a/src/lu/fisch/structorizer/archivar/ArchivePool.java +++ b/src/lu/fisch/structorizer/archivar/ArchivePool.java @@ -84,7 +84,7 @@ public ArchivePool(String name) { /** * Creates an ArchivePool from a given {@link ArchiveIndex}. - * The archive name will be derived from the arrangemenet file in + * The archive name will be derived from the arrangement file in * {@code archiveIndex}. */ public ArchivePool(Archivar.ArchiveIndex archiveIndex) { diff --git a/src/lu/fisch/structorizer/arranger/Surface.java b/src/lu/fisch/structorizer/arranger/Surface.java index 62bba8d1..82ee3e35 100644 --- a/src/lu/fisch/structorizer/arranger/Surface.java +++ b/src/lu/fisch/structorizer/arranger/Surface.java @@ -1326,7 +1326,7 @@ private LinkedList saveVirginRootsToTempDir(Group group, File tempDir) { FileOutputStream fos = new FileOutputStream(filename); out = new OutputStreamWriter(fos, "UTF-8"); XmlGenerator xmlgen = new XmlGenerator(); - out.write(xmlgen.generateCode(diagr.root,"\t")); + out.write(xmlgen.generateCode(diagr.root,"\t", true)); diagr.root.filename = filename; diagr.root.rememberSaved(); savedRoots.add(diagr.root); @@ -2859,7 +2859,7 @@ public boolean copyDiagram() // START KGU#642 2018-12-21: Enh. #655 //StringSelection toClip = new StringSelection(xmlgen.generateCode(this.mouseSelected.root,"\t")); StringSelection toClip = new StringSelection( - xmlgen.generateCode(this.diagramsSelected.iterator().next().root,"\t") + xmlgen.generateCode(this.diagramsSelected.iterator().next().root,"\t", true) ); // END KGU#624 2018-12-21 Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); diff --git a/src/lu/fisch/structorizer/gui/ExportOptionDialoge.java b/src/lu/fisch/structorizer/gui/ExportOptionDialoge.java index a82db0b0..5331d277 100644 --- a/src/lu/fisch/structorizer/gui/ExportOptionDialoge.java +++ b/src/lu/fisch/structorizer/gui/ExportOptionDialoge.java @@ -47,6 +47,7 @@ * Kay Gürtzig 2017.06.20 Enh. #354/#357: generator-specific option mechanism implemented * Kay Gürtzig 2018.01.22 Issue #484: Layout of the "Includes" tab fixed (text fields now expand). * Kay Gürtzig 2019-02-15 Enh. #681: New spinner for triggering a change proposal for preferred generator + * Kay Gürtzig 2020-03-17 Enh. #837: New option for the proposed export directory * ****************************************************************************************************** * @@ -164,6 +165,9 @@ private void initComponents() { btnPluginOptions = new javax.swing.JButton(); cbOptionPlugins = new javax.swing.JComboBox(this.getCodeGeneratorNames(true)); // END KGU#416 2017-06-20 + // START KGU#816 2020-03-17: Enh. #837 + chkDirectoryFromNsd = new javax.swing.JCheckBox(); + // END KGI#816 2020-043-17 setTitle("Export options ..."); @@ -272,7 +276,13 @@ public void actionPerformed(ActionEvent evt) { } }); // END KGU#363 2017-05-11 - + + // START KGU#816 2020-03-17: Enh. #837 + chkDirectoryFromNsd.setText("Propose export directory from NSD location if available"); + chkDirectoryFromNsd.setToolTipText("Otherwise the most recent export directory will always be proposed."); + // No action listener required + // END KGI#816 2020-043-17 + jButton1.setText("OK"); jButton1.addActionListener(new ActionListener() { @Override @@ -362,6 +372,9 @@ public void actionPerformed(ActionEvent evt) { // START KGU#363 2017-05-11: Enh. #372 .add(chkExportLicenseInfo) // END KGU#363 2017-05-11: Enh. #372 + // START KGU#816 2020-03-17: Enh. #837 + .add(chkDirectoryFromNsd) + // END KGU#816 2020-03-17 /*.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() .add(jButton1) .addContainerGap())*/)) @@ -410,6 +423,10 @@ public void actionPerformed(ActionEvent evt) { .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(chkExportLicenseInfo) // END KGU#363 2017-05-11: Enh. #372 + // START KGU#816 2020-03-17: Enh. #837 + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(chkDirectoryFromNsd) + // END KGU#816 2020-03-17 // START KGU#416 2017-06-20: Enh. #353,#357 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.CENTER) @@ -469,15 +486,15 @@ public void actionPerformed(ActionEvent evt) { //======== buttonBar ======== { - buttonBar.setBorder(new EmptyBorder(12, 0, 0, 0)); - buttonBar.setLayout(new GridBagLayout()); - ((GridBagLayout)buttonBar.getLayout()).columnWidths = new int[] {0, 80}; - ((GridBagLayout)buttonBar.getLayout()).columnWeights = new double[] {1.0, 0.0}; - - //---- btnOK ---- - buttonBar.add(jButton1, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, - GridBagConstraints.CENTER, GridBagConstraints.BOTH, - new Insets(0, 0, 0, 0), 0, 0)); + buttonBar.setBorder(new EmptyBorder(12, 0, 0, 0)); + buttonBar.setLayout(new GridBagLayout()); + ((GridBagLayout)buttonBar.getLayout()).columnWidths = new int[] {0, 80}; + ((GridBagLayout)buttonBar.getLayout()).columnWeights = new double[] {1.0, 0.0}; + + //---- btnOK ---- + buttonBar.add(jButton1, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, + GridBagConstraints.CENTER, GridBagConstraints.BOTH, + new Insets(0, 0, 0, 0), 0, 0)); } Container contentPane = getContentPane(); @@ -515,6 +532,10 @@ public void keyTyped(KeyEvent kevt) {} bracesCheckBox.addKeyListener(keyListener); lineNumbersCheckBox.addKeyListener(keyListener); chkExportSubroutines.addKeyListener(keyListener); + // START KGU#816 2020-03-17: Enh. #837 + this.chkDirectoryFromNsd.addKeyListener(keyListener); + this.chkExportLicenseInfo.addKeyListener(keyListener); + // END KGU#816 2020-03-17 for (int i = 0; i < this.includeLists.length; i++) { this.includeLists[i].addKeyListener(keyListener); } @@ -543,10 +564,10 @@ protected void openSpecificOptionDialog(String TitleFormat, GENPlugin plugin, Ha } // END KGU#416 2017-06-20 -// private void commentsCheckBoxActionPerformed(ActionEvent evt)//GEN-FIRST:event_commentsCheckBoxActionPerformed -// {//GEN-HEADEREND:event_commentsCheckBoxActionPerformed +// private void licenseInfoCheckBoxActionPerformed(ActionEvent evt)//GEN-FIRST:event_licenseInfoCheckBoxActionPerformed +// {//GEN-HEADEREND:event_licenseInfoCheckBoxActionPerformed // // TODO add your handling code here: -// }//GEN-LAST:event_commentsCheckBoxActionPerformed +// }//GEN-LAST:event_licenseInfoCheckBoxActionPerformed protected void licenseInfoCheckBoxActionPerformed(ActionEvent evt) { // TODO Auto-generated method stub @@ -709,7 +730,6 @@ private Vector getCodeGeneratorNames(boolean withOptionsOnly) public final LangTextHolder msgOptionsForPlugin = new LangTextHolder("Options for % Generator"); // END KGU#416 2017-06-20 // END KGU#351 2017-02-26 - // Variables declaration - do not modify//GEN-BEGIN:variables public javax.swing.JCheckBox bracesCheckBox; public javax.swing.JCheckBox commentsCheckBox; public javax.swing.JButton jButton1; @@ -739,5 +759,7 @@ private Vector getCodeGeneratorNames(boolean withOptionsOnly) // START KGU#363 2017-05-11: Enh. #372 public javax.swing.JCheckBox chkExportLicenseInfo; // END KGU#363 2017-05-11 - // End of variables declaration//GEN-END:variables + // START KGU#816 2020-03-17: Enh. #837 + public javax.swing.JCheckBox chkDirectoryFromNsd; + // END KGU#816 2020-03-17 } diff --git a/src/lu/fisch/structorizer/io/Ini.java b/src/lu/fisch/structorizer/io/Ini.java index 03677129..99242cc7 100644 --- a/src/lu/fisch/structorizer/io/Ini.java +++ b/src/lu/fisch/structorizer/io/Ini.java @@ -206,9 +206,9 @@ public static boolean setIniPath(String filePath) { // as well /** * Returns the path where the ini file is supposed to reside. In case of a specified - * predominant oder redirected ini file, it will be directory of this file rather than - * the standard ini folder (except in early initialization phase). - * @return the path of the directory for the ini file as string + * predominant oder redirected ini file, it will be the directory of this file rather + * than the standard ini folder (except in early initialization phase). + * @return the path of the default directory for the ini file as string * @see #getIniDirectory(boolean) */ public static File getIniDirectory() @@ -221,12 +221,12 @@ public static File getIniDirectory() * Returns the path where the ini file is supposed to reside. It depends on paramater * {@code alwaysStandard} whether in case of a specified predominant oder redirected * ini file still the user-specific standard folder is returned (true) or the directory - * of the configured non-standard ini file (predominant / redirected). - * the standard ini folder (except in early initialization phase). Method {@link #getIniDirectory()} - * is equivalent to {@code getIniDirectory(false)}. - * @param alwaysStandard + * of the configured non-standard (predominant / redirected) ini file (false).
+ * Method {@link #getIniDirectory()} is equivalent to {@code getIniDirectory(false)}. + * @param alwaysStandard - if true then the default ini path is yielded * @return the directory path of the effective ini file as string * @see #getIniDirectory() + * @see #setIniPath(String) */ public static File getIniDirectory(boolean alwaysStandard) // END KGU#789 2020-01-20