Ignore:
Timestamp:
01/07/09 13:25:13 (15 years ago)
Author:
ra33
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/expeditee/gui/FrameIO.java

    r424 r427  
    662662                template.reset();
    663663                template.resetDateCreated();
    664                
     664
    665665                for (Item i : template.getItems()) {
    666666                        if (ItemUtils.startsWithTag(i, ItemUtils.TAG_PARENT))
     
    759759                // or digits
    760760                for (int i = 1; i < lastCharIndex; i++) {
    761                         if (!Character.isLetterOrDigit(frameName.charAt(i)))
     761                        if (!isValidFrameNameChar(frameName.charAt(i)))
    762762                                return false;
    763763                }
    764764                return true;
     765        }
     766
     767        private static boolean isValidFrameNameChar(char c) {
     768                return Character.isLetterOrDigit(c) || c == '-';
    765769        }
    766770
     
    909913                                                        ItemUtils.TAG_BACKUP)) {
    910914                                SuspendCache();
     915                                String oldFramesetName = toSave.getFramesetName() + "-old";
     916
    911917                                Frame original = LoadFrame(toSave.getName());
    912918                                if (original == null)
    913919                                        original = toSave;
    914920                                int orignum = original.getNumber();
    915                                 int nextnum = ReadINF(toSave.getPath(), toSave
    916                                                 .getFramesetName(), false) + 1;
    917 
    918                                 original.setFrameNumber(nextnum);
    919                                 original.setPermission(Permission.copy);
    920                                 original.change();
    921                                 SaveFrame(original, false, false);
     921
     922                                int nextnum = -1;
     923                                try {
     924                                        nextnum = ReadINF(toSave.getPath(), oldFramesetName, false) + 1;
     925                                } catch (RuntimeException e) {
     926                                        try {
     927                                                CreateFrameset(oldFramesetName, toSave.getPath());
     928                                                nextnum = 1;
     929                                        } catch (Exception e1) {
     930                                                e1.printStackTrace();
     931                                        }
     932                                        //e.printStackTrace();
     933                                }
     934                               
     935                                if (nextnum > 0) {
     936                                        original.setFrameset(oldFramesetName);
     937                                        original.setFrameNumber(nextnum);
     938                                        original.setPermission(Permission.copy);
     939                                        original.change();
     940                                        SaveFrame(original, false, false);
     941                                }
    922942
    923943                                Item i = ItemUtils.FindExactTag(toSave.getItems(),
     
    12721292                base.setPath(path);
    12731293                base.change();
     1294                base.setOwner(UserSettings.UserName);
    12741295                SaveFrame(base, false);
    12751296
     
    12791300                base.setTitle(frameset);
    12801301                base.change();
     1302                base.setOwner(UserSettings.UserName);
    12811303                SaveFrame(base, true);
    12821304
     
    13121334
    13131335                for (int i = 1; i < lastCharIndex; i++) {
    1314                         if (!Character.isLetterOrDigit(frameset.charAt(i))) {
     1336                        if (!isValidFrameNameChar(frameset.charAt(i))) {
    13151337                                return false;
    13161338                        }
Note: See TracChangeset for help on using the changeset viewer.