Ich benütze für dieses Mal eine Online-Source-Datenbank (hier kickjava.com).
Hier kann man den Sourcecode von Java-Klassen schön formatiert und meistens verlinkt betrachten.
Die Syntax ist recht einfach, so dass man schnell eigenen Anfragen über die URL starten kann:
z.B. http://kickjava.com/src/org/eclipse/ui/internal/EditorManager.java.htm
org.eclipse.ui.internal.WorkbenchPage
public void hideView(IViewReference ref) {
….
if (view instanceof ISaveablePart){
ISaveablePart saveable = (ISaveablePart)view;
if (saveable.isSaveOnCloseNeeded()) {
IWorkbenchWindow window = view.getSite().getWorkbenchWindow();
boolean success = EditorManager.saveAll(Collections.singletonList(view), true, true, false, window);
if (!success) {
// the user cancelled.
return;
}
promptedForSave = true;
}
}
}
….
nun das org.eclipse.ui.internal.EditorManager.saveAll
979 public boolean saveAll(boolean confirm, boolean closing, boolean addNonPartSources) {
980 // Get the list of dirty editors and views. If it is
981 // empty just return.
982 ISaveablePart[] parts = page.getDirtyParts();
983 if (parts.length == 0) {
984 return true;
985 }
986 // saveAll below expects a mutable list
987 List
dirtyParts = new ArrayList
(parts.length);
988 for (int i = 0; i < parts.length; i++) {
989 dirtyParts.add(parts[i]);
990 }
991
992 // If confirmation is required ..
993 return saveAll(dirtyParts, confirm, closing, addNonPartSources, window);
994 }
995
Also alle, die dirty sind werden abgespeichert.
Zusammenfassend:
Das Interface ISaveablePart implementieren
isSaveOnCloseNeeded implementieren
isDirty implementieren
(wenn isDirty true zurückgibt, dann erscheint ein kleines Sternchen neben der Tab-Überschrift, so wie man es von Eclipse-Editoren kennt, in denen man editiert hat)
Tags: automatisches speichern, Eclipse, Save, View