From: <kp...@us...> - 2008-07-20 22:08:36
|
Revision: 13072 http://jedit.svn.sourceforge.net/jedit/?rev=13072&view=rev Author: kpouer Date: 2008-07-20 22:08:23 +0000 (Sun, 20 Jul 2008) Log Message: ----------- a bufferSet can now be empty, it is the editPane that will now create the new untitled buffers when needed Modified Paths: -------------- jEdit/trunk/org/gjt/sp/jedit/EditPane.java jEdit/trunk/org/gjt/sp/jedit/bufferset/BufferSetManager.java jEdit/trunk/org/gjt/sp/jedit/jEdit.java Modified: jEdit/trunk/org/gjt/sp/jedit/EditPane.java =================================================================== --- jEdit/trunk/org/gjt/sp/jedit/EditPane.java 2008-07-20 20:56:14 UTC (rev 13071) +++ jEdit/trunk/org/gjt/sp/jedit/EditPane.java 2008-07-20 22:08:23 UTC (rev 13072) @@ -704,6 +704,15 @@ { this.bufferSet.removeBufferSetListener(this); } + if (bufferSet.size() == 0) + { + int untitledCount = jEdit.getNextUntitledBufferId(); + Buffer newEmptyBuffer = jEdit.openTemporary(jEdit.getActiveView(), null, + "Untitled-" + untitledCount,true, null); + jEdit.commitTemporary(newEmptyBuffer); + jEdit.getBufferSetManager().addBuffer(bufferSet, newEmptyBuffer); + } + this.bufferSet = bufferSet; bufferSet.addBufferSetListener(this); if (bufferSwitcher != null) @@ -783,6 +792,15 @@ setBuffer(bufferSet.getBuffer(0)); recentBuffer = null; } + else + { + int untitledCount = jEdit.getNextUntitledBufferId(); + Buffer newEmptyBuffer = jEdit.openTemporary(jEdit.getActiveView(), null, + "Untitled-" + untitledCount,true, null); + jEdit.commitTemporary(newEmptyBuffer); + jEdit.getBufferSetManager().addBuffer(bufferSet, newEmptyBuffer); + setBuffer(newEmptyBuffer); + } } if(buffer == recentBuffer) recentBuffer = null; @@ -811,8 +829,14 @@ */ public void bufferCleared() { - if (bufferSwitcher != null) - bufferSwitcher.updateBufferList(); + int untitledCount = jEdit.getNextUntitledBufferId(); + Buffer newEmptyBuffer = jEdit.openTemporary(jEdit.getActiveView(), null, + "Untitled-" + untitledCount,true, null); + jEdit.commitTemporary(newEmptyBuffer); + jEdit.getBufferSetManager().addBuffer(bufferSet, newEmptyBuffer); + setBuffer(newEmptyBuffer); +// if (bufferSwitcher != null) +// bufferSwitcher.updateBufferList(); } //}}} //{{{ toString() method Modified: jEdit/trunk/org/gjt/sp/jedit/bufferset/BufferSetManager.java =================================================================== --- jEdit/trunk/org/gjt/sp/jedit/bufferset/BufferSetManager.java 2008-07-20 20:56:14 UTC (rev 13071) +++ jEdit/trunk/org/gjt/sp/jedit/bufferset/BufferSetManager.java 2008-07-20 22:08:23 UTC (rev 13072) @@ -69,7 +69,6 @@ viewBufferSetMap = Collections.synchronizedMap(new HashMap<View, BufferSet>()); editPaneBufferSetMap = Collections.synchronizedMap(new HashMap<EditPane, BufferSet>()); bufferBufferSetMap = Collections.synchronizedMap(new HashMap<Buffer, Set<BufferSet>>()); - emptyBufferSets = Collections.synchronizedSet(new HashSet<BufferSet>()); EditBus.addToBus(this); } //}}} @@ -143,11 +142,7 @@ bufferSet = createBufferSet(BufferSet.Scope.editpane,source); editPaneBufferSetMap.put(editPane, bufferSet); } - if (bufferSet.size() == 0) - { - emptyBufferSets.add(bufferSet); - addNewUntitledBufferTopEmptyBufferSets(); - } + return bufferSet; } @@ -228,10 +223,7 @@ Set<BufferSet> bufferSets = bufferBufferSetMap.get(buffer); bufferSets.remove(bufferSet); bufferSet.removeBuffer(buffer); - if (bufferSet.size() == 0) - { - emptyBufferSets.add(bufferSet); - } + if (bufferSets.isEmpty()) { Log.log(Log.DEBUG, this, "Buffer:"+buffer+" is in no bufferSet anymore, closing it"); @@ -279,10 +271,6 @@ for (BufferSet bufferSet : sets) { bufferSet.removeBuffer(buffer); - if (bufferSet.size() == 0) - { - emptyBufferSets.add(bufferSet); - } } } //}}} @@ -298,52 +286,10 @@ public void visit(BufferSet bufferSet) { bufferSet.clear(); - emptyBufferSets.add(bufferSet); } }); } //}}} - //{{{ addNewUntitledBufferTopEmptyBufferSets() method - public void addNewUntitledBufferTopEmptyBufferSets() - { - if (emptyBufferSets.isEmpty()) - return; - int untitledCount = jEdit.getNextUntitledBufferId(); - Buffer newEmptyBuffer = jEdit.openTemporary(jEdit.getActiveView(), null, - "Untitled-" + untitledCount,true, null); - jEdit.commitTemporary(newEmptyBuffer); - addBufferToEmptyBufferSets(newEmptyBuffer); - } //}}} - - //{{{ addBufferToEmptyBufferSets() method - /** - * Add this buffer to all empty buffersets. - * Usually it will be a new untitled bufferSet - * - * @param buffer the buffer to add - */ - private void addBufferToEmptyBufferSets(Buffer buffer) - { - Set<BufferSet> sets = bufferBufferSetMap.get(buffer); - if (sets == null) - { - sets = new HashSet<BufferSet>(); - bufferBufferSetMap.put(buffer, sets); - } - synchronized (emptyBufferSets) - { - for (BufferSet bufferSet : emptyBufferSets) - { - if (bufferSet.size() == 0) - { - sets.add(bufferSet); - bufferSet.addBuffer(buffer); - } - } - emptyBufferSets.clear(); - } - } //}}} - //{{{ visit() method /** * This method will visit all buffersets. @@ -376,12 +322,6 @@ /** The BufferSets that contains the Buffer. */ private final Map<Buffer, Set<BufferSet>> bufferBufferSetMap; - - /** - * This set contains the buffersets that are currently empty. - * They will need to get a new buffer quickly - */ - private final Set<BufferSet> emptyBufferSets; //}}} Modified: jEdit/trunk/org/gjt/sp/jedit/jEdit.java =================================================================== --- jEdit/trunk/org/gjt/sp/jedit/jEdit.java 2008-07-20 20:56:14 UTC (rev 13071) +++ jEdit/trunk/org/gjt/sp/jedit/jEdit.java 2008-07-20 22:08:23 UTC (rev 13072) @@ -1720,7 +1720,6 @@ { bufferSetManager.removeBuffer(editPane, buffer); } - bufferSetManager.addNewUntitledBufferTopEmptyBufferSets(); } //}}} //{{{ _closeBuffer() method @@ -1772,8 +1771,6 @@ EditBus.send(new BufferUpdate(buffer,view,BufferUpdate.CLOSED)); if(jEdit.getBooleanProperty("persistentMarkers")) buffer.updateMarkersFile(view); - - bufferSetManager.addNewUntitledBufferTopEmptyBufferSets(); } //}}} //{{{ closeAllBuffers() methods @@ -1831,7 +1828,6 @@ // zero it here so that BufferTabs doesn't have any problems buffersFirst = buffersLast = null; bufferHash.clear(); - bufferSetManager.clear(); bufferCount = 0; while(buffer != null) @@ -1858,11 +1854,7 @@ buffer = buffer.next; } - if(!isExiting) - { - bufferSetManager.addNewUntitledBufferTopEmptyBufferSets(); - } - + bufferSetManager.clear(); PerspectiveManager.setPerspectiveDirty(true); return true; @@ -2037,24 +2029,33 @@ //{{{ getLastBuffer() method /** * Returns the last buffer. + * @return the last buffer */ public static Buffer getLastBuffer() { return buffersLast; } //}}} + //{{{ getBufferSetManager() method + /** + * Returns the bufferSet manager. + * @return the bufferSetManager + * @since jEdit 4.3pre15 + */ public static BufferSetManager getBufferSetManager() { return bufferSetManager; - } + } //}}} + //{{{ getPropertyManager() method /** + * @returns the propertyManager * @since jEdit 4.3pre15 */ public static JEditPropertyManager getPropertyManager() { return propertyManager; - } + } //}}} //{{{ checkBufferStatus() methods /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |