Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/editor/org.eclipse.papyrus.eclipse.project.editors/src/org/eclipse/papyrus/eclipse/project/editors/file/AbstractFileEditor.java')
-rw-r--r--plugins/editor/org.eclipse.papyrus.eclipse.project.editors/src/org/eclipse/papyrus/eclipse/project/editors/file/AbstractFileEditor.java75
1 files changed, 46 insertions, 29 deletions
diff --git a/plugins/editor/org.eclipse.papyrus.eclipse.project.editors/src/org/eclipse/papyrus/eclipse/project/editors/file/AbstractFileEditor.java b/plugins/editor/org.eclipse.papyrus.eclipse.project.editors/src/org/eclipse/papyrus/eclipse/project/editors/file/AbstractFileEditor.java
index 2fbe4dd44a1..7279d4d4e8c 100644
--- a/plugins/editor/org.eclipse.papyrus.eclipse.project.editors/src/org/eclipse/papyrus/eclipse/project/editors/file/AbstractFileEditor.java
+++ b/plugins/editor/org.eclipse.papyrus.eclipse.project.editors/src/org/eclipse/papyrus/eclipse/project/editors/file/AbstractFileEditor.java
@@ -1,6 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
- *
+ * Copyright (c) 2011, 2016 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -9,6 +8,7 @@
*
* Contributors:
* Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ * Christian W. Damus - bug 485220
*
*****************************************************************************/
package org.eclipse.papyrus.eclipse.project.editors.file;
@@ -33,6 +33,7 @@ public abstract class AbstractFileEditor implements IFileEditor {
/** the Eclipse Project */
private final IProject project;
+ private boolean dirty;
/**
*
@@ -48,28 +49,19 @@ public abstract class AbstractFileEditor implements IFileEditor {
/**
*
* @return
- * the eclipse project
+ * the eclipse project
*/
+ @Override
public IProject getProject() {
return this.project;
}
- /**
- *
- * @see org.eclipse.papyrus.eclipse.project.editors.project.AbstractProjectEditor#init()
- *
- * {@inheritDoc}
- */
+ @Override
public void init() {
-
+ // Pass
}
- /**
- *
- * @see org.eclipse.papyrus.eclipse.project.editors.interfaces.IProjectEditor#getMissingFiles()
- *
- * {@inheritDoc}
- */
+ @Override
public Set<String> getMissingFiles() {
return new HashSet<String>();
}
@@ -79,7 +71,7 @@ public abstract class AbstractFileEditor implements IFileEditor {
* @param text
* the initial text
* @return
- * an input stream
+ * an input stream
*/
protected InputStream getInputStream(final String text) {
if (text == null) {
@@ -99,24 +91,49 @@ public abstract class AbstractFileEditor implements IFileEditor {
return is;
}
- /**
- *
- * @see org.eclipse.papyrus.eclipse.project.editors.project.AbstractProjectEditor.plugin.AbstractEditor#exists()
- *
- * {@inheritDoc}
- */
+ @Override
public boolean exists() {
return getMissingFiles().size() == 0;
}
- /**
- *
- * @see org.eclipse.papyrus.eclipse.project.editors.interfaces.IFileEditor#create()
- *
- * {@inheritDoc}
- */
+ @Override
public void create() {
createFiles(getMissingFiles());
init();
}
+
+ /**
+ * @since 2.0
+ */
+ @Override
+ public boolean isDirty() {
+ return dirty;
+ }
+
+ /**
+ * Marks me {@linkplain #isDirty() dirty}.
+ *
+ * @since 2.0
+ */
+ protected final void touch() {
+ this.dirty = true;
+ }
+
+ /**
+ * @since 2.0
+ */
+ @Override
+ public final void save() {
+ if (isDirty()) {
+ doSave();
+ dirty = false;
+ }
+ }
+
+ /**
+ * Implemented by subclasses to perform the save behaviour.
+ *
+ * @since 2.0
+ */
+ protected abstract void doSave();
}

Back to the top