small fixes, the html output files are tagged when removed/added/imported correctly now.
1.1 --- a/javacvs/changelog/src/org/netbeans/modules/changelog/ChangeLogProcessor.java Tue Jul 09 12:01:04 2002 +0000
1.2 +++ b/javacvs/changelog/src/org/netbeans/modules/changelog/ChangeLogProcessor.java Tue Jul 09 19:44:00 2002 +0000
1.3 @@ -475,9 +475,10 @@
1.4 try {
1.5 Method method = printer.getClass().getMethod(methodName, paramTypes);
1.6 method.invoke(printer, params);
1.7 + } catch (InvocationTargetException exc1) {
1.8 + org.openide.ErrorManager.getDefault().annotate(exc1.getTargetException(), "");
1.9 } catch (Exception exc) {
1.10 - System.out.println("exception=" + exc.getClass());
1.11 - System.out.println("method=" + methodName);
1.12 + org.openide.ErrorManager.getDefault().annotate(exc, "");
1.13 }
1.14 }
1.15 }
2.1 --- a/javacvs/changelog/src/org/netbeans/modules/changelog/LogPrinter_HTML.java Tue Jul 09 12:01:04 2002 +0000
2.2 +++ b/javacvs/changelog/src/org/netbeans/modules/changelog/LogPrinter_HTML.java Tue Jul 09 19:44:00 2002 +0000
2.3 @@ -25,6 +25,12 @@
2.4 */
2.5 public class LogPrinter_HTML implements LogPrinter {
2.6
2.7 + private static final String SPECIAL_KEY = "SPECIAL"; //NOI18N
2.8 + private static final String PREV_REVISION = "previous_revision"; //NOI18N
2.9 + private static final String FILE_PATH = "file_path"; //NOI18N
2.10 + private static final String CURR_REVISION = "current_revision"; //NOI18N
2.11 +
2.12 +
2.13 private java.io.PrintWriter writer;
2.14
2.15 private File file;
2.16 @@ -158,8 +164,8 @@
2.17 writer.println(revision.getNumber());
2.18 }
2.19 writer.println(" " + repoFileName);
2.20 - if (!(replacementMap.containsKey("removed") || replacementMap.containsKey("Imported")) && //NOI18N
2.21 - replacementMap.containsKey("previous_revision") && //NOI18N
2.22 + if ((!replacementMap.containsKey(SPECIAL_KEY)) && //NOI18N
2.23 + replacementMap.containsKey(PREV_REVISION) && //NOI18N
2.24 service != null) {
2.25 String diffUrl = replaceArguments(service.getDiffURL(), replacementMap);
2.26 // String diffUrl = "http://www.netbeans.org/source/browse/" + reducedRepoFileName
2.27 @@ -168,12 +174,8 @@
2.28 } else {
2.29 // do nothing..
2.30 }
2.31 - if (replacementMap.containsKey("removed")) { //NOI18N
2.32 - // TODO - handle removed and added files..
2.33 - writer.println(" [Removed]");
2.34 - }
2.35 - if (replacementMap.containsKey("Imported")) {
2.36 -// writer.println(" [Imported]");
2.37 + if (replacementMap.containsKey(SPECIAL_KEY)) { //NOI18N
2.38 + writer.println(" ["+ replacementMap.get(SPECIAL_KEY) + "]");
2.39 }
2.40 }
2.41
2.42 @@ -189,56 +191,77 @@
2.43 } else {
2.44 reducedRepoFileName = repoFileName;
2.45 }
2.46 - replacementMap.put("file_path", reducedRepoFileName); //NOI18N
2.47 + replacementMap.put(FILE_PATH, reducedRepoFileName); //NOI18N
2.48 } else {
2.49 - replacementMap.put("file_path", repoFileName);
2.50 + replacementMap.put(FILE_PATH, repoFileName);
2.51 }
2.52 - replacementMap.put("current_revision", revision.getNumber()); //NOI18N
2.53 + replacementMap.put(CURR_REVISION, revision.getNumber()); //NOI18N
2.54 String revNumber = revision.getNumber();
2.55 - int index = revNumber.lastIndexOf('.');
2.56 - String prevRevision = null;
2.57 - if (index >= 0) {
2.58 - String lastNumber = revNumber.substring(index + 1);
2.59 - try {
2.60 - int number = Integer.parseInt(lastNumber);
2.61 - if (number != 1) {
2.62 - prevRevision = revNumber.substring(0, index + 1) + Integer.toString(number - 1);
2.63 + if (revision.getState().equals("dead")) { //NOI18N
2.64 + replacementMap.put(SPECIAL_KEY, "Removed"); //NOI18N
2.65 + } else {
2.66 + int[] revNumbers = convertRevisionToIntArray(revision.getNumber());
2.67 + if (revNumbers[revNumbers.length - 2] % 2 != 0 && revNumbers.length != 2) {
2.68 + replacementMap.put(SPECIAL_KEY, "Imported"); //NOI18N
2.69 + } else {
2.70 + if (revNumbers[revNumbers.length - 1] == 1) {
2.71 + if (revNumbers.length == 2) {
2.72 + replacementMap.put(SPECIAL_KEY, "Added"); //NOI18N
2.73 + } else {
2.74 + revNumbers[revNumbers.length - 1] = 0;
2.75 + revNumbers[revNumbers.length - 2] = 0;
2.76 + String prevrev = convertIntArrayToRevision(revNumbers);
2.77 + replacementMap.put(PREV_REVISION, prevrev);
2.78 + }
2.79 + } else {
2.80 + revNumbers[revNumbers.length - 1] = revNumbers[revNumbers.length - 1] - 1;
2.81 + String prevrev = convertIntArrayToRevision(revNumbers);
2.82 + replacementMap.put(PREV_REVISION, prevrev);
2.83 }
2.84 - } catch (NumberFormatException exc) {
2.85 - System.out.println("parsing exception=" + lastNumber);
2.86 }
2.87 }
2.88 - int dotCount = 0;
2.89 - int branchIndex = 0;
2.90 - boolean found = false;
2.91 - while (index >= 0) {
2.92 - dotCount = dotCount + 1;
2.93 - if (dotCount == 2 && prevRevision == null) {
2.94 - prevRevision = revNumber.substring(0, index);
2.95 - String branch = revNumber.substring(index + 1, branchIndex);
2.96 - try {
2.97 - int parsedNumber = Integer.parseInt(branch);
2.98 - if (parsedNumber % 2 != 0) {
2.99 - replacementMap.put("Imported", "true"); //NOI18N
2.100 - }
2.101 - } catch (NumberFormatException exc) {
2.102 -
2.103 - }
2.104 - }
2.105 - if (dotCount == 1) {
2.106 - branchIndex = index;
2.107 - }
2.108 - index = revNumber.lastIndexOf('.', index - 1);
2.109 - }
2.110 - replacementMap.put("previous_revision", prevRevision); //NOI18N
2.111 - if (revision.getState().equals("dead")) { //NOI18N
2.112 - replacementMap.put("removed", revision.getState()); //NOI18N
2.113 - }
2.114 -
2.115 return replacementMap;
2.116
2.117 }
2.118
2.119 + /** method that converts the string value of the revision into an array of
2.120 + * integers for further processing
2.121 + */
2.122 + private int[] convertRevisionToIntArray(String revision) {
2.123 + StringTokenizer token = new StringTokenizer(revision, ".");
2.124 + int[] array = new int[token.countTokens()];
2.125 + int index = 0;
2.126 + while (token.hasMoreTokens()) {
2.127 + String item = token.nextToken();
2.128 + try {
2.129 + int parsedNumber = Integer.parseInt(item);
2.130 + array[index] = parsedNumber;
2.131 + } catch (NumberFormatException exc) {
2.132 + array[index] = 0;
2.133 + }
2.134 + index = index + 1;
2.135 + }
2.136 + return array;
2.137 + }
2.138 +
2.139 + /**
2.140 + * converts array of integers to a String conforming to the format of the cvs revisions
2.141 + * zero values are ignored. Can be used to shorten the resulting revision.
2.142 + */
2.143 + private String convertIntArrayToRevision(int[] arr) {
2.144 + StringBuffer buffer = new StringBuffer();
2.145 + for (int i = 0; i < arr.length; i++) {
2.146 + if (arr[i] == 0) {
2.147 + continue;
2.148 + }
2.149 + if (i != 0) {
2.150 + buffer.append('.');
2.151 + }
2.152 + buffer.append(arr[i]);
2.153 + }
2.154 + return buffer.toString();
2.155 + }
2.156 +
2.157 public void printGroupFooter(RevisionsGroup group) {
2.158 if (writer == null) {
2.159 return;