Merge branch 'master' of git://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.reviews
diff --git a/org.eclipse.mylyn.reviews.frame.core/.classpath b/org.eclipse.mylyn.reviews.frame.core/.classpath
index 0215967..64c5e31 100644
--- a/org.eclipse.mylyn.reviews.frame.core/.classpath
+++ b/org.eclipse.mylyn.reviews.frame.core/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.mylyn.reviews.frame.core/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.reviews.frame.core/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..4fa3936
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.frame.core/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Tue Feb 15 13:54:53 PST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.eclipse.mylyn.reviews.frame.core/META-INF/MANIFEST.MF b/org.eclipse.mylyn.reviews.frame.core/META-INF/MANIFEST.MF
index 61ad2c2..75db36f 100644
--- a/org.eclipse.mylyn.reviews.frame.core/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.reviews.frame.core/META-INF/MANIFEST.MF
@@ -7,10 +7,10 @@
Bundle-Vendor: %providerName
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.mylyn.reviews.frame.core.model,
- org.eclipse.mylyn.reviews.frame.core.model.impl,
- org.eclipse.mylyn.reviews.frame.core.model.util,
- org.eclipse.mylyn.reviews.frame.core.utils
+Export-Package: org.eclipse.mylyn.reviews.frame.core.model;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.frame.core.model.impl;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.frame.core.model.util;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.frame.core.utils;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.ui, org.eclipse.mylyn.reviews.r4e.core.tests"
Require-Bundle:
org.eclipse.core.runtime;bundle-version="3.5.0",
org.eclipse.emf.ecore;bundle-version="2.5.0"
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/.classpath b/org.eclipse.mylyn.reviews.r4e.core.tests/.classpath
index 617fb64..d7c742e 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/.classpath
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/.classpath
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="src" path="stubs"/>
- <classpathentry kind="src" path="egitImport"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="stubs"/>
+ <classpathentry kind="src" path="egitImport"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.reviews.r4e.core.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..08611d3
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Tue Feb 15 13:31:31 PST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/META-INF/MANIFEST.MF b/org.eclipse.mylyn.reviews.r4e.core.tests/META-INF/MANIFEST.MF
index 258ed9b..a2b6180 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/META-INF/MANIFEST.MF
@@ -7,12 +7,19 @@
Bundle-Vendor: %providerName
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.mylyn.reviews.r4e.core.model.tests
+Export-Package: org.eclipse.egit.core.test;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.core;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.core.model.impl;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.core.model.serial;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.core.model.serial.impl;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.core.model.tests;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.core.rfs;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.core.utils.filePermission;x-internal:=true
Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.mylyn.reviews.r4e.core;visibility:=reexport,
- org.eclipse.mylyn.reviews.frame.core;visibility:=reexport,
- org.eclipse.emf.ecore.xmi;visibility:=reexport,
- org.junit4;visibility:=reexport,
+ org.eclipse.mylyn.reviews.r4e.core,
+ org.eclipse.mylyn.reviews.frame.core,
+ org.eclipse.emf.ecore.xmi,
+ org.junit4,
org.apache.commons.io;bundle-version="1.4.0",
org.eclipse.egit.core;bundle-version="0.10.1",
org.eclipse.jgit;bundle-version="0.10.1",
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/egitImport/org/eclipse/egit/core/test/AdaptableFileTreeIteratorTest.java b/org.eclipse.mylyn.reviews.r4e.core.tests/egitImport/org/eclipse/egit/core/test/AdaptableFileTreeIteratorTest.java
index c4355a2..bc8a277 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/egitImport/org/eclipse/egit/core/test/AdaptableFileTreeIteratorTest.java
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/egitImport/org/eclipse/egit/core/test/AdaptableFileTreeIteratorTest.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (C) 2009, Tor Arne Vestbø <torarnv@gmail.com>
+ * Copyright (C) 2009, Tor Arne Vestbø <torarnv@gmail.com>
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/egitImport/org/eclipse/jgit/junit/MockSystemReader.java b/org.eclipse.mylyn.reviews.r4e.core.tests/egitImport/org/eclipse/jgit/junit/MockSystemReader.java
index 5c2e77f..b53dce2 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/egitImport/org/eclipse/jgit/junit/MockSystemReader.java
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/egitImport/org/eclipse/jgit/junit/MockSystemReader.java
@@ -45,39 +45,50 @@
package org.eclipse.jgit.junit;
+import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.TimeZone;
import org.eclipse.jgit.errors.ConfigInvalidException;
+import org.eclipse.jgit.lib.Config;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.storage.file.FileBasedConfig;
import org.eclipse.jgit.util.FS;
import org.eclipse.jgit.util.SystemReader;
public class MockSystemReader extends SystemReader {
+ private final class MockConfig extends FileBasedConfig {
+ private MockConfig(File cfgLocation, FS fs) {
+ super(cfgLocation, fs);
+ }
+
+ @Override
+ public void load() throws IOException, ConfigInvalidException {
+ // Do nothing
+ }
+
+ @Override
+ public boolean isOutdated() {
+ return false;
+ }
+ }
+
final Map<String, String> values = new HashMap<String, String>();
FileBasedConfig userGitConfig;
+ FileBasedConfig systemGitConfig;
+
public MockSystemReader() {
init(Constants.OS_USER_NAME_KEY);
init(Constants.GIT_AUTHOR_NAME_KEY);
init(Constants.GIT_AUTHOR_EMAIL_KEY);
init(Constants.GIT_COMMITTER_NAME_KEY);
init(Constants.GIT_COMMITTER_EMAIL_KEY);
- userGitConfig = new FileBasedConfig(null, null) {
- @Override
- public void load() throws IOException, ConfigInvalidException {
- // Do nothing
- }
-
- @Override
- public boolean isOutdated() {
- return false;
- }
- };
+ userGitConfig = new MockConfig(null, null);
+ systemGitConfig = new MockConfig(null, null);
}
private void init(final String n) {
@@ -103,11 +114,18 @@
}
@Override
- public FileBasedConfig openUserConfig(FS fs) {
+ public FileBasedConfig openUserConfig(Config parent, FS fs) {
+ assert parent == null || parent == systemGitConfig;
return userGitConfig;
}
@Override
+ public FileBasedConfig openSystemConfig(Config parent, FS fs) {
+ assert parent == null;
+ return systemGitConfig;
+ }
+
+ @Override
public String getHostname() {
return "fake.host.example.com";
}
@@ -121,4 +139,5 @@
public int getTimezone(long when) {
return TimeZone.getTimeZone("GMT-03:30").getOffset(when) / (60 * 1000);
}
+
}
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/TstGeneral.java b/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/TstGeneral.java
index a3de29b..896a5ec 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/TstGeneral.java
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/TstGeneral.java
@@ -28,8 +28,15 @@
public static final String GROUP_PATH_STR = "outGroupX";
public static final String GOLDEN_GROUP_DIR_STR = "stubs_model/" + GROUP_PATH_STR;
public static final String GOLDEN_GROUP_FILE_STR = GOLDEN_GROUP_DIR_STR + "/Golden_Group_group_root.xrer";
-
+
+ //Windows specific
+ public static final String GROUP_PATH_STRW = "outGroupW";
+ public static final String GOLDEN_GROUP_DIR_STRW = "stubs_model/" + GROUP_PATH_STRW;
+ public static final String GOLDEN_GROUP_FILE_STRW = GOLDEN_GROUP_DIR_STRW + "/Golden_Group_group_root.xrer";
+
+
public static final URI GOLDEN_GROUP_DIR = URI.createFileURI(GOLDEN_GROUP_DIR_STR);
+ public static final URI GOLDEN_GROUP_DIRW = URI.createFileURI(GOLDEN_GROUP_DIR_STRW);
public static final URI GOLDEN_GROUP_FILE = URI.createFileURI(GOLDEN_GROUP_FILE_STR);
// ------------------------------------------------------------------------
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/model/serial/PersistenceTest.java b/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/model/serial/PersistenceTest.java
index a6e34fe..5529556 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/model/serial/PersistenceTest.java
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/model/serial/PersistenceTest.java
@@ -70,14 +70,19 @@
*/
@Before
public void setUp() throws Exception {
- fRootTestDir = new File(System.getProperty("java.io.tmpdir") + "r4eTst");
+ String base = System.getProperty("java.io.tmpdir");
+ if (!base.endsWith(File.separator)) {
+ base = base + File.separator;
+ }
+
+ fRootTestDir = new File(base + "r4eTst");
// Resolve golden group storage dir
String rootFile = fGoldenGroup.lastSegment();
File goldenDir = new File(fGoldenGroup.trimSegments(1).devicePath());
// Take the directory name to be used as copy destination
- String testDir = fRootTestDir.toString() + fSep + "OutL1" + fSep + "OutL2" + fSep + goldenDir.getName();
+ String testDir = fRootTestDir.toString() + "OutL1" + fSep + "OutL2" + fSep + goldenDir.getName();
fTestDir = new File(testDir);
// Determine the location of the group file in the destination folder
@@ -176,7 +181,7 @@
* Testing writing permissions
*/
public void testReadWritePermissions() {
- String dirName = fRootTestDir.toString() + fSep + "tFolder";
+ String dirName = fRootTestDir.toString() + "tFolder";
File tfolder = new File(dirName);
tfolder.mkdir();
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/model/serial/impl/CommonTest.java b/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/model/serial/impl/CommonTest.java
index c7d3ab8..8012550 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/model/serial/impl/CommonTest.java
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/model/serial/impl/CommonTest.java
@@ -52,6 +52,9 @@
super(name);
fTmpDir = System.getProperty("java.io.tmpdir");
fSep = File.separator;
+ if (!fTmpDir.endsWith(File.separator)) {
+ fTmpDir = fTmpDir + fSep;
+ }
}
/**
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/model/tests/GoldenStubHandler.java b/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/model/tests/GoldenStubHandler.java
index 0e335c0..7d77327 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/model/tests/GoldenStubHandler.java
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/model/tests/GoldenStubHandler.java
@@ -42,9 +42,8 @@
*/
protected R4EReviewGroup fixture = null;
private static final RModelFactoryExt fFactory = SerializeFactory.getModelExtension();
- private static File fGroupDir = new File(System.getProperty("java.io.tmpdir")
- + TstGeneral.GROUP_PATH_STR + File.separator);
- private static URI fGroupPath = URI.createFileURI(fGroupDir.getAbsolutePath());
+ private static File fGroupDir = null;
+ private static URI fGroupPath = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
@@ -89,9 +88,22 @@
*/
@Override
protected void setUp() throws Exception {
- TstGeneral.activateTracer();
+ init();
}
+ private static void init() {
+ TstGeneral.activateTracer();
+ //get a base temporary directory ending with file separator e.g. /tmp/
+ String basePath = System.getProperty("java.io.tmpdir");
+ if (!basePath.endsWith(File.separator)) {
+ //e.g. Linux
+ basePath = basePath + File.separator;
+ }
+ fGroupDir = new File(basePath
+ + TstGeneral.GROUP_PATH_STR + File.separator);
+ fGroupPath = URI.createFileURI(fGroupDir.getAbsolutePath());
+ }
+
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
@@ -123,7 +135,11 @@
// NOTE: No Clean up, for creation of golden test stub
}
+
public static R4EReviewGroup serializeStub() throws ResourceHandlingException {
+ if (fGroupPath == null) {
+ init();
+ }
String groupPath = fGroupPath.devicePath();
String groupName = "Golden Group";
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/model/tests/R4EReviewGroupTest.java b/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/model/tests/R4EReviewGroupTest.java
index d2e2b6a..d5e0f69 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/model/tests/R4EReviewGroupTest.java
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/model/tests/R4EReviewGroupTest.java
@@ -45,6 +45,7 @@
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.R4EWriter;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.SerializeFactory;
+import org.eclipse.mylyn.reviews.r4e.core.utils.sys.OSPLATFORM;
/**
* <!-- begin-user-doc --> A test case for the model object '<em><b>R4E Review Group</b></em>'. <!-- end-user-doc -->
@@ -120,6 +121,9 @@
protected void setUp() throws Exception {
TstGeneral.activateTracer();
String baseDir = System.getProperty("java.io.tmpdir");
+ if (!baseDir.endsWith(File.separator)) {
+ baseDir = baseDir + File.separator;
+ }
fRootTestDir = new File(baseDir + fGroupPathStr + File.separator);
fGroupPath = URI.createFileURI(fRootTestDir.getAbsolutePath());
}
@@ -251,10 +255,16 @@
assertEquals(3, loadedGroup.getReviewsMap().size());
assertEquals(3, loadedGroup.getUserReviews().size());
+ //Select the golden file as per operating system
+ URI goldenDir = TstGeneral.GOLDEN_GROUP_DIR;
+ if (OSPLATFORM.TYPE.isWindowsOS()) {
+ goldenDir = TstGeneral.GOLDEN_GROUP_DIRW;
+ }
+
// This check is done comparing the size only. to eliminate the changes from Id values e.g. equal size per id.
// good enough for the time being.
boolean same = TstGeneral.compareDirectories(new File(fGroupPath.devicePath()), new File(
- TstGeneral.GOLDEN_GROUP_DIR.devicePath()));
+ goldenDir.devicePath()));
assertTrue("Contents differ from base directory", same);
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/rfs/ReviewsRepoTest.java b/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/rfs/ReviewsRepoTest.java
new file mode 100644
index 0000000..cc4839f
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/rfs/ReviewsRepoTest.java
@@ -0,0 +1,115 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * Contributors:
+ * Alvaro Sanchez-Leon - Initial Implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.reviews.r4e.core.rfs;
+
+import static org.junit.Assert.fail;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+
+import junit.framework.TestCase;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.eclipse.jgit.lib.ObjectId;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class ReviewsRepoTest {
+ // ------------------------------------------------------------------------
+ // Constants
+ // ------------------------------------------------------------------------
+ String fRootDir = null;
+ ReviewsRFSProxy fRepoProx = null;
+
+ // ------------------------------------------------------------------------
+ // setUp and tearDown
+ // ------------------------------------------------------------------------
+ @Before
+ public void setUp() throws Exception {
+ fRootDir = System.getProperty("java.io.tmpdir");
+ if (!fRootDir.endsWith(File.separator)) {
+ fRootDir += File.separator;
+ }
+
+ // point to location
+ fRepoProx = new ReviewsRFSProxy(new File(fRootDir), true);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ // Remove repository
+ if (fRepoProx != null) {
+ File repoDir = fRepoProx.getRepository().getDirectory();
+ FileUtils.deleteDirectory(repoDir);
+ fRepoProx.close();
+ }
+ }
+
+ // ------------------------------------------------------------------------
+ // Test methods
+ // ------------------------------------------------------------------------
+ @Test
+ public void testRegisterReviewBlobByteArray() {
+ String strContent = new String("The Content");
+ byte[] content = strContent.getBytes();
+ ObjectId id = null;
+ InputStream is = null;
+ try {
+ id = fRepoProx.registerReviewBlob(content);
+ fRepoProx.registerReviewBlob(new String("The Content 2").getBytes());
+ is = fRepoProx.getBlobContent(null, id);
+ } catch (Exception e) {
+ e.printStackTrace();
+ fail("Exception");
+ }
+
+ TestCase.assertNotNull("blob stream is null", is);
+ try {
+ TestCase.assertEquals(strContent, IOUtils.toString(is));
+ } catch (IOException e) {
+ e.printStackTrace();
+ fail("Exception");
+ }
+ }
+
+ @Test
+ public void testGetRepoRegistry() {
+
+ }
+
+ @Test
+ public void testSwitchRepoRegistries() {
+
+ }
+
+ @Test
+ public void testGetRepoRegistryException() {
+
+ }
+
+ @Test
+ public void testGetBlobFromPackedRepo() {
+ fail("Not yet implemented");
+ }
+
+ @Test
+ public void testWrittePermissionSetting() {
+ fail("Not yet implemented");
+ }
+
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/versions/ReviewsVersionsIFTst.java b/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/rfs/ReviewsVersionsIFTst.java
similarity index 91%
rename from org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/versions/ReviewsVersionsIFTst.java
rename to org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/rfs/ReviewsVersionsIFTst.java
index 39d3e76..a34cd56 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/versions/ReviewsVersionsIFTst.java
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/rfs/ReviewsVersionsIFTst.java
@@ -12,10 +12,7 @@
* Alvaro Sanchez-Leon - Initial Implementation
*******************************************************************************/
-/**
- *
- */
-package org.eclipse.mylyn.reviews.r4e.core.versions;
+package org.eclipse.mylyn.reviews.r4e.core.rfs;
import static org.junit.Assert.fail;
@@ -42,8 +39,11 @@
import org.eclipse.mylyn.reviews.r4e.core.model.R4EItem;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EUser;
import org.eclipse.mylyn.reviews.r4e.core.model.RModelFactory;
+import org.eclipse.mylyn.reviews.r4e.core.versions.ReviewVersionsException;
+import org.eclipse.mylyn.reviews.r4e.core.versions.ReviewsVersionsIF;
import org.eclipse.mylyn.reviews.r4e.core.versions.ReviewsVersionsIF.CommitDescriptor;
import org.eclipse.mylyn.reviews.r4e.core.versions.ReviewsVersionsIF.FileVersionInfo;
+import org.eclipse.mylyn.reviews.r4e.core.versions.ReviewsVersionsIFFactory;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -53,7 +53,9 @@
*
*/
public class ReviewsVersionsIFTst extends GitTestCase {
-
+ // ------------------------------------------------------------------------
+ // Constants
+ // ------------------------------------------------------------------------
private IProject fIProject = null;
private TestRepository testRepo = null;
private Repository repo = null;
@@ -63,6 +65,9 @@
private IFile ifileB = null;
+ // ------------------------------------------------------------------------
+ // Setup and Teardown
+ // ------------------------------------------------------------------------
/**
* @throws java.lang.Exception
*/
@@ -105,6 +110,9 @@
super.tearDown();
}
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
/**
* Test method for
* {@link org.eclipse.mylyn.reviews.r4e.core.versions.impl.ReviewsVersionsIF#isProviderSupported(org.eclipse.core.resources.IProject)}
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/versions/TstGIT.java b/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/rfs/TstGIT.java
similarity index 98%
rename from org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/versions/TstGIT.java
rename to org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/rfs/TstGIT.java
index 2c8a205..ff5cf39 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/versions/TstGIT.java
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/rfs/TstGIT.java
@@ -12,7 +12,7 @@
* Alvaro Sanchez-Leon - Initial Implementation
*******************************************************************************/
-package org.eclipse.mylyn.reviews.r4e.core.versions;
+package org.eclipse.mylyn.reviews.r4e.core.rfs;
import static org.eclipse.jgit.lib.Constants.HEAD;
@@ -250,6 +250,21 @@
System.out.println("Resource resolved: " + genURI.toString());
}
+ @Test
+ public void createRepository() {
+
+ }
+
+ @Test
+ public void insertObject() {
+
+ }
+
+ @Test
+ public void retrieveObject() {
+
+ }
+
// ------------------------------------------------------------------------
// Private methods
// ------------------------------------------------------------------------
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/utils/filePermission/OSPermissionTest.java b/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/utils/filePermission/OSPermissionTest.java
index 7ab4693..de51f2c 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/utils/filePermission/OSPermissionTest.java
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/src/org/eclipse/mylyn/reviews/r4e/core/utils/filePermission/OSPermissionTest.java
@@ -20,6 +20,7 @@
import junit.framework.TestCase;
import org.apache.commons.io.FileUtils;
+import org.eclipse.mylyn.reviews.r4e.core.Activator;
import org.eclipse.mylyn.reviews.r4e.core.TstGeneral;
/**
@@ -41,7 +42,7 @@
*
* @see org.eclipse.mylyn.reviews.r4e.core.utils.filePermission.WindowPermission
*/
- private WindowPermission winPerm = new WindowPermission();
+ private IFileSupportCommand perm = FileSupportCommandFactory.getInstance();
/**
* Construct new test instance
@@ -80,13 +81,17 @@
* Run the boolean changePermission(String) method test
*/
public void testChangePermission() {
- // add test code here
- String dirStr = System.getProperty("java.io.tmpdir") + "PermDirTest" + File.separator;
+ String base = System.getProperty("java.io.tmpdir");
+ if (!base.endsWith(File.separator)) {
+ base = base + File.separator;
+ }
+
+ String dirStr = base + "PermDirTest" + File.separator;
File dir = new File(dirStr);
dir.mkdir();
try {
- assertTrue(winPerm.grantWritePermission(dirStr));
+ assertTrue(perm.grantWritePermission(dirStr));
} catch (IOException e) {
e.printStackTrace();
fail("Exception");
@@ -99,6 +104,50 @@
fail("Exception");
}
}
+
+ /**
+ * Run the boolean changePermission(String) method test
+ */
+ public void testChangePermissionFailed() {
+ // add test code here
+ String base = System.getProperty("java.io.tmpdir");
+ if (!base.endsWith(File.separator)) {
+ base = base + File.separator;
+ }
+ String dirStr = base + "PermDirTest" + File.separator;
+ File dir = new File(dirStr);
+ dir.mkdir();
+
+ try {
+ assertFalse(perm.grantWritePermission(dirStr + "1"));
+ } catch (IOException e) {
+ Activator.fTracer.traceDebug("IOException received as expected, the directory does not exist");
+ }
+
+ try {
+ FileUtils.deleteDirectory(dir);
+ } catch (IOException e) {
+ e.printStackTrace();
+ fail("Exception");
+ }
+ }
+
+ // /**
+ // * File exist but not allowed to change it
+ // */
+ // public void testChangePermissionFailed2() {
+ // String dirStr = "Y:" + File.separator + "solaris";
+ //
+ // try {
+ // // pointing to a read only file/folder, permission denied
+ // assertFalse(perm.grantWritePermission(dirStr));
+ // // assertTrue(perm.grantWritePermission(dirStr));
+ // } catch (IOException e) {
+ // // no exception expected
+ // e.printStackTrace();
+ // fail("Exception");
+ // }
+ // }
}
/*$CPS$ This comment was generated by CodePro. Do not edit it.
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs/org/eclipse/mylyn/reviews/r4e/core/model/impl/GroupSampl.java b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs/org/eclipse/mylyn/reviews/r4e/core/model/impl/GroupSampl.java
index c332981..6594823 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs/org/eclipse/mylyn/reviews/r4e/core/model/impl/GroupSampl.java
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs/org/eclipse/mylyn/reviews/r4e/core/model/impl/GroupSampl.java
@@ -119,7 +119,6 @@
Date startDate = indCal.getTime();
// 2 days after
Date endDate = new Date(startDate.getTime() + 2 * 24 * 60 * 60 * 1000);
- review1.setCreationDate(startDate);
review1.setStartDate(startDate);
review1.setEndDate(endDate);
} catch (ResourceHandlingException e) {
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs/org/eclipse/mylyn/reviews/r4e/core/model/impl/ReviewSampl.java b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs/org/eclipse/mylyn/reviews/r4e/core/model/impl/ReviewSampl.java
index ee6305b..672c73a 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs/org/eclipse/mylyn/reviews/r4e/core/model/impl/ReviewSampl.java
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs/org/eclipse/mylyn/reviews/r4e/core/model/impl/ReviewSampl.java
@@ -19,16 +19,19 @@
import java.util.ArrayList;
import java.util.Calendar;
+import java.util.Collection;
import java.util.Date;
import java.util.GregorianCalendar;
+import java.util.Iterator;
import java.util.List;
import org.eclipse.emf.common.util.EList;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomalyTextPosition;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EComment;
-import org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentEnum;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentClass;
import org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentType;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EContextType;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EDecision;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EDelta;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EFileContext;
@@ -85,7 +88,6 @@
Date startDate = indCal.getTime();
// 2 days after
Date endDate = new Date(startDate.getTime() + 2 * 24 * 60 * 60 * 1000);
- fReview.setCreationDate(startDate);
fReview.setStartDate(startDate);
fReview.setEndDate(endDate);
@@ -113,12 +115,19 @@
} catch (ResourceHandlingException e3) {
e3.printStackTrace();
}
- participant.setSpentTime(60);
+ participant.getTimeLog().put(startDate, 30);
+ participant.getTimeLog().put(endDate, 30);
+
participant.setFocusArea("Performance");
participant.setIsPartOfDecision(true);
participant.getGroupPaths().add("c:/users/test/group1/");
participant.getGroupPaths().add("c:/users/test/group2/");
- value += participant.getSpentTime();
+
+ Collection<Integer> userTimes = participant.getTimeLog().values();
+ for (Iterator<Integer> iterator = userTimes.iterator(); iterator.hasNext();) {
+ Integer time = iterator.next();
+ value += time;
+ }
R4EParticipant participant2 = null;
try {
@@ -126,13 +135,19 @@
} catch (ResourceHandlingException e2) {
e2.printStackTrace();
}
- participant2.setSpentTime(60);
+ participant2.getTimeLog().put(startDate, 30);
+ participant2.getTimeLog().put(endDate, 30);
participant2.setFocusArea("Feature");
participant2.setIsPartOfDecision(true);
participant2.getGroupPaths().add("c:/group1/");
participant2.getGroupPaths().add("c:/group2/");
- value += participant2.getSpentTime();
+ userTimes = participant2.getTimeLog().values();
+ for (Iterator<Integer> iterator = userTimes.iterator(); iterator.hasNext();) {
+ Integer time = iterator.next();
+ value += time;
+ }
+
// Anomaly
R4EAnomaly anomalyP1 = createAnomalies(participant);
R4EAnomaly anomalyP2 = createAnomalies(participant2);
@@ -209,7 +224,7 @@
// Additional comments from two users on the same anomaly
// Comments
R4ECommentType commType = RModelFactory.eINSTANCE.createR4ECommentType();
- commType.setType(R4ECommentEnum.R4E_COMMENT_BASE);
+ commType.setType(R4ECommentClass.R4E_CLASS_ERRONEOUS);
// comment1
R4EComment comment1 = null;
@@ -243,25 +258,35 @@
participant.getId() + "-Item to review 22" };
R4EItem item;
+
+ Calendar indCal = new GregorianCalendar(1867, Calendar.JULY, 1);
+ Date submittedDate = indCal.getTime();
+
for (int i = 0; i < itemDescriptions.length; i++) {
try {
item = fResFactory.createR4EItem(participant);
item.setDescription(itemDescriptions[i]);
item.setRepositoryRef("repository ref.." + i);
item.getProjectURIs().add("platform:resource/projX" + i);
+ item.setAuthorRep("changeAuthor_" + i);
+ item.setSubmitted(submittedDate);
+
R4EFileContext context = fResFactory.createR4EFileContext(item);
+ context.setType(R4EContextType.R4E_ADDED);
R4EFileVersion fvBase = fResFactory.createR4EBaseFileVersion(context);
fvBase.setName("file_" + i);
fvBase.setRepositoryPath("root/folder_" + i);
fvBase.setPlatformURI("platform:/resource/proj/src/dir3/dir4/file.xxx");
fvBase.setVersionID(Integer.toString(itemDescriptions[i].hashCode()));
+ fvBase.setLocalVersionID("locIdB_1234_" + i);
R4EFileVersion fvTarget = fResFactory.createR4ETargetFileVersion(context);
fvTarget.setName("file_" + i);
fvTarget.setRepositoryPath("root/folder_" + i);
fvTarget.setPlatformURI("platform:/resource/proj/src/dir6/dir7/file.yyy");
fvTarget.setVersionID(Integer.toString(itemDescriptions[i].hashCode() + 1));
+ fvTarget.setLocalVersionID("locIdT_1234_" + i);
R4EDelta delta = fResFactory.createR4EDelta(context);
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/Golden_Group_group_root.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/Golden_Group_group_root.xrer
new file mode 100644
index 0000000..3a1311a
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/Golden_Group_group_root.xrer
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="ASCII"?>
+<r4ecore:R4EReviewGroup xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_xxzSQERCEeC2DrmWDHmN2w" description="This is sample description - Group level" name="Golden Group" defaultEntryCriteria="-Entry Criteria" xmlVersion="1.0">
+ <reviewGroupTask xsi:type="r4ecore:R4ETaskReference" xmi:id="_x0s1QERCEeC2DrmWDHmN2w" taskId="324327" repositoryURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=324327"/>
+ <availableProjects>P1</availableProjects>
+ <availableProjects>P2</availableProjects>
+ <availableProjects>P3</availableProjects>
+ <availableComponents>Component1</availableComponents>
+ <availableComponents>Component2</availableComponents>
+ <availableComponents>Component3</availableComponents>
+ <designRuleLocations xsi:nil="true"/>
+ <availableAnomalyTypes xmi:id="_x0uqcERCEeC2DrmWDHmN2w" type="Erroneous"/>
+ <availableAnomalyTypes xmi:id="_x0uqckRCEeC2DrmWDHmN2w" type="Superflous"/>
+ <availableAnomalyTypes xmi:id="_x0uqdERCEeC2DrmWDHmN2w" type="Improvement"/>
+ <availableAnomalyTypes xmi:id="_x0uqdkRCEeC2DrmWDHmN2w" type="Question"/>
+</r4ecore:R4EReviewGroup>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/Jerry20_group_reviews.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/Jerry20_group_reviews.xrer
new file mode 100644
index 0000000..ab5a188
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/Jerry20_group_reviews.xrer
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ASCII"?>
+<r4ecore:R4EUserReviews xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_x6UVEkRCEeC2DrmWDHmN2w" name="Jerry20">
+ <invitedToMap xmi:id="_x6UVFERCEeC2DrmWDHmN2w" key="ReviewSampl">
+ <value href="ReviewSampl/ReviewSampl_review.xrer#_x22KUERCEeC2DrmWDHmN2w"/>
+ </invitedToMap>
+ <invitedToMap xmi:id="_yD1dc0RCEeC2DrmWDHmN2w" key="ReviewTwo">
+ <value href="ReviewTwo/ReviewTwo_review.xrer#_yC9Ts0RCEeC2DrmWDHmN2w"/>
+ </invitedToMap>
+ <group href="Golden_Group_group_root.xrer#_xxzSQERCEeC2DrmWDHmN2w"/>
+</r4ecore:R4EUserReviews>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/Review1/Review1_review.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/Review1/Review1_review.xrer
new file mode 100644
index 0000000..70587c2
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/Review1/Review1_review.xrer
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="ASCII"?>
+<r4ecore:R4EReview xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_x0yU0ERCEeC2DrmWDHmN2w" name="Review1" startDate="1867-07-01T00:00:00.000-0500" endDate="1867-07-03T00:00:00.000-0500">
+ <state xsi:type="r4ecore:R4EReviewState" xmi:id="_x2N4MERCEeC2DrmWDHmN2w"/>
+ <createdBy href="lmcalvs_comments.xrer#_x02mQURCEeC2DrmWDHmN2w"/>
+</r4ecore:R4EReview>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/Review1/lmcalvs_comments.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/Review1/lmcalvs_comments.xrer
new file mode 100644
index 0000000..177e1cf
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/Review1/lmcalvs_comments.xrer
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="ASCII"?>
+<r4ecore:R4EParticipant xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_x02mQURCEeC2DrmWDHmN2w" id="lmcalvs" reviewCreatedByMe="true">
+ <reviewInstance href="Review1_review.xrer#_x0yU0ERCEeC2DrmWDHmN2w"/>
+ <roles>R4E_ROLE_ORGANIZER</roles>
+</r4ecore:R4EParticipant>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewSampl/Jerry20_comments.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewSampl/Jerry20_comments.xrer
new file mode 100644
index 0000000..788b580
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewSampl/Jerry20_comments.xrer
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
+ <r4ecore:R4EParticipant xmi:id="_x6UVEURCEeC2DrmWDHmN2w" id="Jerry20" sequenceIDCounter="15" focusArea="Feature" isPartOfDecision="true">
+ <addedComments href="#_x78swERCEeC2DrmWDHmN2w"/>
+ <addedComments href="#_x8TSEERCEeC2DrmWDHmN2w"/>
+ <addedComments href="#_x8YKkURCEeC2DrmWDHmN2w"/>
+ <addedItems href="Jerry20_items.xrer#_yAWroERCEeC2DrmWDHmN2w"/>
+ <addedItems href="Jerry20_items.xrer#_yA9voURCEeC2DrmWDHmN2w"/>
+ <addedItems href="Jerry20_items.xrer#_yBmo0URCEeC2DrmWDHmN2w"/>
+ <addedItems href="Jerry20_items.xrer#_yCRXMERCEeC2DrmWDHmN2w"/>
+ <reviewInstance href="ReviewSampl_review.xrer#_x22KUERCEeC2DrmWDHmN2w"/>
+ <roles>R4E_ROLE_LEAD</roles>
+ <timeLog xmi:id="_x7ahQERCEeC2DrmWDHmN2w" key="1867-07-01T00:00:00.000-0500" value="30"/>
+ <timeLog xmi:id="_x7bIUERCEeC2DrmWDHmN2w" key="1867-07-03T00:00:00.000-0500" value="30"/>
+ </r4ecore:R4EParticipant>
+ <r4ecore:R4EAnomaly xmi:id="_x78swERCEeC2DrmWDHmN2w" user="_x6UVEURCEeC2DrmWDHmN2w" description="Jerry20- Anomaly text here ....." title="This is sample Title - Anomaly" createdOn="1867-07-11T00:00:00.000-0500">
+ <location xsi:type="r4ecore:R4ETextContent" href="#_x7-h8ERCEeC2DrmWDHmN2w"/>
+ <id xmi:id="_x78swURCEeC2DrmWDHmN2w" sequenceID="1" userID="Jerry20"/>
+ </r4ecore:R4EAnomaly>
+ <r4ecore:R4ETextContent xmi:id="_x7-h8ERCEeC2DrmWDHmN2w" info="Write any information here">
+ <location href="#_x8DacERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4EAnomalyTextPosition xmi:id="_x8DacERCEeC2DrmWDHmN2w" startPosition="1230" length="40" startLine="50" endLine="100">
+ <file href="#_x8HE0ERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EAnomalyTextPosition>
+ <r4ecore:R4EFileVersion xmi:id="_x8HE0ERCEeC2DrmWDHmN2w" platformURI="platform:/resource/projName/src/dir1/dir2" versionID="8" repositoryPath="/Dir1/Dir2" name="R4ETestFile"/>
+ <r4ecore:R4EComment xmi:id="_x8TSEERCEeC2DrmWDHmN2w" user="_x6UVEURCEeC2DrmWDHmN2w" description="This is test comment number 1" createdOn="2011-03-01T15:30:43.121-0500">
+ <id xmi:id="_x8T5IERCEeC2DrmWDHmN2w" sequenceID="2" userID="Jerry20"/>
+ <anomaly href="Tom10_comments.xrer#_x7h2AERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EComment>
+ <r4ecore:R4EComment xmi:id="_x8YKkURCEeC2DrmWDHmN2w" user="_x6UVEURCEeC2DrmWDHmN2w" description="This is test comment number 2" createdOn="2011-03-01T15:30:43.129-0500">
+ <type xsi:type="r4ecore:R4ECommentType" xmi:id="_x8YKkERCEeC2DrmWDHmN2w"/>
+ <id xmi:id="_x8YKkkRCEeC2DrmWDHmN2w" sequenceID="3" userID="Jerry20"/>
+ <anomaly href="Tom10_comments.xrer#_x7h2AERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EComment>
+</xmi:XMI>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewSampl/Jerry20_items.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewSampl/Jerry20_items.xrer
new file mode 100644
index 0000000..be92dab
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewSampl/Jerry20_items.xrer
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
+ <r4ecore:R4EItem xmi:id="_yAWroERCEeC2DrmWDHmN2w" description="Jerry20-Item to review 11" addedById="Jerry20" repositoryRef="repository ref..0" authorRep="changeAuthor_0" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_yAWroURCEeC2DrmWDHmN2w" sequenceID="4" userID="Jerry20"/>
+ <addedBy href="Jerry20_comments.xrer#_x6UVEURCEeC2DrmWDHmN2w"/>
+ <review href="ReviewSampl_review.xrer#_x22KUERCEeC2DrmWDHmN2w"/>
+ <fileContextList href="#_yArbwERCEeC2DrmWDHmN2w"/>
+ <ProjectURIs>platform:resource/projX0</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_yArbwERCEeC2DrmWDHmN2w" type="R4E_ADDED">
+ <id xmi:id="_yArbwURCEeC2DrmWDHmN2w" sequenceID="5" userID="Jerry20"/>
+ <deltas href="#_yAw7UURCEeC2DrmWDHmN2w"/>
+ <base href="#_yAt4AERCEeC2DrmWDHmN2w"/>
+ <target href="#_yAvtMERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_yAt4AERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019327" repositoryPath="root/folder_0" name="file_0" localVersionID="locIdB_1234_0"/>
+ <r4ecore:R4EFileVersion xmi:id="_yAvtMERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019328" repositoryPath="root/folder_0" name="file_0" localVersionID="locIdT_1234_0"/>
+ <r4ecore:R4EDelta xmi:id="_yAw7UURCEeC2DrmWDHmN2w">
+ <id xmi:id="_yAw7UkRCEeC2DrmWDHmN2w" sequenceID="6" userID="Jerry20"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_yAywgERCEeC2DrmWDHmN2w"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_yA43IERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_yAywgERCEeC2DrmWDHmN2w" info="information for base content" content="base content">
+ <location href="#_yA0lsERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yA0lsERCEeC2DrmWDHmN2w" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_yA43IERCEeC2DrmWDHmN2w" info="information for target content" content="target content">
+ <location href="#_yA6sUERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yA6sUERCEeC2DrmWDHmN2w" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_yA9voURCEeC2DrmWDHmN2w" description="Jerry20-Item to review 12" addedById="Jerry20" repositoryRef="repository ref..1" authorRep="changeAuthor_1" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_yA9vokRCEeC2DrmWDHmN2w" sequenceID="7" userID="Jerry20"/>
+ <addedBy href="Jerry20_comments.xrer#_x6UVEURCEeC2DrmWDHmN2w"/>
+ <review href="ReviewSampl_review.xrer#_x22KUERCEeC2DrmWDHmN2w"/>
+ <fileContextList href="#_yBIHsERCEeC2DrmWDHmN2w"/>
+ <ProjectURIs>platform:resource/projX1</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_yBIHsERCEeC2DrmWDHmN2w" type="R4E_ADDED">
+ <id xmi:id="_yBIHsURCEeC2DrmWDHmN2w" sequenceID="8" userID="Jerry20"/>
+ <deltas href="#_yBTG0URCEeC2DrmWDHmN2w"/>
+ <base href="#_yBLyEERCEeC2DrmWDHmN2w"/>
+ <target href="#_yBQqkERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_yBLyEERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019328" repositoryPath="root/folder_1" name="file_1" localVersionID="locIdB_1234_1"/>
+ <r4ecore:R4EFileVersion xmi:id="_yBQqkERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019329" repositoryPath="root/folder_1" name="file_1" localVersionID="locIdT_1234_1"/>
+ <r4ecore:R4EDelta xmi:id="_yBTG0URCEeC2DrmWDHmN2w">
+ <id xmi:id="_yBTG0kRCEeC2DrmWDHmN2w" sequenceID="9" userID="Jerry20"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_yBU8AERCEeC2DrmWDHmN2w"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_yBbCoERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_yBU8AERCEeC2DrmWDHmN2w" info="information for base content" content="base content">
+ <location href="#_yBXYQERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yBXYQERCEeC2DrmWDHmN2w" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_yBbCoERCEeC2DrmWDHmN2w" info="information for target content" content="target content">
+ <location href="#_yBjlgERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yBjlgERCEeC2DrmWDHmN2w" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_yBmo0URCEeC2DrmWDHmN2w" description="Jerry20-Item to review 21" addedById="Jerry20" repositoryRef="repository ref..2" authorRep="changeAuthor_2" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_yBmo0kRCEeC2DrmWDHmN2w" sequenceID="10" userID="Jerry20"/>
+ <addedBy href="Jerry20_comments.xrer#_x6UVEURCEeC2DrmWDHmN2w"/>
+ <review href="ReviewSampl_review.xrer#_x22KUERCEeC2DrmWDHmN2w"/>
+ <fileContextList href="#_yBsvcERCEeC2DrmWDHmN2w"/>
+ <ProjectURIs>platform:resource/projX2</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_yBsvcERCEeC2DrmWDHmN2w" type="R4E_ADDED">
+ <id xmi:id="_yBtWgERCEeC2DrmWDHmN2w" sequenceID="11" userID="Jerry20"/>
+ <deltas href="#_yB7Y8URCEeC2DrmWDHmN2w"/>
+ <base href="#_yBvLsERCEeC2DrmWDHmN2w"/>
+ <target href="#_yBzdIERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_yBvLsERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019358" repositoryPath="root/folder_2" name="file_2" localVersionID="locIdB_1234_2"/>
+ <r4ecore:R4EFileVersion xmi:id="_yBzdIERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019359" repositoryPath="root/folder_2" name="file_2" localVersionID="locIdT_1234_2"/>
+ <r4ecore:R4EDelta xmi:id="_yB7Y8URCEeC2DrmWDHmN2w">
+ <id xmi:id="_yB7Y8kRCEeC2DrmWDHmN2w" sequenceID="12" userID="Jerry20"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_yCFJ8ERCEeC2DrmWDHmN2w"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_yCL3oERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_yCFJ8ERCEeC2DrmWDHmN2w" info="information for base content" content="base content">
+ <location href="#_yCHmMERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yCHmMERCEeC2DrmWDHmN2w" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_yCL3oERCEeC2DrmWDHmN2w" info="information for target content" content="target content">
+ <location href="#_yCOT4ERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yCOT4ERCEeC2DrmWDHmN2w" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_yCRXMERCEeC2DrmWDHmN2w" description="Jerry20-Item to review 22" addedById="Jerry20" repositoryRef="repository ref..3" authorRep="changeAuthor_3" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_yCRXMURCEeC2DrmWDHmN2w" sequenceID="13" userID="Jerry20"/>
+ <addedBy href="Jerry20_comments.xrer#_x6UVEURCEeC2DrmWDHmN2w"/>
+ <review href="ReviewSampl_review.xrer#_x22KUERCEeC2DrmWDHmN2w"/>
+ <fileContextList href="#_yCW2wERCEeC2DrmWDHmN2w"/>
+ <ProjectURIs>platform:resource/projX3</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_yCW2wERCEeC2DrmWDHmN2w" type="R4E_ADDED">
+ <id xmi:id="_yCXd0ERCEeC2DrmWDHmN2w" sequenceID="14" userID="Jerry20"/>
+ <deltas href="#_yCic8URCEeC2DrmWDHmN2w"/>
+ <base href="#_yCZ6EERCEeC2DrmWDHmN2w"/>
+ <target href="#_yCeLgERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_yCZ6EERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019359" repositoryPath="root/folder_3" name="file_3" localVersionID="locIdB_1234_3"/>
+ <r4ecore:R4EFileVersion xmi:id="_yCeLgERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019360" repositoryPath="root/folder_3" name="file_3" localVersionID="locIdT_1234_3"/>
+ <r4ecore:R4EDelta xmi:id="_yCic8URCEeC2DrmWDHmN2w">
+ <id xmi:id="_yCic8kRCEeC2DrmWDHmN2w" sequenceID="15" userID="Jerry20"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_yCqYwERCEeC2DrmWDHmN2w"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_yCxtgERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_yCqYwERCEeC2DrmWDHmN2w" info="information for base content" content="base content">
+ <location href="#_yCtcEERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yCtcEERCEeC2DrmWDHmN2w" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_yCxtgERCEeC2DrmWDHmN2w" info="information for target content" content="target content">
+ <location href="#_yC3NEERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yC3NEERCEeC2DrmWDHmN2w" startPosition="300" length="100" startLine="30" endLine="40"/>
+</xmi:XMI>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewSampl/ReviewSampl_review.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewSampl/ReviewSampl_review.xrer
new file mode 100644
index 0000000..6c82db6
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewSampl/ReviewSampl_review.xrer
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="ASCII"?>
+<r4ecore:R4EReview xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_x22KUERCEeC2DrmWDHmN2w" name="ReviewSampl" project="P1" entryCriteria="Sample Entry Cryteria" extraNotes="Sample extra notes" objectives="Sample Objectives" referenceMaterial="sample reference material" startDate="1867-07-01T00:00:00.000-0500" endDate="1867-07-03T00:00:00.000-0500" type="R4E_REVIEW_TYPE_INFORMAL">
+ <reviewTask xsi:type="r4ecore:R4ETaskReference" xmi:id="_yC9TskRCEeC2DrmWDHmN2w" taskId="324328" repositoryURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=324328"/>
+ <state xsi:type="r4ecore:R4EReviewState" xmi:id="_yC9TsURCEeC2DrmWDHmN2w" state="R4E_REVIEW_PHASE_PREPARATION"/>
+ <components>Component1</components>
+ <decision xmi:id="_yC9TsERCEeC2DrmWDHmN2w" spentTime="120" value="R4E_REVIEW_DECISION_ACCEPTED"/>
+ <createdBy href="Tom10_comments.xrer#_x22xYERCEeC2DrmWDHmN2w"/>
+</r4ecore:R4EReview>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewSampl/Tom10_comments.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewSampl/Tom10_comments.xrer
new file mode 100644
index 0000000..3fdcbea
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewSampl/Tom10_comments.xrer
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
+ <r4ecore:R4EParticipant xmi:id="_x22xYERCEeC2DrmWDHmN2w" id="Tom10" sequenceIDCounter="15" reviewCreatedByMe="true" focusArea="Performance" isPartOfDecision="true">
+ <addedComments href="#_x7h2AERCEeC2DrmWDHmN2w"/>
+ <addedComments href="#_x8LWQERCEeC2DrmWDHmN2w"/>
+ <addedComments href="#_x8PAoURCEeC2DrmWDHmN2w"/>
+ <addedItems href="Tom10_items.xrer#_x8jwwURCEeC2DrmWDHmN2w"/>
+ <addedItems href="Tom10_items.xrer#_x9pV4URCEeC2DrmWDHmN2w"/>
+ <addedItems href="Tom10_items.xrer#_x-QZ4URCEeC2DrmWDHmN2w"/>
+ <addedItems href="Tom10_items.xrer#_x_RtkURCEeC2DrmWDHmN2w"/>
+ <reviewInstance href="ReviewSampl_review.xrer#_x22KUERCEeC2DrmWDHmN2w"/>
+ <roles>R4E_ROLE_ORGANIZER</roles>
+ <roles>R4E_ROLE_LEAD</roles>
+ <timeLog xmi:id="_x6Sf4ERCEeC2DrmWDHmN2w" key="1867-07-01T00:00:00.000-0500" value="30"/>
+ <timeLog xmi:id="_x6Sf4URCEeC2DrmWDHmN2w" key="1867-07-03T00:00:00.000-0500" value="30"/>
+ </r4ecore:R4EParticipant>
+ <r4ecore:R4EAnomaly xmi:id="_x7h2AERCEeC2DrmWDHmN2w" user="_x22xYERCEeC2DrmWDHmN2w" description="Tom10- Anomaly text here ....." title="This is sample Title - Anomaly" createdOn="1867-07-11T00:00:00.000-0500">
+ <location xsi:type="r4ecore:R4ETextContent" href="#_x7s1IERCEeC2DrmWDHmN2w"/>
+ <id xmi:id="_x7k5UERCEeC2DrmWDHmN2w" sequenceID="1" userID="Tom10"/>
+ </r4ecore:R4EAnomaly>
+ <r4ecore:R4ETextContent xmi:id="_x7s1IERCEeC2DrmWDHmN2w" info="Write any information here">
+ <location href="#_x7yUsERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4EAnomalyTextPosition xmi:id="_x7yUsERCEeC2DrmWDHmN2w" startPosition="1230" length="40" startLine="50" endLine="100">
+ <file href="#_x74bUERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EAnomalyTextPosition>
+ <r4ecore:R4EFileVersion xmi:id="_x74bUERCEeC2DrmWDHmN2w" platformURI="platform:/resource/projName/src/dir1/dir2" versionID="8" repositoryPath="/Dir1/Dir2" name="R4ETestFile"/>
+ <r4ecore:R4EComment xmi:id="_x8LWQERCEeC2DrmWDHmN2w" user="_x22xYERCEeC2DrmWDHmN2w" description="This is test comment number 1" createdOn="2011-03-01T15:30:43.108-0500">
+ <id xmi:id="_x8L9UERCEeC2DrmWDHmN2w" sequenceID="2" userID="Tom10"/>
+ <anomaly href="Jerry20_comments.xrer#_x78swERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EComment>
+ <r4ecore:R4EComment xmi:id="_x8PAoURCEeC2DrmWDHmN2w" user="_x22xYERCEeC2DrmWDHmN2w" description="This is test comment number 2" createdOn="2011-03-01T15:30:43.114-0500">
+ <type xsi:type="r4ecore:R4ECommentType" xmi:id="_x8PAoERCEeC2DrmWDHmN2w"/>
+ <id xmi:id="_x8PAokRCEeC2DrmWDHmN2w" sequenceID="3" userID="Tom10"/>
+ <anomaly href="Jerry20_comments.xrer#_x78swERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EComment>
+</xmi:XMI>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewSampl/Tom10_items.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewSampl/Tom10_items.xrer
new file mode 100644
index 0000000..3d95d8e
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewSampl/Tom10_items.xrer
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
+ <r4ecore:R4EItem xmi:id="_x8jwwURCEeC2DrmWDHmN2w" description="Tom10-Item to review 11" addedById="Tom10" repositoryRef="repository ref..0" authorRep="changeAuthor_0" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_x8jwwkRCEeC2DrmWDHmN2w" sequenceID="4" userID="Tom10"/>
+ <addedBy href="Tom10_comments.xrer#_x22xYERCEeC2DrmWDHmN2w"/>
+ <review href="ReviewSampl_review.xrer#_x22KUERCEeC2DrmWDHmN2w"/>
+ <fileContextList href="#_x9BDwERCEeC2DrmWDHmN2w"/>
+ <ProjectURIs>platform:resource/projX0</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_x9BDwERCEeC2DrmWDHmN2w" type="R4E_ADDED">
+ <id xmi:id="_x9Bq0ERCEeC2DrmWDHmN2w" sequenceID="5" userID="Tom10"/>
+ <deltas href="#_x9Lb0URCEeC2DrmWDHmN2w"/>
+ <base href="#_x9DgAERCEeC2DrmWDHmN2w"/>
+ <target href="#_x9GjUERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_x9DgAERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978412" repositoryPath="root/folder_0" name="file_0" localVersionID="locIdB_1234_0"/>
+ <r4ecore:R4EFileVersion xmi:id="_x9GjUERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978411" repositoryPath="root/folder_0" name="file_0" localVersionID="locIdT_1234_0"/>
+ <r4ecore:R4EDelta xmi:id="_x9Lb0URCEeC2DrmWDHmN2w">
+ <id xmi:id="_x9Lb0kRCEeC2DrmWDHmN2w" sequenceID="6" userID="Tom10"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_x9Vz4ERCEeC2DrmWDHmN2w"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_x9j2UERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_x9Vz4ERCEeC2DrmWDHmN2w" info="information for base content" content="base content">
+ <location href="#_x9haEERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_x9haEERCEeC2DrmWDHmN2w" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_x9j2UERCEeC2DrmWDHmN2w" info="information for target content" content="target content">
+ <location href="#_x9lrgERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_x9lrgERCEeC2DrmWDHmN2w" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_x9pV4URCEeC2DrmWDHmN2w" description="Tom10-Item to review 12" addedById="Tom10" repositoryRef="repository ref..1" authorRep="changeAuthor_1" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_x9pV4kRCEeC2DrmWDHmN2w" sequenceID="7" userID="Tom10"/>
+ <addedBy href="Tom10_comments.xrer#_x22xYERCEeC2DrmWDHmN2w"/>
+ <review href="ReviewSampl_review.xrer#_x22KUERCEeC2DrmWDHmN2w"/>
+ <fileContextList href="#_x91jIERCEeC2DrmWDHmN2w"/>
+ <ProjectURIs>platform:resource/projX1</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_x91jIERCEeC2DrmWDHmN2w" type="R4E_ADDED">
+ <id xmi:id="_x91jIURCEeC2DrmWDHmN2w" sequenceID="8" userID="Tom10"/>
+ <deltas href="#_x9-GAURCEeC2DrmWDHmN2w"/>
+ <base href="#_x950kERCEeC2DrmWDHmN2w"/>
+ <target href="#_x97pwERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_x950kERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978411" repositoryPath="root/folder_1" name="file_1" localVersionID="locIdB_1234_1"/>
+ <r4ecore:R4EFileVersion xmi:id="_x97pwERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978410" repositoryPath="root/folder_1" name="file_1" localVersionID="locIdT_1234_1"/>
+ <r4ecore:R4EDelta xmi:id="_x9-GAURCEeC2DrmWDHmN2w">
+ <id xmi:id="_x9-GAkRCEeC2DrmWDHmN2w" sequenceID="9" userID="Tom10"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_x-BwYERCEeC2DrmWDHmN2w"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_x-JsMERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_x-BwYERCEeC2DrmWDHmN2w" info="information for base content" content="base content">
+ <location href="#_x-GB0ERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_x-GB0ERCEeC2DrmWDHmN2w" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_x-JsMERCEeC2DrmWDHmN2w" info="information for target content" content="target content">
+ <location href="#_x-MvgERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_x-MvgERCEeC2DrmWDHmN2w" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_x-QZ4URCEeC2DrmWDHmN2w" description="Tom10-Item to review 21" addedById="Tom10" repositoryRef="repository ref..2" authorRep="changeAuthor_2" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_x-QZ4kRCEeC2DrmWDHmN2w" sequenceID="10" userID="Tom10"/>
+ <addedBy href="Tom10_comments.xrer#_x22xYERCEeC2DrmWDHmN2w"/>
+ <review href="ReviewSampl_review.xrer#_x22KUERCEeC2DrmWDHmN2w"/>
+ <fileContextList href="#_x-V5cERCEeC2DrmWDHmN2w"/>
+ <ProjectURIs>platform:resource/projX2</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_x-V5cERCEeC2DrmWDHmN2w" type="R4E_ADDED">
+ <id xmi:id="_x-V5cURCEeC2DrmWDHmN2w" sequenceID="11" userID="Tom10"/>
+ <deltas href="#_x-u7AURCEeC2DrmWDHmN2w"/>
+ <base href="#_x-Zj0ERCEeC2DrmWDHmN2w"/>
+ <target href="#_x-ecUERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_x-Zj0ERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978381" repositoryPath="root/folder_2" name="file_2" localVersionID="locIdB_1234_2"/>
+ <r4ecore:R4EFileVersion xmi:id="_x-ecUERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978380" repositoryPath="root/folder_2" name="file_2" localVersionID="locIdT_1234_2"/>
+ <r4ecore:R4EDelta xmi:id="_x-u7AURCEeC2DrmWDHmN2w">
+ <id xmi:id="_x-u7AkRCEeC2DrmWDHmN2w" sequenceID="12" userID="Tom10"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_x-0akERCEeC2DrmWDHmN2w"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_x_E5QERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_x-0akERCEeC2DrmWDHmN2w" info="information for base content" content="base content">
+ <location href="#_x--yoERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_x--yoERCEeC2DrmWDHmN2w" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_x_E5QERCEeC2DrmWDHmN2w" info="information for target content" content="target content">
+ <location href="#_x_H8kERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_x_H8kERCEeC2DrmWDHmN2w" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_x_RtkURCEeC2DrmWDHmN2w" description="Tom10-Item to review 22" addedById="Tom10" repositoryRef="repository ref..3" authorRep="changeAuthor_3" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_x_RtkkRCEeC2DrmWDHmN2w" sequenceID="13" userID="Tom10"/>
+ <addedBy href="Tom10_comments.xrer#_x22xYERCEeC2DrmWDHmN2w"/>
+ <review href="ReviewSampl_review.xrer#_x22KUERCEeC2DrmWDHmN2w"/>
+ <fileContextList href="#_x_XNIERCEeC2DrmWDHmN2w"/>
+ <ProjectURIs>platform:resource/projX3</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_x_XNIERCEeC2DrmWDHmN2w" type="R4E_ADDED">
+ <id xmi:id="_x_XNIURCEeC2DrmWDHmN2w" sequenceID="14" userID="Tom10"/>
+ <deltas href="#_x_kBcURCEeC2DrmWDHmN2w"/>
+ <base href="#_x_cssERCEeC2DrmWDHmN2w"/>
+ <target href="#_x_fwAERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_x_cssERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978380" repositoryPath="root/folder_3" name="file_3" localVersionID="locIdB_1234_3"/>
+ <r4ecore:R4EFileVersion xmi:id="_x_fwAERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978379" repositoryPath="root/folder_3" name="file_3" localVersionID="locIdT_1234_3"/>
+ <r4ecore:R4EDelta xmi:id="_x_kBcURCEeC2DrmWDHmN2w">
+ <id xmi:id="_x_kBckRCEeC2DrmWDHmN2w" sequenceID="15" userID="Tom10"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_x_mdsERCEeC2DrmWDHmN2w"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_x_5_sERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_x_mdsERCEeC2DrmWDHmN2w" info="information for base content" content="base content">
+ <location href="#_x_uZgERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_x_uZgERCEeC2DrmWDHmN2w" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_x_5_sERCEeC2DrmWDHmN2w" info="information for target content" content="target content">
+ <location href="#_yAOv0ERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yAOv0ERCEeC2DrmWDHmN2w" startPosition="300" length="100" startLine="30" endLine="40"/>
+</xmi:XMI>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewTwo/Jerry20_comments.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewTwo/Jerry20_comments.xrer
new file mode 100644
index 0000000..14b8487
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewTwo/Jerry20_comments.xrer
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
+ <r4ecore:R4EParticipant xmi:id="_yD1dckRCEeC2DrmWDHmN2w" id="Jerry20" sequenceIDCounter="15" focusArea="Feature" isPartOfDecision="true">
+ <addedComments href="#_yEoHoERCEeC2DrmWDHmN2w"/>
+ <addedComments href="#_yFC-YERCEeC2DrmWDHmN2w"/>
+ <addedComments href="#_yFGBsURCEeC2DrmWDHmN2w"/>
+ <addedItems href="Jerry20_items.xrer#_yH-9oURCEeC2DrmWDHmN2w"/>
+ <addedItems href="Jerry20_items.xrer#_yIod4URCEeC2DrmWDHmN2w"/>
+ <addedItems href="Jerry20_items.xrer#_yI5joURCEeC2DrmWDHmN2w"/>
+ <addedItems href="Jerry20_items.xrer#_yJW2oERCEeC2DrmWDHmN2w"/>
+ <reviewInstance href="ReviewTwo_review.xrer#_yC9Ts0RCEeC2DrmWDHmN2w"/>
+ <roles>R4E_ROLE_LEAD</roles>
+ <timeLog xmi:id="_yEe9sERCEeC2DrmWDHmN2w" key="1867-07-01T00:00:00.000-0500" value="30"/>
+ <timeLog xmi:id="_yEe9sURCEeC2DrmWDHmN2w" key="1867-07-03T00:00:00.000-0500" value="30"/>
+ </r4ecore:R4EParticipant>
+ <r4ecore:R4EAnomaly xmi:id="_yEoHoERCEeC2DrmWDHmN2w" user="_yD1dckRCEeC2DrmWDHmN2w" description="Jerry20- Anomaly text here ....." title="This is sample Title - Anomaly" createdOn="1867-07-11T00:00:00.000-0500">
+ <location xsi:type="r4ecore:R4ETextContent" href="#_yEp80ERCEeC2DrmWDHmN2w"/>
+ <id xmi:id="_yEoHoURCEeC2DrmWDHmN2w" sequenceID="1" userID="Jerry20"/>
+ </r4ecore:R4EAnomaly>
+ <r4ecore:R4ETextContent xmi:id="_yEp80ERCEeC2DrmWDHmN2w" info="Write any information here">
+ <location href="#_yEuOQERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4EAnomalyTextPosition xmi:id="_yEuOQERCEeC2DrmWDHmN2w" startPosition="1230" length="40" startLine="50" endLine="100">
+ <file href="#_yE0U4ERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EAnomalyTextPosition>
+ <r4ecore:R4EFileVersion xmi:id="_yE0U4ERCEeC2DrmWDHmN2w" platformURI="platform:/resource/projName/src/dir1/dir2" versionID="8" repositoryPath="/Dir1/Dir2" name="R4ETestFile"/>
+ <r4ecore:R4EComment xmi:id="_yFC-YERCEeC2DrmWDHmN2w" user="_yD1dckRCEeC2DrmWDHmN2w" description="This is test comment number 1" createdOn="2011-03-01T15:30:44.038-0500">
+ <id xmi:id="_yFC-YURCEeC2DrmWDHmN2w" sequenceID="2" userID="Jerry20"/>
+ <anomaly href="Tom10_comments.xrer#_yEe9skRCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EComment>
+ <r4ecore:R4EComment xmi:id="_yFGBsURCEeC2DrmWDHmN2w" user="_yD1dckRCEeC2DrmWDHmN2w" description="This is test comment number 2" createdOn="2011-03-01T15:30:44.043-0500">
+ <type xsi:type="r4ecore:R4ECommentType" xmi:id="_yFGBsERCEeC2DrmWDHmN2w"/>
+ <id xmi:id="_yFGBskRCEeC2DrmWDHmN2w" sequenceID="3" userID="Jerry20"/>
+ <anomaly href="Tom10_comments.xrer#_yEe9skRCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EComment>
+</xmi:XMI>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewTwo/Jerry20_items.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewTwo/Jerry20_items.xrer
new file mode 100644
index 0000000..307de7f
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewTwo/Jerry20_items.xrer
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
+ <r4ecore:R4EItem xmi:id="_yH-9oURCEeC2DrmWDHmN2w" description="Jerry20-Item to review 11" addedById="Jerry20" repositoryRef="repository ref..0" authorRep="changeAuthor_0" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_yH-9okRCEeC2DrmWDHmN2w" sequenceID="4" userID="Jerry20"/>
+ <addedBy href="Jerry20_comments.xrer#_yD1dckRCEeC2DrmWDHmN2w"/>
+ <review href="ReviewTwo_review.xrer#_yC9Ts0RCEeC2DrmWDHmN2w"/>
+ <fileContextList href="#_yIabcERCEeC2DrmWDHmN2w"/>
+ <ProjectURIs>platform:resource/projX0</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_yIabcERCEeC2DrmWDHmN2w" type="R4E_ADDED">
+ <id xmi:id="_yIabcURCEeC2DrmWDHmN2w" sequenceID="5" userID="Jerry20"/>
+ <deltas href="#_yIes4URCEeC2DrmWDHmN2w"/>
+ <base href="#_yIbpkERCEeC2DrmWDHmN2w"/>
+ <target href="#_yIdewERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_yIbpkERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019327" repositoryPath="root/folder_0" name="file_0" localVersionID="locIdB_1234_0"/>
+ <r4ecore:R4EFileVersion xmi:id="_yIdewERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019328" repositoryPath="root/folder_0" name="file_0" localVersionID="locIdT_1234_0"/>
+ <r4ecore:R4EDelta xmi:id="_yIes4URCEeC2DrmWDHmN2w">
+ <id xmi:id="_yIes4kRCEeC2DrmWDHmN2w" sequenceID="6" userID="Jerry20"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_yIhJIERCEeC2DrmWDHmN2w"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_yIkzgERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_yIhJIERCEeC2DrmWDHmN2w" info="information for base content" content="base content">
+ <location href="#_yIi-UERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yIi-UERCEeC2DrmWDHmN2w" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_yIkzgERCEeC2DrmWDHmN2w" info="information for target content" content="target content">
+ <location href="#_yImosERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yImosERCEeC2DrmWDHmN2w" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_yIod4URCEeC2DrmWDHmN2w" description="Jerry20-Item to review 12" addedById="Jerry20" repositoryRef="repository ref..1" authorRep="changeAuthor_1" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_yIod4kRCEeC2DrmWDHmN2w" sequenceID="7" userID="Jerry20"/>
+ <addedBy href="Jerry20_comments.xrer#_yD1dckRCEeC2DrmWDHmN2w"/>
+ <review href="ReviewTwo_review.xrer#_yC9Ts0RCEeC2DrmWDHmN2w"/>
+ <fileContextList href="#_yIsIQERCEeC2DrmWDHmN2w"/>
+ <ProjectURIs>platform:resource/projX1</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_yIsIQERCEeC2DrmWDHmN2w" type="R4E_ADDED">
+ <id xmi:id="_yIsIQURCEeC2DrmWDHmN2w" sequenceID="8" userID="Jerry20"/>
+ <deltas href="#_yIxAwURCEeC2DrmWDHmN2w"/>
+ <base href="#_yIt9cERCEeC2DrmWDHmN2w"/>
+ <target href="#_yIvLkERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_yIt9cERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019328" repositoryPath="root/folder_1" name="file_1" localVersionID="locIdB_1234_1"/>
+ <r4ecore:R4EFileVersion xmi:id="_yIvLkERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019329" repositoryPath="root/folder_1" name="file_1" localVersionID="locIdT_1234_1"/>
+ <r4ecore:R4EDelta xmi:id="_yIxAwURCEeC2DrmWDHmN2w">
+ <id xmi:id="_yIxAwkRCEeC2DrmWDHmN2w" sequenceID="9" userID="Jerry20"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_yIy18ERCEeC2DrmWDHmN2w"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_yI15QERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_yIy18ERCEeC2DrmWDHmN2w" info="information for base content" content="base content">
+ <location href="#_yI0rIERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yI0rIERCEeC2DrmWDHmN2w" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_yI15QERCEeC2DrmWDHmN2w" info="information for target content" content="target content">
+ <location href="#_yI4VgERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yI4VgERCEeC2DrmWDHmN2w" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_yI5joURCEeC2DrmWDHmN2w" description="Jerry20-Item to review 21" addedById="Jerry20" repositoryRef="repository ref..2" authorRep="changeAuthor_2" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_yI5jokRCEeC2DrmWDHmN2w" sequenceID="10" userID="Jerry20"/>
+ <addedBy href="Jerry20_comments.xrer#_yD1dckRCEeC2DrmWDHmN2w"/>
+ <review href="ReviewTwo_review.xrer#_yC9Ts0RCEeC2DrmWDHmN2w"/>
+ <fileContextList href="#_yI9OAERCEeC2DrmWDHmN2w"/>
+ <ProjectURIs>platform:resource/projX2</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_yI9OAERCEeC2DrmWDHmN2w" type="R4E_ADDED">
+ <id xmi:id="_yI9OAURCEeC2DrmWDHmN2w" sequenceID="11" userID="Jerry20"/>
+ <deltas href="#_yJEiwURCEeC2DrmWDHmN2w"/>
+ <base href="#_yI_qQERCEeC2DrmWDHmN2w"/>
+ <target href="#_yJCGgERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_yI_qQERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019358" repositoryPath="root/folder_2" name="file_2" localVersionID="locIdB_1234_2"/>
+ <r4ecore:R4EFileVersion xmi:id="_yJCGgERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019359" repositoryPath="root/folder_2" name="file_2" localVersionID="locIdT_1234_2"/>
+ <r4ecore:R4EDelta xmi:id="_yJEiwURCEeC2DrmWDHmN2w">
+ <id xmi:id="_yJEiwkRCEeC2DrmWDHmN2w" sequenceID="12" userID="Jerry20"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_yJG_AERCEeC2DrmWDHmN2w"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_yJMekERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_yJG_AERCEeC2DrmWDHmN2w" info="information for base content" content="base content">
+ <location href="#_yJKCUERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yJKCUERCEeC2DrmWDHmN2w" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_yJMekERCEeC2DrmWDHmN2w" info="information for target content" content="target content">
+ <location href="#_yJR-IERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yJR-IERCEeC2DrmWDHmN2w" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_yJW2oERCEeC2DrmWDHmN2w" description="Jerry20-Item to review 22" addedById="Jerry20" repositoryRef="repository ref..3" authorRep="changeAuthor_3" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_yJW2oURCEeC2DrmWDHmN2w" sequenceID="13" userID="Jerry20"/>
+ <addedBy href="Jerry20_comments.xrer#_yD1dckRCEeC2DrmWDHmN2w"/>
+ <review href="ReviewTwo_review.xrer#_yC9Ts0RCEeC2DrmWDHmN2w"/>
+ <fileContextList href="#_yJcWMERCEeC2DrmWDHmN2w"/>
+ <ProjectURIs>platform:resource/projX3</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_yJcWMERCEeC2DrmWDHmN2w" type="R4E_ADDED">
+ <id xmi:id="_yJc9QERCEeC2DrmWDHmN2w" sequenceID="14" userID="Jerry20"/>
+ <deltas href="#_yJqYoURCEeC2DrmWDHmN2w"/>
+ <base href="#_yJgnoERCEeC2DrmWDHmN2w"/>
+ <target href="#_yJjq8ERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_yJgnoERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019359" repositoryPath="root/folder_3" name="file_3" localVersionID="locIdB_1234_3"/>
+ <r4ecore:R4EFileVersion xmi:id="_yJjq8ERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019360" repositoryPath="root/folder_3" name="file_3" localVersionID="locIdT_1234_3"/>
+ <r4ecore:R4EDelta xmi:id="_yJqYoURCEeC2DrmWDHmN2w">
+ <id xmi:id="_yJqYokRCEeC2DrmWDHmN2w" sequenceID="15" userID="Jerry20"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_yJuqEERCEeC2DrmWDHmN2w"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_yJ1-0ERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_yJuqEERCEeC2DrmWDHmN2w" info="information for base content" content="base content">
+ <location href="#_yJyUcERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yJyUcERCEeC2DrmWDHmN2w" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_yJ1-0ERCEeC2DrmWDHmN2w" info="information for target content" content="target content">
+ <location href="#_yJ5pMERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yJ5pMERCEeC2DrmWDHmN2w" startPosition="300" length="100" startLine="30" endLine="40"/>
+</xmi:XMI>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewTwo/ReviewTwo_review.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewTwo/ReviewTwo_review.xrer
new file mode 100644
index 0000000..3f6d18d
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewTwo/ReviewTwo_review.xrer
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="ASCII"?>
+<r4ecore:R4EReview xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_yC9Ts0RCEeC2DrmWDHmN2w" name="ReviewTwo" project="P1" entryCriteria="Sample Entry Cryteria" extraNotes="Sample extra notes" objectives="Sample Objectives" referenceMaterial="sample reference material" startDate="1867-07-01T00:00:00.000-0500" endDate="1867-07-03T00:00:00.000-0500" type="R4E_REVIEW_TYPE_INFORMAL">
+ <reviewTask xsi:type="r4ecore:R4ETaskReference" xmi:id="_yKAW4kRCEeC2DrmWDHmN2w" taskId="324328" repositoryURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=324328"/>
+ <state xsi:type="r4ecore:R4EReviewState" xmi:id="_yKAW4URCEeC2DrmWDHmN2w" state="R4E_REVIEW_PHASE_PREPARATION"/>
+ <components>Component1</components>
+ <decision xmi:id="_yKAW4ERCEeC2DrmWDHmN2w" spentTime="120" value="R4E_REVIEW_DECISION_ACCEPTED"/>
+ <createdBy href="Tom10_comments.xrer#_yC96wURCEeC2DrmWDHmN2w"/>
+</r4ecore:R4EReview>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewTwo/Tom10_comments.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewTwo/Tom10_comments.xrer
new file mode 100644
index 0000000..cdf9d55
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewTwo/Tom10_comments.xrer
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
+ <r4ecore:R4EParticipant xmi:id="_yC96wURCEeC2DrmWDHmN2w" id="Tom10" sequenceIDCounter="15" reviewCreatedByMe="true" focusArea="Performance" isPartOfDecision="true">
+ <addedComments href="#_yEe9skRCEeC2DrmWDHmN2w"/>
+ <addedComments href="#_yE5NYERCEeC2DrmWDHmN2w"/>
+ <addedComments href="#_yE_UAURCEeC2DrmWDHmN2w"/>
+ <addedItems href="Tom10_items.xrer#_yFJFAURCEeC2DrmWDHmN2w"/>
+ <addedItems href="Tom10_items.xrer#_yF8WQURCEeC2DrmWDHmN2w"/>
+ <addedItems href="Tom10_items.xrer#_yGxcsURCEeC2DrmWDHmN2w"/>
+ <addedItems href="Tom10_items.xrer#_yHaV4URCEeC2DrmWDHmN2w"/>
+ <reviewInstance href="ReviewTwo_review.xrer#_yC9Ts0RCEeC2DrmWDHmN2w"/>
+ <roles>R4E_ROLE_ORGANIZER</roles>
+ <roles>R4E_ROLE_LEAD</roles>
+ <timeLog xmi:id="_yD02YERCEeC2DrmWDHmN2w" key="1867-07-01T00:00:00.000-0500" value="30"/>
+ <timeLog xmi:id="_yD1dcERCEeC2DrmWDHmN2w" key="1867-07-03T00:00:00.000-0500" value="30"/>
+ </r4ecore:R4EParticipant>
+ <r4ecore:R4EAnomaly xmi:id="_yEe9skRCEeC2DrmWDHmN2w" user="_yC96wURCEeC2DrmWDHmN2w" description="Tom10- Anomaly text here ....." title="This is sample Title - Anomaly" createdOn="1867-07-11T00:00:00.000-0500">
+ <location xsi:type="r4ecore:R4ETextContent" href="#_yEjPIERCEeC2DrmWDHmN2w"/>
+ <id xmi:id="_yEe9s0RCEeC2DrmWDHmN2w" sequenceID="1" userID="Tom10"/>
+ </r4ecore:R4EAnomaly>
+ <r4ecore:R4ETextContent xmi:id="_yEjPIERCEeC2DrmWDHmN2w" info="Write any information here">
+ <location href="#_yElEUERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4EAnomalyTextPosition xmi:id="_yElEUERCEeC2DrmWDHmN2w" startPosition="1230" length="40" startLine="50" endLine="100">
+ <file href="#_yEm5gERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EAnomalyTextPosition>
+ <r4ecore:R4EFileVersion xmi:id="_yEm5gERCEeC2DrmWDHmN2w" platformURI="platform:/resource/projName/src/dir1/dir2" versionID="8" repositoryPath="/Dir1/Dir2" name="R4ETestFile"/>
+ <r4ecore:R4EComment xmi:id="_yE5NYERCEeC2DrmWDHmN2w" user="_yC96wURCEeC2DrmWDHmN2w" description="This is test comment number 1" createdOn="2011-03-01T15:30:44.022-0500">
+ <id xmi:id="_yE5NYURCEeC2DrmWDHmN2w" sequenceID="2" userID="Tom10"/>
+ <anomaly href="Jerry20_comments.xrer#_yEoHoERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EComment>
+ <r4ecore:R4EComment xmi:id="_yE_UAURCEeC2DrmWDHmN2w" user="_yC96wURCEeC2DrmWDHmN2w" description="This is test comment number 2" createdOn="2011-03-01T15:30:44.032-0500">
+ <type xsi:type="r4ecore:R4ECommentType" xmi:id="_yE_UAERCEeC2DrmWDHmN2w"/>
+ <id xmi:id="_yE_7EERCEeC2DrmWDHmN2w" sequenceID="3" userID="Tom10"/>
+ <anomaly href="Jerry20_comments.xrer#_yEoHoERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EComment>
+</xmi:XMI>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewTwo/Tom10_items.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewTwo/Tom10_items.xrer
new file mode 100644
index 0000000..82e9df1
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/ReviewTwo/Tom10_items.xrer
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
+ <r4ecore:R4EItem xmi:id="_yFJFAURCEeC2DrmWDHmN2w" description="Tom10-Item to review 11" addedById="Tom10" repositoryRef="repository ref..0" authorRep="changeAuthor_0" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_yFJFAkRCEeC2DrmWDHmN2w" sequenceID="4" userID="Tom10"/>
+ <addedBy href="Tom10_comments.xrer#_yC96wURCEeC2DrmWDHmN2w"/>
+ <review href="ReviewTwo_review.xrer#_yC9Ts0RCEeC2DrmWDHmN2w"/>
+ <fileContextList href="#_yFhfgERCEeC2DrmWDHmN2w"/>
+ <ProjectURIs>platform:resource/projX0</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_yFhfgERCEeC2DrmWDHmN2w" type="R4E_ADDED">
+ <id xmi:id="_yFhfgURCEeC2DrmWDHmN2w" sequenceID="5" userID="Tom10"/>
+ <deltas href="#_yFm_EURCEeC2DrmWDHmN2w"/>
+ <base href="#_yFjUsERCEeC2DrmWDHmN2w"/>
+ <target href="#_yFlJ4ERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_yFjUsERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978412" repositoryPath="root/folder_0" name="file_0" localVersionID="locIdB_1234_0"/>
+ <r4ecore:R4EFileVersion xmi:id="_yFlJ4ERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978411" repositoryPath="root/folder_0" name="file_0" localVersionID="locIdT_1234_0"/>
+ <r4ecore:R4EDelta xmi:id="_yFm_EURCEeC2DrmWDHmN2w">
+ <id xmi:id="_yFnmIERCEeC2DrmWDHmN2w" sequenceID="6" userID="Tom10"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_yFqCYERCEeC2DrmWDHmN2w"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_yFwwEERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_yFqCYERCEeC2DrmWDHmN2w" info="information for base content" content="base content">
+ <location href="#_yFu64ERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yFu64ERCEeC2DrmWDHmN2w" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_yFwwEERCEeC2DrmWDHmN2w" info="information for target content" content="target content">
+ <location href="#_yF2PoERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yF2PoERCEeC2DrmWDHmN2w" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_yF8WQURCEeC2DrmWDHmN2w" description="Tom10-Item to review 12" addedById="Tom10" repositoryRef="repository ref..1" authorRep="changeAuthor_1" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_yF8WQkRCEeC2DrmWDHmN2w" sequenceID="7" userID="Tom10"/>
+ <addedBy href="Tom10_comments.xrer#_yC96wURCEeC2DrmWDHmN2w"/>
+ <review href="ReviewTwo_review.xrer#_yC9Ts0RCEeC2DrmWDHmN2w"/>
+ <fileContextList href="#_yGDrAERCEeC2DrmWDHmN2w"/>
+ <ProjectURIs>platform:resource/projX1</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_yGDrAERCEeC2DrmWDHmN2w" type="R4E_ADDED">
+ <id xmi:id="_yGDrAURCEeC2DrmWDHmN2w" sequenceID="8" userID="Tom10"/>
+ <deltas href="#_yGPRMURCEeC2DrmWDHmN2w"/>
+ <base href="#_yGIjgERCEeC2DrmWDHmN2w"/>
+ <target href="#_yGLm0ERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_yGIjgERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978411" repositoryPath="root/folder_1" name="file_1" localVersionID="locIdB_1234_1"/>
+ <r4ecore:R4EFileVersion xmi:id="_yGLm0ERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978410" repositoryPath="root/folder_1" name="file_1" localVersionID="locIdT_1234_1"/>
+ <r4ecore:R4EDelta xmi:id="_yGPRMURCEeC2DrmWDHmN2w">
+ <id xmi:id="_yGPRMkRCEeC2DrmWDHmN2w" sequenceID="9" userID="Tom10"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_yGRGYERCEeC2DrmWDHmN2w"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_yGrWEERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_yGRGYERCEeC2DrmWDHmN2w" info="information for base content" content="base content">
+ <location href="#_yGl2gERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yGl2gERCEeC2DrmWDHmN2w" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_yGrWEERCEeC2DrmWDHmN2w" info="information for target content" content="target content">
+ <location href="#_yGtLQERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yGtLQERCEeC2DrmWDHmN2w" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_yGxcsURCEeC2DrmWDHmN2w" description="Tom10-Item to review 21" addedById="Tom10" repositoryRef="repository ref..2" authorRep="changeAuthor_2" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_yGxcskRCEeC2DrmWDHmN2w" sequenceID="10" userID="Tom10"/>
+ <addedBy href="Tom10_comments.xrer#_yC96wURCEeC2DrmWDHmN2w"/>
+ <review href="ReviewTwo_review.xrer#_yC9Ts0RCEeC2DrmWDHmN2w"/>
+ <fileContextList href="#_yG2VMERCEeC2DrmWDHmN2w"/>
+ <ProjectURIs>platform:resource/projX2</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_yG2VMERCEeC2DrmWDHmN2w" type="R4E_ADDED">
+ <id xmi:id="_yG2VMURCEeC2DrmWDHmN2w" sequenceID="11" userID="Tom10"/>
+ <deltas href="#_yHMTcURCEeC2DrmWDHmN2w"/>
+ <base href="#_yG-RAERCEeC2DrmWDHmN2w"/>
+ <target href="#_yHGM0ERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_yG-RAERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978381" repositoryPath="root/folder_2" name="file_2" localVersionID="locIdB_1234_2"/>
+ <r4ecore:R4EFileVersion xmi:id="_yHGM0ERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978380" repositoryPath="root/folder_2" name="file_2" localVersionID="locIdT_1234_2"/>
+ <r4ecore:R4EDelta xmi:id="_yHMTcURCEeC2DrmWDHmN2w">
+ <id xmi:id="_yHMTckRCEeC2DrmWDHmN2w" sequenceID="12" userID="Tom10"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_yHPWwERCEeC2DrmWDHmN2w"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_yHWEcERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_yHPWwERCEeC2DrmWDHmN2w" info="information for base content" content="base content">
+ <location href="#_yHRzAERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yHRzAERCEeC2DrmWDHmN2w" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_yHWEcERCEeC2DrmWDHmN2w" info="information for target content" content="target content">
+ <location href="#_yHYgsERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yHYgsERCEeC2DrmWDHmN2w" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_yHaV4URCEeC2DrmWDHmN2w" description="Tom10-Item to review 22" addedById="Tom10" repositoryRef="repository ref..3" authorRep="changeAuthor_3" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_yHaV4kRCEeC2DrmWDHmN2w" sequenceID="13" userID="Tom10"/>
+ <addedBy href="Tom10_comments.xrer#_yC96wURCEeC2DrmWDHmN2w"/>
+ <review href="ReviewTwo_review.xrer#_yC9Ts0RCEeC2DrmWDHmN2w"/>
+ <fileContextList href="#_yHhDkERCEeC2DrmWDHmN2w"/>
+ <ProjectURIs>platform:resource/projX3</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_yHhDkERCEeC2DrmWDHmN2w" type="R4E_ADDED">
+ <id xmi:id="_yHhDkURCEeC2DrmWDHmN2w" sequenceID="14" userID="Tom10"/>
+ <deltas href="#_yHqNgURCEeC2DrmWDHmN2w"/>
+ <base href="#_yHlVAERCEeC2DrmWDHmN2w"/>
+ <target href="#_yHnxQERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_yHlVAERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978380" repositoryPath="root/folder_3" name="file_3" localVersionID="locIdB_1234_3"/>
+ <r4ecore:R4EFileVersion xmi:id="_yHnxQERCEeC2DrmWDHmN2w" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978379" repositoryPath="root/folder_3" name="file_3" localVersionID="locIdT_1234_3"/>
+ <r4ecore:R4EDelta xmi:id="_yHqNgURCEeC2DrmWDHmN2w">
+ <id xmi:id="_yHqNgkRCEeC2DrmWDHmN2w" sequenceID="15" userID="Tom10"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_yHue8ERCEeC2DrmWDHmN2w"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_yH6FIERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_yHue8ERCEeC2DrmWDHmN2w" info="information for base content" content="base content">
+ <location href="#_yHw7MERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yHw7MERCEeC2DrmWDHmN2w" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_yH6FIERCEeC2DrmWDHmN2w" info="information for target content" content="target content">
+ <location href="#_yH8hYERCEeC2DrmWDHmN2w"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_yH8hYERCEeC2DrmWDHmN2w" startPosition="300" length="100" startLine="30" endLine="40"/>
+</xmi:XMI>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/Tom10_group_reviews.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/Tom10_group_reviews.xrer
new file mode 100644
index 0000000..a6b7642
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/Tom10_group_reviews.xrer
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="ASCII"?>
+<r4ecore:R4EUserReviews xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_x22xYURCEeC2DrmWDHmN2w" name="Tom10">
+ <invitedToMap xmi:id="_x22xY0RCEeC2DrmWDHmN2w" key="ReviewSampl">
+ <value href="ReviewSampl/ReviewSampl_review.xrer#_x22KUERCEeC2DrmWDHmN2w"/>
+ </invitedToMap>
+ <invitedToMap xmi:id="_yC96wkRCEeC2DrmWDHmN2w" key="ReviewTwo">
+ <value href="ReviewTwo/ReviewTwo_review.xrer#_yC9Ts0RCEeC2DrmWDHmN2w"/>
+ </invitedToMap>
+ <group href="Golden_Group_group_root.xrer#_xxzSQERCEeC2DrmWDHmN2w"/>
+ <createdReviews>ReviewSampl</createdReviews>
+ <createdReviews>ReviewTwo</createdReviews>
+</r4ecore:R4EUserReviews>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/lmcalvs_group_reviews.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/lmcalvs_group_reviews.xrer
new file mode 100644
index 0000000..9a5ab0f
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupW/lmcalvs_group_reviews.xrer
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="ASCII"?>
+<r4ecore:R4EUserReviews xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_x030YERCEeC2DrmWDHmN2w" name="lmcalvs">
+ <invitedToMap xmi:id="_x04bcURCEeC2DrmWDHmN2w" key="Review1">
+ <value href="Review1/Review1_review.xrer#_x0yU0ERCEeC2DrmWDHmN2w"/>
+ </invitedToMap>
+ <group href="Golden_Group_group_root.xrer#_xxzSQERCEeC2DrmWDHmN2w"/>
+ <createdReviews>Review1</createdReviews>
+</r4ecore:R4EUserReviews>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Golden_Group_group_root.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Golden_Group_group_root.xrer
index 32c3cb6..67834af 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Golden_Group_group_root.xrer
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Golden_Group_group_root.xrer
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="ASCII"?>
-<r4ecore:R4EReviewGroup xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_lYvKYS52EeCvo9WHavBoFQ" description="This is sample description - Group level" name="Golden Group" defaultEntryCriteria="-Entry Criteria" xmlVersion="1.0">
- <reviewGroupTask xsi:type="r4ecore:R4ETaskReference" xmi:id="_lc4qkC52EeCvo9WHavBoFQ" taskId="324327" repositoryURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=324327"/>
- <availableProjects>P1</availableProjects>
- <availableProjects>P2</availableProjects>
- <availableProjects>P3</availableProjects>
- <availableComponents>Component1</availableComponents>
- <availableComponents>Component2</availableComponents>
- <availableComponents>Component3</availableComponents>
- <designRuleLocations xsi:nil="true"/>
- <availableAnomalyTypes xmi:id="_lc7t4C52EeCvo9WHavBoFQ" type="Erroneous"/>
- <availableAnomalyTypes xmi:id="_lc8U8S52EeCvo9WHavBoFQ" type="Superflous"/>
- <availableAnomalyTypes xmi:id="_lc8U8y52EeCvo9WHavBoFQ" type="Improvement"/>
- <availableAnomalyTypes xmi:id="_lc8U9S52EeCvo9WHavBoFQ" type="Question"/>
-</r4ecore:R4EReviewGroup>
+<?xml version="1.0" encoding="ASCII"?>
+<r4ecore:R4EReviewGroup xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_UQxKYERPEeC0spkCnDexvg" description="This is sample description - Group level" name="Golden Group" defaultEntryCriteria="-Entry Criteria" xmlVersion="1.0">
+ <reviewGroupTask xsi:type="r4ecore:R4ETaskReference" xmi:id="_ozavEERPEeC0spkCnDexvg" taskId="324327" repositoryURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=324327"/>
+ <availableProjects>P1</availableProjects>
+ <availableProjects>P2</availableProjects>
+ <availableProjects>P3</availableProjects>
+ <availableComponents>Component1</availableComponents>
+ <availableComponents>Component2</availableComponents>
+ <availableComponents>Component3</availableComponents>
+ <designRuleLocations xsi:nil="true"/>
+ <availableAnomalyTypes xmi:id="_ozj5AERPEeC0spkCnDexvg" type="Erroneous"/>
+ <availableAnomalyTypes xmi:id="_ozlHIURPEeC0spkCnDexvg" type="Superflous"/>
+ <availableAnomalyTypes xmi:id="_ozlHI0RPEeC0spkCnDexvg" type="Improvement"/>
+ <availableAnomalyTypes xmi:id="_ozlHJURPEeC0spkCnDexvg" type="Question"/>
+</r4ecore:R4EReviewGroup>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Jerry20_group_reviews.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Jerry20_group_reviews.xrer
index 26d256c..03cc06b 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Jerry20_group_reviews.xrer
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Jerry20_group_reviews.xrer
@@ -1,10 +1,10 @@
-<?xml version="1.0" encoding="ASCII"?>
-<r4ecore:R4EUserReviews xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_lfWvwi52EeCvo9WHavBoFQ" name="Jerry20">
- <invitedToMap xmi:id="_lfWvxC52EeCvo9WHavBoFQ" key="ReviewSampl">
- <value href="ReviewSampl/ReviewSampl_review.xrer#_leUN8C52EeCvo9WHavBoFQ"/>
- </invitedToMap>
- <invitedToMap xmi:id="_lpGhoS52EeCvo9WHavBoFQ" key="ReviewTwo">
- <value href="ReviewTwo/ReviewTwo_review.xrer#_loVFky52EeCvo9WHavBoFQ"/>
- </invitedToMap>
- <group href="Golden_Group_group_root.xrer#_lYvKYS52EeCvo9WHavBoFQ"/>
-</r4ecore:R4EUserReviews>
+<?xml version="1.0" encoding="ASCII"?>
+<r4ecore:R4EUserReviews xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_o_mw8kRPEeC0spkCnDexvg" name="Jerry20">
+ <invitedToMap xmi:id="_o_mw9ERPEeC0spkCnDexvg" key="ReviewSampl">
+ <value href="ReviewSampl/ReviewSampl_review.xrer#_o6x7UERPEeC0spkCnDexvg"/>
+ </invitedToMap>
+ <invitedToMap xmi:id="_pLWG5ERPEeC0spkCnDexvg" key="ReviewTwo">
+ <value href="ReviewTwo/ReviewTwo_review.xrer#_pI3aoERPEeC0spkCnDexvg"/>
+ </invitedToMap>
+ <group href="Golden_Group_group_root.xrer#_UQxKYERPEeC0spkCnDexvg"/>
+</r4ecore:R4EUserReviews>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Review1/Review1_review.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Review1/Review1_review.xrer
index 575c165..ddd7031 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Review1/Review1_review.xrer
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Review1/Review1_review.xrer
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="ASCII"?>
-<r4ecore:R4EReview xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_lc_YQC52EeCvo9WHavBoFQ" name="Review1" creationDate="1867-07-01T00:00:00.000-0500" startDate="1867-07-01T00:00:00.000-0500" endDate="1867-07-03T00:00:00.000-0500">
- <state xsi:type="r4ecore:R4EReviewState" xmi:id="_ldpfkC52EeCvo9WHavBoFQ"/>
- <createdBy href="lmcalvs_comments.xrer#_ldEQwS52EeCvo9WHavBoFQ"/>
-</r4ecore:R4EReview>
+<?xml version="1.0" encoding="ASCII"?>
+<r4ecore:R4EReview xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_ozvfMERPEeC0spkCnDexvg" name="Review1" startDate="1867-07-01T00:00:00.000-0500" endDate="1867-07-03T00:00:00.000-0500">
+ <state xsi:type="r4ecore:R4EReviewState" xmi:id="_o3kPQERPEeC0spkCnDexvg"/>
+ <createdBy href="lmcalvs_comments.xrer#_oz8TgURPEeC0spkCnDexvg"/>
+</r4ecore:R4EReview>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Review1/lmcalvs_comments.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Review1/lmcalvs_comments.xrer
index 1b5e828..4ccafe8 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Review1/lmcalvs_comments.xrer
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Review1/lmcalvs_comments.xrer
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="ASCII"?>
-<r4ecore:R4EParticipant xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_ldEQwS52EeCvo9WHavBoFQ" id="lmcalvs" reviewCreatedByMe="true">
- <reviewInstance href="Review1_review.xrer#_lc_YQC52EeCvo9WHavBoFQ"/>
- <roles>R4E_ROLE_ORGANIZER</roles>
-</r4ecore:R4EParticipant>
+<?xml version="1.0" encoding="ASCII"?>
+<r4ecore:R4EParticipant xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_oz8TgURPEeC0spkCnDexvg" id="lmcalvs" reviewCreatedByMe="true">
+ <reviewInstance href="Review1_review.xrer#_ozvfMERPEeC0spkCnDexvg"/>
+ <roles>R4E_ROLE_ORGANIZER</roles>
+</r4ecore:R4EParticipant>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/Jerry20_comments.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/Jerry20_comments.xrer
index 263edfb..2045b50 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/Jerry20_comments.xrer
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/Jerry20_comments.xrer
@@ -1,34 +1,36 @@
-<?xml version="1.0" encoding="ASCII"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
- <r4ecore:R4EParticipant xmi:id="_lfWvwS52EeCvo9WHavBoFQ" id="Jerry20" sequenceIDCounter="15" spentTime="60" focusArea="Feature" isPartOfDecision="true">
- <addedComments href="#_lgdjAC52EeCvo9WHavBoFQ"/>
- <addedComments href="#_lg62AC52EeCvo9WHavBoFQ"/>
- <addedComments href="#_lg95US52EeCvo9WHavBoFQ"/>
- <addedItems href="Jerry20_items.xrer#_lk5-IS52EeCvo9WHavBoFQ"/>
- <addedItems href="Jerry20_items.xrer#_ll41kS52EeCvo9WHavBoFQ"/>
- <addedItems href="Jerry20_items.xrer#_lm3tAS52EeCvo9WHavBoFQ"/>
- <addedItems href="Jerry20_items.xrer#_lnn68S52EeCvo9WHavBoFQ"/>
- <reviewInstance href="ReviewSampl_review.xrer#_leUN8C52EeCvo9WHavBoFQ"/>
- <roles>R4E_ROLE_LEAD</roles>
- </r4ecore:R4EParticipant>
- <r4ecore:R4EAnomaly xmi:id="_lgdjAC52EeCvo9WHavBoFQ" user="_lfWvwS52EeCvo9WHavBoFQ" description="Jerry20- Anomaly text here ....." title="This is sample Title - Anomaly" createdOn="1867-07-11T00:00:00.000-0500">
- <location xsi:type="r4ecore:R4ETextContent" href="#_lgh0cC52EeCvo9WHavBoFQ"/>
- <id xmi:id="_lgdjAS52EeCvo9WHavBoFQ" sequenceID="1" userID="Jerry20"/>
- </r4ecore:R4EAnomaly>
- <r4ecore:R4ETextContent xmi:id="_lgh0cC52EeCvo9WHavBoFQ" info="Write any information here">
- <location href="#_lgmF4C52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4EAnomalyTextPosition xmi:id="_lgmF4C52EeCvo9WHavBoFQ" startPosition="1230" length="40" startLine="50" endLine="100">
- <file href="#_lgpwQC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EAnomalyTextPosition>
- <r4ecore:R4EFileVersion xmi:id="_lgpwQC52EeCvo9WHavBoFQ" platformURI="platform:/resource/projName/src/dir1/dir2" versionID="8" repositoryPath="/Dir1/Dir2" name="R4ETestFile"/>
- <r4ecore:R4EComment xmi:id="_lg62AC52EeCvo9WHavBoFQ" user="_lfWvwS52EeCvo9WHavBoFQ" description="This is test comment number 1" createdOn="2011-02-01T21:46:07.968-0500">
- <id xmi:id="_lg62AS52EeCvo9WHavBoFQ" sequenceID="2" userID="Jerry20"/>
- <anomaly href="Tom10_comments.xrer#_lgHkwC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EComment>
- <r4ecore:R4EComment xmi:id="_lg95US52EeCvo9WHavBoFQ" user="_lfWvwS52EeCvo9WHavBoFQ" description="This is test comment number 2" createdOn="2011-02-01T21:46:07.973-0500">
- <type xsi:type="r4ecore:R4ECommentType" xmi:id="_lg95UC52EeCvo9WHavBoFQ"/>
- <id xmi:id="_lg95Ui52EeCvo9WHavBoFQ" sequenceID="3" userID="Jerry20"/>
- <anomaly href="Tom10_comments.xrer#_lgHkwC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EComment>
-</xmi:XMI>
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
+ <r4ecore:R4EParticipant xmi:id="_o_mw8URPEeC0spkCnDexvg" id="Jerry20" sequenceIDCounter="15" focusArea="Feature" isPartOfDecision="true">
+ <addedComments href="#_pDNekERPEeC0spkCnDexvg"/>
+ <addedComments href="#_pDekUERPEeC0spkCnDexvg"/>
+ <addedComments href="#_pDgZgURPEeC0spkCnDexvg"/>
+ <addedItems href="Jerry20_items.xrer#_pF_s0URPEeC0spkCnDexvg"/>
+ <addedItems href="Jerry20_items.xrer#_pH6YYURPEeC0spkCnDexvg"/>
+ <addedItems href="Jerry20_items.xrer#_pIEJYURPEeC0spkCnDexvg"/>
+ <addedItems href="Jerry20_items.xrer#_pIausERPEeC0spkCnDexvg"/>
+ <reviewInstance href="ReviewSampl_review.xrer#_o6x7UERPEeC0spkCnDexvg"/>
+ <roles>R4E_ROLE_LEAD</roles>
+ <timeLog xmi:id="_pCTfoERPEeC0spkCnDexvg" key="1867-07-01T00:00:00.000-0500" value="30"/>
+ <timeLog xmi:id="_pCTfoURPEeC0spkCnDexvg" key="1867-07-03T00:00:00.000-0500" value="30"/>
+ </r4ecore:R4EParticipant>
+ <r4ecore:R4EAnomaly xmi:id="_pDNekERPEeC0spkCnDexvg" user="_o_mw8URPEeC0spkCnDexvg" description="Jerry20- Anomaly text here ....." title="This is sample Title - Anomaly" createdOn="1867-07-11T00:00:00.000-0500">
+ <location xsi:type="r4ecore:R4ETextContent" href="#_pDOssERPEeC0spkCnDexvg"/>
+ <id xmi:id="_pDNekURPEeC0spkCnDexvg" sequenceID="1" userID="Jerry20"/>
+ </r4ecore:R4EAnomaly>
+ <r4ecore:R4ETextContent xmi:id="_pDOssERPEeC0spkCnDexvg" info="Write any information here">
+ <location href="#_pDPTwERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4EAnomalyTextPosition xmi:id="_pDPTwERPEeC0spkCnDexvg" startPosition="1230" length="40" startLine="50" endLine="100">
+ <file href="#_pDP60ERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EAnomalyTextPosition>
+ <r4ecore:R4EFileVersion xmi:id="_pDP60ERPEeC0spkCnDexvg" platformURI="platform:/resource/projName/src/dir1/dir2" versionID="8" repositoryPath="/Dir1/Dir2" name="R4ETestFile"/>
+ <r4ecore:R4EComment xmi:id="_pDekUERPEeC0spkCnDexvg" user="_o_mw8URPEeC0spkCnDexvg" description="This is test comment number 1" createdOn="2011-03-01T17:02:46.933-0500">
+ <id xmi:id="_pDekUURPEeC0spkCnDexvg" sequenceID="2" userID="Jerry20"/>
+ <anomaly href="Tom10_comments.xrer#_pCpd4ERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EComment>
+ <r4ecore:R4EComment xmi:id="_pDgZgURPEeC0spkCnDexvg" user="_o_mw8URPEeC0spkCnDexvg" description="This is test comment number 2" createdOn="2011-03-01T17:02:46.936-0500">
+ <type xsi:type="r4ecore:R4ECommentType" xmi:id="_pDgZgERPEeC0spkCnDexvg"/>
+ <id xmi:id="_pDgZgkRPEeC0spkCnDexvg" sequenceID="3" userID="Jerry20"/>
+ <anomaly href="Tom10_comments.xrer#_pCpd4ERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EComment>
+</xmi:XMI>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/Jerry20_items.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/Jerry20_items.xrer
index 99b8e25..1c8ab0c 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/Jerry20_items.xrer
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/Jerry20_items.xrer
@@ -1,115 +1,115 @@
-<?xml version="1.0" encoding="ASCII"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
- <r4ecore:R4EItem xmi:id="_lk5-IS52EeCvo9WHavBoFQ" description="Jerry20-Item to review 11" addedById="Jerry20" repositoryRef="repository ref..0">
- <id xmi:id="_lk5-Ii52EeCvo9WHavBoFQ" sequenceID="4" userID="Jerry20"/>
- <addedBy href="Jerry20_comments.xrer#_lfWvwS52EeCvo9WHavBoFQ"/>
- <review href="ReviewSampl_review.xrer#_leUN8C52EeCvo9WHavBoFQ"/>
- <fileContextList href="#_llS_sC52EeCvo9WHavBoFQ"/>
- <ProjectURIs>platform:resource/projX0</ProjectURIs>
- </r4ecore:R4EItem>
- <r4ecore:R4EFileContext xmi:id="_llS_sC52EeCvo9WHavBoFQ">
- <id xmi:id="_llS_sS52EeCvo9WHavBoFQ" sequenceID="5" userID="Jerry20"/>
- <deltas href="#_llfM8S52EeCvo9WHavBoFQ"/>
- <base href="#_llWqEC52EeCvo9WHavBoFQ"/>
- <target href="#_lla7gC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EFileContext>
- <r4ecore:R4EFileVersion xmi:id="_llWqEC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019327" repositoryPath="root/folder_0" name="file_0"/>
- <r4ecore:R4EFileVersion xmi:id="_lla7gC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019328" repositoryPath="root/folder_0" name="file_0"/>
- <r4ecore:R4EDelta xmi:id="_llfM8S52EeCvo9WHavBoFQ">
- <id xmi:id="_llfM8i52EeCvo9WHavBoFQ" sequenceID="6" userID="Jerry20"/>
- <base xsi:type="r4ecore:R4ETextContent" href="#_lll6oC52EeCvo9WHavBoFQ"/>
- <target xsi:type="r4ecore:R4ETextContent" href="#_llvEkC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EDelta>
- <r4ecore:R4ETextContent xmi:id="_lll6oC52EeCvo9WHavBoFQ" info="information for base content" content="base content">
- <location href="#_llqMEC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_llqMEC52EeCvo9WHavBoFQ" startPosition="200" length="50" startLine="10" endLine="20"/>
- <r4ecore:R4ETextContent xmi:id="_llvEkC52EeCvo9WHavBoFQ" info="information for target content" content="target content">
- <location href="#_ll0kIC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_ll0kIC52EeCvo9WHavBoFQ" startPosition="300" length="100" startLine="30" endLine="40"/>
- <r4ecore:R4EItem xmi:id="_ll41kS52EeCvo9WHavBoFQ" description="Jerry20-Item to review 12" addedById="Jerry20" repositoryRef="repository ref..1">
- <id xmi:id="_ll41ki52EeCvo9WHavBoFQ" sequenceID="7" userID="Jerry20"/>
- <addedBy href="Jerry20_comments.xrer#_lfWvwS52EeCvo9WHavBoFQ"/>
- <review href="ReviewSampl_review.xrer#_leUN8C52EeCvo9WHavBoFQ"/>
- <fileContextList href="#_lmSeMC52EeCvo9WHavBoFQ"/>
- <ProjectURIs>platform:resource/projX1</ProjectURIs>
- </r4ecore:R4EItem>
- <r4ecore:R4EFileContext xmi:id="_lmSeMC52EeCvo9WHavBoFQ">
- <id xmi:id="_lmSeMS52EeCvo9WHavBoFQ" sequenceID="8" userID="Jerry20"/>
- <deltas href="#_lmlZIS52EeCvo9WHavBoFQ"/>
- <base href="#_lmc2QC52EeCvo9WHavBoFQ"/>
- <target href="#_lmhuwC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EFileContext>
- <r4ecore:R4EFileVersion xmi:id="_lmc2QC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019328" repositoryPath="root/folder_1" name="file_1"/>
- <r4ecore:R4EFileVersion xmi:id="_lmhuwC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019329" repositoryPath="root/folder_1" name="file_1"/>
- <r4ecore:R4EDelta xmi:id="_lmlZIS52EeCvo9WHavBoFQ">
- <id xmi:id="_lmlZIi52EeCvo9WHavBoFQ" sequenceID="9" userID="Jerry20"/>
- <base xsi:type="r4ecore:R4ETextContent" href="#_lmpqkC52EeCvo9WHavBoFQ"/>
- <target xsi:type="r4ecore:R4ETextContent" href="#_lmwYQC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EDelta>
- <r4ecore:R4ETextContent xmi:id="_lmpqkC52EeCvo9WHavBoFQ" info="information for base content" content="base content">
- <location href="#_lmst4C52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_lmst4C52EeCvo9WHavBoFQ" startPosition="200" length="50" startLine="10" endLine="20"/>
- <r4ecore:R4ETextContent xmi:id="_lmwYQC52EeCvo9WHavBoFQ" info="information for target content" content="target content">
- <location href="#_lm0CoC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_lm0CoC52EeCvo9WHavBoFQ" startPosition="300" length="100" startLine="30" endLine="40"/>
- <r4ecore:R4EItem xmi:id="_lm3tAS52EeCvo9WHavBoFQ" description="Jerry20-Item to review 21" addedById="Jerry20" repositoryRef="repository ref..2">
- <id xmi:id="_lm3tAi52EeCvo9WHavBoFQ" sequenceID="10" userID="Jerry20"/>
- <addedBy href="Jerry20_comments.xrer#_lfWvwS52EeCvo9WHavBoFQ"/>
- <review href="ReviewSampl_review.xrer#_leUN8C52EeCvo9WHavBoFQ"/>
- <fileContextList href="#_lm-asC52EeCvo9WHavBoFQ"/>
- <ProjectURIs>platform:resource/projX2</ProjectURIs>
- </r4ecore:R4EItem>
- <r4ecore:R4EFileContext xmi:id="_lm-asC52EeCvo9WHavBoFQ">
- <id xmi:id="_lm-asS52EeCvo9WHavBoFQ" sequenceID="11" userID="Jerry20"/>
- <deltas href="#_lnPgcS52EeCvo9WHavBoFQ"/>
- <base href="#_lnCFEC52EeCvo9WHavBoFQ"/>
- <target href="#_lnLPAC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EFileContext>
- <r4ecore:R4EFileVersion xmi:id="_lnCFEC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019358" repositoryPath="root/folder_2" name="file_2"/>
- <r4ecore:R4EFileVersion xmi:id="_lnLPAC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019359" repositoryPath="root/folder_2" name="file_2"/>
- <r4ecore:R4EDelta xmi:id="_lnPgcS52EeCvo9WHavBoFQ">
- <id xmi:id="_lnPgci52EeCvo9WHavBoFQ" sequenceID="12" userID="Jerry20"/>
- <base xsi:type="r4ecore:R4ETextContent" href="#_lnTx4C52EeCvo9WHavBoFQ"/>
- <target xsi:type="r4ecore:R4ETextContent" href="#_lngmMC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EDelta>
- <r4ecore:R4ETextContent xmi:id="_lnTx4C52EeCvo9WHavBoFQ" info="information for base content" content="base content">
- <location href="#_lnafkC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_lnafkC52EeCvo9WHavBoFQ" startPosition="200" length="50" startLine="10" endLine="20"/>
- <r4ecore:R4ETextContent xmi:id="_lngmMC52EeCvo9WHavBoFQ" info="information for target content" content="target content">
- <location href="#_lnkQkC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_lnkQkC52EeCvo9WHavBoFQ" startPosition="300" length="100" startLine="30" endLine="40"/>
- <r4ecore:R4EItem xmi:id="_lnn68S52EeCvo9WHavBoFQ" description="Jerry20-Item to review 22" addedById="Jerry20" repositoryRef="repository ref..3">
- <id xmi:id="_lnn68i52EeCvo9WHavBoFQ" sequenceID="13" userID="Jerry20"/>
- <addedBy href="Jerry20_comments.xrer#_lfWvwS52EeCvo9WHavBoFQ"/>
- <review href="ReviewSampl_review.xrer#_leUN8C52EeCvo9WHavBoFQ"/>
- <fileContextList href="#_lnv2wC52EeCvo9WHavBoFQ"/>
- <ProjectURIs>platform:resource/projX3</ProjectURIs>
- </r4ecore:R4EItem>
- <r4ecore:R4EFileContext xmi:id="_lnv2wC52EeCvo9WHavBoFQ">
- <id xmi:id="_lnv2wS52EeCvo9WHavBoFQ" sequenceID="14" userID="Jerry20"/>
- <deltas href="#_ln95MS52EeCvo9WHavBoFQ"/>
- <base href="#_ln0IMC52EeCvo9WHavBoFQ"/>
- <target href="#_ln4ZoC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EFileContext>
- <r4ecore:R4EFileVersion xmi:id="_ln0IMC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019359" repositoryPath="root/folder_3" name="file_3"/>
- <r4ecore:R4EFileVersion xmi:id="_ln4ZoC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019360" repositoryPath="root/folder_3" name="file_3"/>
- <r4ecore:R4EDelta xmi:id="_ln95MS52EeCvo9WHavBoFQ">
- <id xmi:id="_ln95Mi52EeCvo9WHavBoFQ" sequenceID="15" userID="Jerry20"/>
- <base xsi:type="r4ecore:R4ETextContent" href="#_loF1AC52EeCvo9WHavBoFQ"/>
- <target xsi:type="r4ecore:R4ETextContent" href="#_loMisC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EDelta>
- <r4ecore:R4ETextContent xmi:id="_loF1AC52EeCvo9WHavBoFQ" info="information for base content" content="base content">
- <location href="#_loI4UC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_loI4UC52EeCvo9WHavBoFQ" startPosition="200" length="50" startLine="10" endLine="20"/>
- <r4ecore:R4ETextContent xmi:id="_loMisC52EeCvo9WHavBoFQ" info="information for target content" content="target content">
- <location href="#_loQNEC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_loQNEC52EeCvo9WHavBoFQ" startPosition="300" length="100" startLine="30" endLine="40"/>
-</xmi:XMI>
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
+ <r4ecore:R4EItem xmi:id="_pF_s0URPEeC0spkCnDexvg" description="Jerry20-Item to review 11" addedById="Jerry20" repositoryRef="repository ref..0" authorRep="changeAuthor_0" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_pF_s0kRPEeC0spkCnDexvg" sequenceID="4" userID="Jerry20"/>
+ <addedBy href="Jerry20_comments.xrer#_o_mw8URPEeC0spkCnDexvg"/>
+ <review href="ReviewSampl_review.xrer#_o6x7UERPEeC0spkCnDexvg"/>
+ <fileContextList href="#_pH0RwERPEeC0spkCnDexvg"/>
+ <ProjectURIs>platform:resource/projX0</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_pH0RwERPEeC0spkCnDexvg" type="R4E_ADDED">
+ <id xmi:id="_pH0RwURPEeC0spkCnDexvg" sequenceID="5" userID="Jerry20"/>
+ <deltas href="#_pH3VEkRPEeC0spkCnDexvg"/>
+ <base href="#_pH040ERPEeC0spkCnDexvg"/>
+ <target href="#_pH3VEERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_pH040ERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019327" repositoryPath="root/folder_0" name="file_0" localVersionID="locIdB_1234_0"/>
+ <r4ecore:R4EFileVersion xmi:id="_pH3VEERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019328" repositoryPath="root/folder_0" name="file_0" localVersionID="locIdT_1234_0"/>
+ <r4ecore:R4EDelta xmi:id="_pH3VEkRPEeC0spkCnDexvg">
+ <id xmi:id="_pH3VE0RPEeC0spkCnDexvg" sequenceID="6" userID="Jerry20"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_pH4jMERPEeC0spkCnDexvg"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_pH5xUERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_pH4jMERPEeC0spkCnDexvg" info="information for base content" content="base content">
+ <location href="#_pH5KQERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pH5KQERPEeC0spkCnDexvg" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_pH5xUERPEeC0spkCnDexvg" info="information for target content" content="target content">
+ <location href="#_pH5xUURPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pH5xUURPEeC0spkCnDexvg" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_pH6YYURPEeC0spkCnDexvg" description="Jerry20-Item to review 12" addedById="Jerry20" repositoryRef="repository ref..1" authorRep="changeAuthor_1" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_pH6YYkRPEeC0spkCnDexvg" sequenceID="7" userID="Jerry20"/>
+ <addedBy href="Jerry20_comments.xrer#_o_mw8URPEeC0spkCnDexvg"/>
+ <review href="ReviewSampl_review.xrer#_o6x7UERPEeC0spkCnDexvg"/>
+ <fileContextList href="#_pH-CwERPEeC0spkCnDexvg"/>
+ <ProjectURIs>platform:resource/projX1</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_pH-CwERPEeC0spkCnDexvg" type="R4E_ADDED">
+ <id xmi:id="_pH-CwURPEeC0spkCnDexvg" sequenceID="8" userID="Jerry20"/>
+ <deltas href="#_pH_38URPEeC0spkCnDexvg"/>
+ <base href="#_pH-p0ERPEeC0spkCnDexvg"/>
+ <target href="#_pH_Q4ERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_pH-p0ERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019328" repositoryPath="root/folder_1" name="file_1" localVersionID="locIdB_1234_1"/>
+ <r4ecore:R4EFileVersion xmi:id="_pH_Q4ERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019329" repositoryPath="root/folder_1" name="file_1" localVersionID="locIdT_1234_1"/>
+ <r4ecore:R4EDelta xmi:id="_pH_38URPEeC0spkCnDexvg">
+ <id xmi:id="_pH_38kRPEeC0spkCnDexvg" sequenceID="9" userID="Jerry20"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_pIBGEERPEeC0spkCnDexvg"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_pIC7QERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_pIBGEERPEeC0spkCnDexvg" info="information for base content" content="base content">
+ <location href="#_pIBtIERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pIBtIERPEeC0spkCnDexvg" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_pIC7QERPEeC0spkCnDexvg" info="information for target content" content="target content">
+ <location href="#_pIDiUERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pIDiUERPEeC0spkCnDexvg" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_pIEJYURPEeC0spkCnDexvg" description="Jerry20-Item to review 21" addedById="Jerry20" repositoryRef="repository ref..2" authorRep="changeAuthor_2" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_pIEJYkRPEeC0spkCnDexvg" sequenceID="10" userID="Jerry20"/>
+ <addedBy href="Jerry20_comments.xrer#_o_mw8URPEeC0spkCnDexvg"/>
+ <review href="ReviewSampl_review.xrer#_o6x7UERPEeC0spkCnDexvg"/>
+ <fileContextList href="#_pIHzwERPEeC0spkCnDexvg"/>
+ <ProjectURIs>platform:resource/projX2</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_pIHzwERPEeC0spkCnDexvg" type="R4E_ADDED">
+ <id xmi:id="_pIHzwURPEeC0spkCnDexvg" sequenceID="11" userID="Jerry20"/>
+ <deltas href="#_pIJo8URPEeC0spkCnDexvg"/>
+ <base href="#_pIIa0ERPEeC0spkCnDexvg"/>
+ <target href="#_pIJB4ERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_pIIa0ERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019358" repositoryPath="root/folder_2" name="file_2" localVersionID="locIdB_1234_2"/>
+ <r4ecore:R4EFileVersion xmi:id="_pIJB4ERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019359" repositoryPath="root/folder_2" name="file_2" localVersionID="locIdT_1234_2"/>
+ <r4ecore:R4EDelta xmi:id="_pIJo8URPEeC0spkCnDexvg">
+ <id xmi:id="_pIJo8kRPEeC0spkCnDexvg" sequenceID="12" userID="Jerry20"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_pIPvkERPEeC0spkCnDexvg"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_pIV2MERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_pIPvkERPEeC0spkCnDexvg" info="information for base content" content="base content">
+ <location href="#_pIQ9sERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pIQ9sERPEeC0spkCnDexvg" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_pIV2MERPEeC0spkCnDexvg" info="information for target content" content="target content">
+ <location href="#_pIY5gERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pIY5gERPEeC0spkCnDexvg" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_pIausERPEeC0spkCnDexvg" description="Jerry20-Item to review 22" addedById="Jerry20" repositoryRef="repository ref..3" authorRep="changeAuthor_3" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_pIausURPEeC0spkCnDexvg" sequenceID="13" userID="Jerry20"/>
+ <addedBy href="Jerry20_comments.xrer#_o_mw8URPEeC0spkCnDexvg"/>
+ <review href="ReviewSampl_review.xrer#_o6x7UERPEeC0spkCnDexvg"/>
+ <fileContextList href="#_pIdK8ERPEeC0spkCnDexvg"/>
+ <ProjectURIs>platform:resource/projX3</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_pIdK8ERPEeC0spkCnDexvg" type="R4E_ADDED">
+ <id xmi:id="_pIdK8URPEeC0spkCnDexvg" sequenceID="14" userID="Jerry20"/>
+ <deltas href="#_pIlt0URPEeC0spkCnDexvg"/>
+ <base href="#_pIiqgERPEeC0spkCnDexvg"/>
+ <target href="#_pIkfsERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_pIiqgERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019359" repositoryPath="root/folder_3" name="file_3" localVersionID="locIdB_1234_3"/>
+ <r4ecore:R4EFileVersion xmi:id="_pIkfsERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019360" repositoryPath="root/folder_3" name="file_3" localVersionID="locIdT_1234_3"/>
+ <r4ecore:R4EDelta xmi:id="_pIlt0URPEeC0spkCnDexvg">
+ <id xmi:id="_pIlt0kRPEeC0spkCnDexvg" sequenceID="15" userID="Jerry20"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_pImU4ERPEeC0spkCnDexvg"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_pI0-YERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_pImU4ERPEeC0spkCnDexvg" info="information for base content" content="base content">
+ <location href="#_pIzJMERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pIzJMERPEeC0spkCnDexvg" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_pI0-YERPEeC0spkCnDexvg" info="information for target content" content="target content">
+ <location href="#_pI0-YURPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pI0-YURPEeC0spkCnDexvg" startPosition="300" length="100" startLine="30" endLine="40"/>
+</xmi:XMI>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/ReviewSampl_review.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/ReviewSampl_review.xrer
index 84a1cf8..6565ad5 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/ReviewSampl_review.xrer
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/ReviewSampl_review.xrer
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="ASCII"?>
-<r4ecore:R4EReview xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_leUN8C52EeCvo9WHavBoFQ" name="ReviewSampl" creationDate="1867-07-01T00:00:00.000-0500" project="P1" entryCriteria="Sample Entry Cryteria" extraNotes="Sample extra notes" objectives="Sample Objectives" referenceMaterial="sample reference material" startDate="1867-07-01T00:00:00.000-0500" endDate="1867-07-03T00:00:00.000-0500" type="R4E_REVIEW_TYPE_INFORMAL">
- <reviewTask xsi:type="r4ecore:R4ETaskReference" xmi:id="_loVFki52EeCvo9WHavBoFQ" taskId="324328" repositoryURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=324328"/>
- <state xsi:type="r4ecore:R4EReviewState" xmi:id="_loVFkS52EeCvo9WHavBoFQ" state="R4E_REVIEW_PHASE_PREPARATION"/>
- <components>Component1</components>
- <decision xmi:id="_loVFkC52EeCvo9WHavBoFQ" spentTime="120" value="R4E_REVIEW_DECISION_ACCEPTED"/>
- <createdBy href="Tom10_comments.xrer#_leUN8y52EeCvo9WHavBoFQ"/>
-</r4ecore:R4EReview>
+<?xml version="1.0" encoding="ASCII"?>
+<r4ecore:R4EReview xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_o6x7UERPEeC0spkCnDexvg" name="ReviewSampl" project="P1" entryCriteria="Sample Entry Cryteria" extraNotes="Sample extra notes" objectives="Sample Objectives" referenceMaterial="sample reference material" startDate="1867-07-01T00:00:00.000-0500" endDate="1867-07-03T00:00:00.000-0500" type="R4E_REVIEW_TYPE_INFORMAL">
+ <reviewTask xsi:type="r4ecore:R4ETaskReference" xmi:id="_pI2zkkRPEeC0spkCnDexvg" taskId="324328" repositoryURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=324328"/>
+ <state xsi:type="r4ecore:R4EReviewState" xmi:id="_pI2zkURPEeC0spkCnDexvg" state="R4E_REVIEW_PHASE_PREPARATION"/>
+ <components>Component1</components>
+ <decision xmi:id="_pI2zkERPEeC0spkCnDexvg" spentTime="120" value="R4E_REVIEW_DECISION_ACCEPTED"/>
+ <createdBy href="Tom10_comments.xrer#_o6yiYkRPEeC0spkCnDexvg"/>
+</r4ecore:R4EReview>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/Tom10_comments.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/Tom10_comments.xrer
index 19da6b4..2dda2d8 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/Tom10_comments.xrer
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/Tom10_comments.xrer
@@ -1,35 +1,37 @@
-<?xml version="1.0" encoding="ASCII"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
- <r4ecore:R4EParticipant xmi:id="_leUN8y52EeCvo9WHavBoFQ" id="Tom10" sequenceIDCounter="15" reviewCreatedByMe="true" spentTime="60" focusArea="Performance" isPartOfDecision="true">
- <addedComments href="#_lgHkwC52EeCvo9WHavBoFQ"/>
- <addedComments href="#_lgy6MC52EeCvo9WHavBoFQ"/>
- <addedComments href="#_lg2kkS52EeCvo9WHavBoFQ"/>
- <addedItems href="Tom10_items.xrer#_lhFOES52EeCvo9WHavBoFQ"/>
- <addedItems href="Tom10_items.xrer#_liNPcS52EeCvo9WHavBoFQ"/>
- <addedItems href="Tom10_items.xrer#_li7oMS52EeCvo9WHavBoFQ"/>
- <addedItems href="Tom10_items.xrer#_lj7twS52EeCvo9WHavBoFQ"/>
- <reviewInstance href="ReviewSampl_review.xrer#_leUN8C52EeCvo9WHavBoFQ"/>
- <roles>R4E_ROLE_ORGANIZER</roles>
- <roles>R4E_ROLE_LEAD</roles>
- </r4ecore:R4EParticipant>
- <r4ecore:R4EAnomaly xmi:id="_lgHkwC52EeCvo9WHavBoFQ" user="_leUN8y52EeCvo9WHavBoFQ" description="Tom10- Anomaly text here ....." title="This is sample Title - Anomaly" createdOn="1867-07-11T00:00:00.000-0500">
- <location xsi:type="r4ecore:R4ETextContent" href="#_lgO5gC52EeCvo9WHavBoFQ"/>
- <id xmi:id="_lgIy4C52EeCvo9WHavBoFQ" sequenceID="1" userID="Tom10"/>
- </r4ecore:R4EAnomaly>
- <r4ecore:R4ETextContent xmi:id="_lgO5gC52EeCvo9WHavBoFQ" info="Write any information here">
- <location href="#_lgVAIC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4EAnomalyTextPosition xmi:id="_lgVAIC52EeCvo9WHavBoFQ" startPosition="1230" length="40" startLine="50" endLine="100">
- <file href="#_lgZRkC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EAnomalyTextPosition>
- <r4ecore:R4EFileVersion xmi:id="_lgZRkC52EeCvo9WHavBoFQ" platformURI="platform:/resource/projName/src/dir1/dir2" versionID="8" repositoryPath="/Dir1/Dir2" name="R4ETestFile"/>
- <r4ecore:R4EComment xmi:id="_lgy6MC52EeCvo9WHavBoFQ" user="_leUN8y52EeCvo9WHavBoFQ" description="This is test comment number 1" createdOn="2011-02-01T21:46:07.955-0500">
- <id xmi:id="_lgy6MS52EeCvo9WHavBoFQ" sequenceID="2" userID="Tom10"/>
- <anomaly href="Jerry20_comments.xrer#_lgdjAC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EComment>
- <r4ecore:R4EComment xmi:id="_lg2kkS52EeCvo9WHavBoFQ" user="_leUN8y52EeCvo9WHavBoFQ" description="This is test comment number 2" createdOn="2011-02-01T21:46:07.961-0500">
- <type xsi:type="r4ecore:R4ECommentType" xmi:id="_lg2kkC52EeCvo9WHavBoFQ"/>
- <id xmi:id="_lg2kki52EeCvo9WHavBoFQ" sequenceID="3" userID="Tom10"/>
- <anomaly href="Jerry20_comments.xrer#_lgdjAC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EComment>
-</xmi:XMI>
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
+ <r4ecore:R4EParticipant xmi:id="_o6yiYkRPEeC0spkCnDexvg" id="Tom10" sequenceIDCounter="15" reviewCreatedByMe="true" focusArea="Performance" isPartOfDecision="true">
+ <addedComments href="#_pCpd4ERPEeC0spkCnDexvg"/>
+ <addedComments href="#_pDbhAERPEeC0spkCnDexvg"/>
+ <addedComments href="#_pDcvIURPEeC0spkCnDexvg"/>
+ <addedItems href="Tom10_items.xrer#_pDrYoERPEeC0spkCnDexvg"/>
+ <addedItems href="Tom10_items.xrer#_pFBccURPEeC0spkCnDexvg"/>
+ <addedItems href="Tom10_items.xrer#_pFZ28URPEeC0spkCnDexvg"/>
+ <addedItems href="Tom10_items.xrer#_pFsx4URPEeC0spkCnDexvg"/>
+ <reviewInstance href="ReviewSampl_review.xrer#_o6x7UERPEeC0spkCnDexvg"/>
+ <roles>R4E_ROLE_ORGANIZER</roles>
+ <roles>R4E_ROLE_LEAD</roles>
+ <timeLog xmi:id="_o_li0ERPEeC0spkCnDexvg" key="1867-07-01T00:00:00.000-0500" value="30"/>
+ <timeLog xmi:id="_o_li0URPEeC0spkCnDexvg" key="1867-07-03T00:00:00.000-0500" value="30"/>
+ </r4ecore:R4EParticipant>
+ <r4ecore:R4EAnomaly xmi:id="_pCpd4ERPEeC0spkCnDexvg" user="_o6yiYkRPEeC0spkCnDexvg" description="Tom10- Anomaly text here ....." title="This is sample Title - Anomaly" createdOn="1867-07-11T00:00:00.000-0500">
+ <location xsi:type="r4ecore:R4ETextContent" href="#_pC4HYERPEeC0spkCnDexvg"/>
+ <id xmi:id="_pCshMERPEeC0spkCnDexvg" sequenceID="1" userID="Tom10"/>
+ </r4ecore:R4EAnomaly>
+ <r4ecore:R4ETextContent xmi:id="_pC4HYERPEeC0spkCnDexvg" info="Write any information here">
+ <location href="#_pDH_AERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4EAnomalyTextPosition xmi:id="_pDH_AERPEeC0spkCnDexvg" startPosition="1230" length="40" startLine="50" endLine="100">
+ <file href="#_pDMQcERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EAnomalyTextPosition>
+ <r4ecore:R4EFileVersion xmi:id="_pDMQcERPEeC0spkCnDexvg" platformURI="platform:/resource/projName/src/dir1/dir2" versionID="8" repositoryPath="/Dir1/Dir2" name="R4ETestFile"/>
+ <r4ecore:R4EComment xmi:id="_pDbhAERPEeC0spkCnDexvg" user="_o6yiYkRPEeC0spkCnDexvg" description="This is test comment number 1" createdOn="2011-03-01T17:02:46.928-0500">
+ <id xmi:id="_pDbhAURPEeC0spkCnDexvg" sequenceID="2" userID="Tom10"/>
+ <anomaly href="Jerry20_comments.xrer#_pDNekERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EComment>
+ <r4ecore:R4EComment xmi:id="_pDcvIURPEeC0spkCnDexvg" user="_o6yiYkRPEeC0spkCnDexvg" description="This is test comment number 2" createdOn="2011-03-01T17:02:46.930-0500">
+ <type xsi:type="r4ecore:R4ECommentType" xmi:id="_pDcvIERPEeC0spkCnDexvg"/>
+ <id xmi:id="_pDcvIkRPEeC0spkCnDexvg" sequenceID="3" userID="Tom10"/>
+ <anomaly href="Jerry20_comments.xrer#_pDNekERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EComment>
+</xmi:XMI>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/Tom10_items.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/Tom10_items.xrer
index d238b16..4003331 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/Tom10_items.xrer
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewSampl/Tom10_items.xrer
@@ -1,115 +1,115 @@
-<?xml version="1.0" encoding="ASCII"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
- <r4ecore:R4EItem xmi:id="_lhFOES52EeCvo9WHavBoFQ" description="Tom10-Item to review 11" addedById="Tom10" repositoryRef="repository ref..0">
- <id xmi:id="_lhFOEi52EeCvo9WHavBoFQ" sequenceID="4" userID="Tom10"/>
- <addedBy href="Tom10_comments.xrer#_leUN8y52EeCvo9WHavBoFQ"/>
- <review href="ReviewSampl_review.xrer#_leUN8C52EeCvo9WHavBoFQ"/>
- <fileContextList href="#_lhp10C52EeCvo9WHavBoFQ"/>
- <ProjectURIs>platform:resource/projX0</ProjectURIs>
- </r4ecore:R4EItem>
- <r4ecore:R4EFileContext xmi:id="_lhp10C52EeCvo9WHavBoFQ">
- <id xmi:id="_lhp10S52EeCvo9WHavBoFQ" sequenceID="5" userID="Tom10"/>
- <deltas href="#_lh2DES52EeCvo9WHavBoFQ"/>
- <base href="#_lhs5IC52EeCvo9WHavBoFQ"/>
- <target href="#_lhwjgC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EFileContext>
- <r4ecore:R4EFileVersion xmi:id="_lhs5IC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978412" repositoryPath="root/folder_0" name="file_0"/>
- <r4ecore:R4EFileVersion xmi:id="_lhwjgC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978411" repositoryPath="root/folder_0" name="file_0"/>
- <r4ecore:R4EDelta xmi:id="_lh2DES52EeCvo9WHavBoFQ">
- <id xmi:id="_lh2DEi52EeCvo9WHavBoFQ" sequenceID="6" userID="Tom10"/>
- <base xsi:type="r4ecore:R4ETextContent" href="#_lh5GYC52EeCvo9WHavBoFQ"/>
- <target xsi:type="r4ecore:R4ETextContent" href="#_liAbIC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EDelta>
- <r4ecore:R4ETextContent xmi:id="_lh5GYC52EeCvo9WHavBoFQ" info="information for base content" content="base content">
- <location href="#_lh8wwC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_lh8wwC52EeCvo9WHavBoFQ" startPosition="200" length="50" startLine="10" endLine="20"/>
- <r4ecore:R4ETextContent xmi:id="_liAbIC52EeCvo9WHavBoFQ" info="information for target content" content="target content">
- <location href="#_liHI0C52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_liHI0C52EeCvo9WHavBoFQ" startPosition="300" length="100" startLine="30" endLine="40"/>
- <r4ecore:R4EItem xmi:id="_liNPcS52EeCvo9WHavBoFQ" description="Tom10-Item to review 12" addedById="Tom10" repositoryRef="repository ref..1">
- <id xmi:id="_liNPci52EeCvo9WHavBoFQ" sequenceID="7" userID="Tom10"/>
- <addedBy href="Tom10_comments.xrer#_leUN8y52EeCvo9WHavBoFQ"/>
- <review href="ReviewSampl_review.xrer#_leUN8C52EeCvo9WHavBoFQ"/>
- <fileContextList href="#_liUkMC52EeCvo9WHavBoFQ"/>
- <ProjectURIs>platform:resource/projX1</ProjectURIs>
- </r4ecore:R4EItem>
- <r4ecore:R4EFileContext xmi:id="_liUkMC52EeCvo9WHavBoFQ">
- <id xmi:id="_liUkMS52EeCvo9WHavBoFQ" sequenceID="8" userID="Tom10"/>
- <deltas href="#_ligxcS52EeCvo9WHavBoFQ"/>
- <base href="#_liYOkC52EeCvo9WHavBoFQ"/>
- <target href="#_lib48C52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EFileContext>
- <r4ecore:R4EFileVersion xmi:id="_liYOkC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978411" repositoryPath="root/folder_1" name="file_1"/>
- <r4ecore:R4EFileVersion xmi:id="_lib48C52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978410" repositoryPath="root/folder_1" name="file_1"/>
- <r4ecore:R4EDelta xmi:id="_ligxcS52EeCvo9WHavBoFQ">
- <id xmi:id="_ligxci52EeCvo9WHavBoFQ" sequenceID="9" userID="Tom10"/>
- <base xsi:type="r4ecore:R4ETextContent" href="#_likb0C52EeCvo9WHavBoFQ"/>
- <target xsi:type="r4ecore:R4ETextContent" href="#_liuM0C52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EDelta>
- <r4ecore:R4ETextContent xmi:id="_likb0C52EeCvo9WHavBoFQ" info="information for base content" content="base content">
- <location href="#_linfIC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_linfIC52EeCvo9WHavBoFQ" startPosition="200" length="50" startLine="10" endLine="20"/>
- <r4ecore:R4ETextContent xmi:id="_liuM0C52EeCvo9WHavBoFQ" info="information for target content" content="target content">
- <location href="#_li06gC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_li06gC52EeCvo9WHavBoFQ" startPosition="300" length="100" startLine="30" endLine="40"/>
- <r4ecore:R4EItem xmi:id="_li7oMS52EeCvo9WHavBoFQ" description="Tom10-Item to review 21" addedById="Tom10" repositoryRef="repository ref..2">
- <id xmi:id="_li8PQC52EeCvo9WHavBoFQ" sequenceID="10" userID="Tom10"/>
- <addedBy href="Tom10_comments.xrer#_leUN8y52EeCvo9WHavBoFQ"/>
- <review href="ReviewSampl_review.xrer#_leUN8C52EeCvo9WHavBoFQ"/>
- <fileContextList href="#_ljJqoC52EeCvo9WHavBoFQ"/>
- <ProjectURIs>platform:resource/projX2</ProjectURIs>
- </r4ecore:R4EItem>
- <r4ecore:R4EFileContext xmi:id="_ljJqoC52EeCvo9WHavBoFQ">
- <id xmi:id="_ljJqoS52EeCvo9WHavBoFQ" sequenceID="11" userID="Tom10"/>
- <deltas href="#_ljbXcC52EeCvo9WHavBoFQ"/>
- <base href="#_ljPKMC52EeCvo9WHavBoFQ"/>
- <target href="#_ljV34C52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EFileContext>
- <r4ecore:R4EFileVersion xmi:id="_ljPKMC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978381" repositoryPath="root/folder_2" name="file_2"/>
- <r4ecore:R4EFileVersion xmi:id="_ljV34C52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978380" repositoryPath="root/folder_2" name="file_2"/>
- <r4ecore:R4EDelta xmi:id="_ljbXcC52EeCvo9WHavBoFQ">
- <id xmi:id="_ljbXcS52EeCvo9WHavBoFQ" sequenceID="12" userID="Tom10"/>
- <base xsi:type="r4ecore:R4ETextContent" href="#_ljgP8C52EeCvo9WHavBoFQ"/>
- <target xsi:type="r4ecore:R4ETextContent" href="#_ljtEQC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EDelta>
- <r4ecore:R4ETextContent xmi:id="_ljgP8C52EeCvo9WHavBoFQ" info="information for base content" content="base content">
- <location href="#_ljm9oC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_ljm9oC52EeCvo9WHavBoFQ" startPosition="200" length="50" startLine="10" endLine="20"/>
- <r4ecore:R4ETextContent xmi:id="_ljtEQC52EeCvo9WHavBoFQ" info="information for target content" content="target content">
- <location href="#_ljzK4C52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_ljzK4C52EeCvo9WHavBoFQ" startPosition="300" length="100" startLine="30" endLine="40"/>
- <r4ecore:R4EItem xmi:id="_lj7twS52EeCvo9WHavBoFQ" description="Tom10-Item to review 22" addedById="Tom10" repositoryRef="repository ref..3">
- <id xmi:id="_lj7twi52EeCvo9WHavBoFQ" sequenceID="13" userID="Tom10"/>
- <addedBy href="Tom10_comments.xrer#_leUN8y52EeCvo9WHavBoFQ"/>
- <review href="ReviewSampl_review.xrer#_leUN8C52EeCvo9WHavBoFQ"/>
- <fileContextList href="#_lkH7AC52EeCvo9WHavBoFQ"/>
- <ProjectURIs>platform:resource/projX3</ProjectURIs>
- </r4ecore:R4EItem>
- <r4ecore:R4EFileContext xmi:id="_lkH7AC52EeCvo9WHavBoFQ">
- <id xmi:id="_lkH7AS52EeCvo9WHavBoFQ" sequenceID="14" userID="Tom10"/>
- <deltas href="#_lkbdAS52EeCvo9WHavBoFQ"/>
- <base href="#_lkNakC52EeCvo9WHavBoFQ"/>
- <target href="#_lkUvUC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EFileContext>
- <r4ecore:R4EFileVersion xmi:id="_lkNakC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978380" repositoryPath="root/folder_3" name="file_3"/>
- <r4ecore:R4EFileVersion xmi:id="_lkUvUC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978379" repositoryPath="root/folder_3" name="file_3"/>
- <r4ecore:R4EDelta xmi:id="_lkbdAS52EeCvo9WHavBoFQ">
- <id xmi:id="_lkbdAi52EeCvo9WHavBoFQ" sequenceID="15" userID="Tom10"/>
- <base xsi:type="r4ecore:R4ETextContent" href="#_lkg8kC52EeCvo9WHavBoFQ"/>
- <target xsi:type="r4ecore:R4ETextContent" href="#_lktJ0C52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EDelta>
- <r4ecore:R4ETextContent xmi:id="_lkg8kC52EeCvo9WHavBoFQ" info="information for base content" content="base content">
- <location href="#_lkmcIC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_lkmcIC52EeCvo9WHavBoFQ" startPosition="200" length="50" startLine="10" endLine="20"/>
- <r4ecore:R4ETextContent xmi:id="_lktJ0C52EeCvo9WHavBoFQ" info="information for target content" content="target content">
- <location href="#_lk0ekC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_lk0ekC52EeCvo9WHavBoFQ" startPosition="300" length="100" startLine="30" endLine="40"/>
-</xmi:XMI>
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
+ <r4ecore:R4EItem xmi:id="_pDrYoERPEeC0spkCnDexvg" description="Tom10-Item to review 11" addedById="Tom10" repositoryRef="repository ref..0" authorRep="changeAuthor_0" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_pDrYoURPEeC0spkCnDexvg" sequenceID="4" userID="Tom10"/>
+ <addedBy href="Tom10_comments.xrer#_o6yiYkRPEeC0spkCnDexvg"/>
+ <review href="ReviewSampl_review.xrer#_o6x7UERPEeC0spkCnDexvg"/>
+ <fileContextList href="#_pEt6cERPEeC0spkCnDexvg"/>
+ <ProjectURIs>platform:resource/projX0</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_pEt6cERPEeC0spkCnDexvg" type="R4E_ADDED">
+ <id xmi:id="_pEt6cURPEeC0spkCnDexvg" sequenceID="5" userID="Tom10"/>
+ <deltas href="#_pE3EYURPEeC0spkCnDexvg"/>
+ <base href="#_pEuhgERPEeC0spkCnDexvg"/>
+ <target href="#_pEvIkERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_pEuhgERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978412" repositoryPath="root/folder_0" name="file_0" localVersionID="locIdB_1234_0"/>
+ <r4ecore:R4EFileVersion xmi:id="_pEvIkERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978411" repositoryPath="root/folder_0" name="file_0" localVersionID="locIdT_1234_0"/>
+ <r4ecore:R4EDelta xmi:id="_pE3EYURPEeC0spkCnDexvg">
+ <id xmi:id="_pE3EYkRPEeC0spkCnDexvg" sequenceID="6" userID="Tom10"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_pE4SgERPEeC0spkCnDexvg"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_pE_nQERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_pE4SgERPEeC0spkCnDexvg" info="information for base content" content="base content">
+ <location href="#_pE5goERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pE5goERPEeC0spkCnDexvg" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_pE_nQERPEeC0spkCnDexvg" info="information for target content" content="target content">
+ <location href="#_pFAOUERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pFAOUERPEeC0spkCnDexvg" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_pFBccURPEeC0spkCnDexvg" description="Tom10-Item to review 12" addedById="Tom10" repositoryRef="repository ref..1" authorRep="changeAuthor_1" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_pFBcckRPEeC0spkCnDexvg" sequenceID="7" userID="Tom10"/>
+ <addedBy href="Tom10_comments.xrer#_o6yiYkRPEeC0spkCnDexvg"/>
+ <review href="ReviewSampl_review.xrer#_o6x7UERPEeC0spkCnDexvg"/>
+ <fileContextList href="#_pFIKIERPEeC0spkCnDexvg"/>
+ <ProjectURIs>platform:resource/projX1</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_pFIKIERPEeC0spkCnDexvg" type="R4E_ADDED">
+ <id xmi:id="_pFIKIURPEeC0spkCnDexvg" sequenceID="8" userID="Tom10"/>
+ <deltas href="#_pFL0gURPEeC0spkCnDexvg"/>
+ <base href="#_pFJ_UERPEeC0spkCnDexvg"/>
+ <target href="#_pFKmYERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_pFJ_UERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978411" repositoryPath="root/folder_1" name="file_1" localVersionID="locIdB_1234_1"/>
+ <r4ecore:R4EFileVersion xmi:id="_pFKmYERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978410" repositoryPath="root/folder_1" name="file_1" localVersionID="locIdT_1234_1"/>
+ <r4ecore:R4EDelta xmi:id="_pFL0gURPEeC0spkCnDexvg">
+ <id xmi:id="_pFL0gkRPEeC0spkCnDexvg" sequenceID="9" userID="Tom10"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_pFMbkERPEeC0spkCnDexvg"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_pFU-cERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_pFMbkERPEeC0spkCnDexvg" info="information for base content" content="base content">
+ <location href="#_pFNCoERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pFNCoERPEeC0spkCnDexvg" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_pFU-cERPEeC0spkCnDexvg" info="information for target content" content="target content">
+ <location href="#_pFWMkERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pFWMkERPEeC0spkCnDexvg" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_pFZ28URPEeC0spkCnDexvg" description="Tom10-Item to review 21" addedById="Tom10" repositoryRef="repository ref..2" authorRep="changeAuthor_2" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_pFZ28kRPEeC0spkCnDexvg" sequenceID="10" userID="Tom10"/>
+ <addedBy href="Tom10_comments.xrer#_o6yiYkRPEeC0spkCnDexvg"/>
+ <review href="ReviewSampl_review.xrer#_o6x7UERPEeC0spkCnDexvg"/>
+ <fileContextList href="#_pFbsIERPEeC0spkCnDexvg"/>
+ <ProjectURIs>platform:resource/projX2</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_pFbsIERPEeC0spkCnDexvg" type="R4E_ADDED">
+ <id xmi:id="_pFbsIURPEeC0spkCnDexvg" sequenceID="11" userID="Tom10"/>
+ <deltas href="#_pFhLsURPEeC0spkCnDexvg"/>
+ <base href="#_pFfWgERPEeC0spkCnDexvg"/>
+ <target href="#_pFf9kERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_pFfWgERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978381" repositoryPath="root/folder_2" name="file_2" localVersionID="locIdB_1234_2"/>
+ <r4ecore:R4EFileVersion xmi:id="_pFf9kERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978380" repositoryPath="root/folder_2" name="file_2" localVersionID="locIdT_1234_2"/>
+ <r4ecore:R4EDelta xmi:id="_pFhLsURPEeC0spkCnDexvg">
+ <id xmi:id="_pFhLskRPEeC0spkCnDexvg" sequenceID="12" userID="Tom10"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_pFjA4ERPEeC0spkCnDexvg"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_pFldIERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_pFjA4ERPEeC0spkCnDexvg" info="information for base content" content="base content">
+ <location href="#_pFkPAERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pFkPAERPEeC0spkCnDexvg" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_pFldIERPEeC0spkCnDexvg" info="information for target content" content="target content">
+ <location href="#_pFrjwERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pFrjwERPEeC0spkCnDexvg" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_pFsx4URPEeC0spkCnDexvg" description="Tom10-Item to review 22" addedById="Tom10" repositoryRef="repository ref..3" authorRep="changeAuthor_3" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_pFsx4kRPEeC0spkCnDexvg" sequenceID="13" userID="Tom10"/>
+ <addedBy href="Tom10_comments.xrer#_o6yiYkRPEeC0spkCnDexvg"/>
+ <review href="ReviewSampl_review.xrer#_o6x7UERPEeC0spkCnDexvg"/>
+ <fileContextList href="#_pFv1MERPEeC0spkCnDexvg"/>
+ <ProjectURIs>platform:resource/projX3</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_pFv1MERPEeC0spkCnDexvg" type="R4E_ADDED">
+ <id xmi:id="_pFv1MURPEeC0spkCnDexvg" sequenceID="14" userID="Tom10"/>
+ <deltas href="#_pF1UwURPEeC0spkCnDexvg"/>
+ <base href="#_pFxDUERPEeC0spkCnDexvg"/>
+ <target href="#_pFxqYERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_pFxDUERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978380" repositoryPath="root/folder_3" name="file_3" localVersionID="locIdB_1234_3"/>
+ <r4ecore:R4EFileVersion xmi:id="_pFxqYERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978379" repositoryPath="root/folder_3" name="file_3" localVersionID="locIdT_1234_3"/>
+ <r4ecore:R4EDelta xmi:id="_pF1UwURPEeC0spkCnDexvg">
+ <id xmi:id="_pF1UwkRPEeC0spkCnDexvg" sequenceID="15" userID="Tom10"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_pF2i4ERPEeC0spkCnDexvg"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_pF4YEERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_pF2i4ERPEeC0spkCnDexvg" info="information for base content" content="base content">
+ <location href="#_pF3xAERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pF3xAERPEeC0spkCnDexvg" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_pF4YEERPEeC0spkCnDexvg" info="information for target content" content="target content">
+ <location href="#_pF5mMERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pF5mMERPEeC0spkCnDexvg" startPosition="300" length="100" startLine="30" endLine="40"/>
+</xmi:XMI>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/Jerry20_comments.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/Jerry20_comments.xrer
index 79d0384..5cb11de 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/Jerry20_comments.xrer
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/Jerry20_comments.xrer
@@ -1,34 +1,36 @@
-<?xml version="1.0" encoding="ASCII"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
- <r4ecore:R4EParticipant xmi:id="_lpGhoC52EeCvo9WHavBoFQ" id="Jerry20" sequenceIDCounter="15" spentTime="60" focusArea="Feature" isPartOfDecision="true">
- <addedComments href="#_lpxQAC52EeCvo9WHavBoFQ"/>
- <addedComments href="#_lqDj4C52EeCvo9WHavBoFQ"/>
- <addedComments href="#_lqHOQS52EeCvo9WHavBoFQ"/>
- <addedItems href="Jerry20_items.xrer#_ls0kAi52EeCvo9WHavBoFQ"/>
- <addedItems href="Jerry20_items.xrer#_lterUS52EeCvo9WHavBoFQ"/>
- <addedItems href="Jerry20_items.xrer#_luIyoC52EeCvo9WHavBoFQ"/>
- <addedItems href="Jerry20_items.xrer#_lvAVUS52EeCvo9WHavBoFQ"/>
- <reviewInstance href="ReviewTwo_review.xrer#_loVFky52EeCvo9WHavBoFQ"/>
- <roles>R4E_ROLE_LEAD</roles>
- </r4ecore:R4EParticipant>
- <r4ecore:R4EAnomaly xmi:id="_lpxQAC52EeCvo9WHavBoFQ" user="_lpGhoC52EeCvo9WHavBoFQ" description="Jerry20- Anomaly text here ....." title="This is sample Title - Anomaly" createdOn="1867-07-11T00:00:00.000-0500">
- <location xsi:type="r4ecore:R4ETextContent" href="#_lp0TUC52EeCvo9WHavBoFQ"/>
- <id xmi:id="_lpxQAS52EeCvo9WHavBoFQ" sequenceID="1" userID="Jerry20"/>
- </r4ecore:R4EAnomaly>
- <r4ecore:R4ETextContent xmi:id="_lp0TUC52EeCvo9WHavBoFQ" info="Write any information here">
- <location href="#_lp3WoC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4EAnomalyTextPosition xmi:id="_lp3WoC52EeCvo9WHavBoFQ" startPosition="1230" length="40" startLine="50" endLine="100">
- <file href="#_lp6Z8C52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EAnomalyTextPosition>
- <r4ecore:R4EFileVersion xmi:id="_lp6Z8C52EeCvo9WHavBoFQ" platformURI="platform:/resource/projName/src/dir1/dir2" versionID="8" repositoryPath="/Dir1/Dir2" name="R4ETestFile"/>
- <r4ecore:R4EComment xmi:id="_lqDj4C52EeCvo9WHavBoFQ" user="_lpGhoC52EeCvo9WHavBoFQ" description="This is test comment number 1" createdOn="2011-02-01T21:46:08.926-0500">
- <id xmi:id="_lqDj4S52EeCvo9WHavBoFQ" sequenceID="2" userID="Jerry20"/>
- <anomaly href="Tom10_comments.xrer#_lpjNkC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EComment>
- <r4ecore:R4EComment xmi:id="_lqHOQS52EeCvo9WHavBoFQ" user="_lpGhoC52EeCvo9WHavBoFQ" description="This is test comment number 2" createdOn="2011-02-01T21:46:08.932-0500">
- <type xsi:type="r4ecore:R4ECommentType" xmi:id="_lqHOQC52EeCvo9WHavBoFQ"/>
- <id xmi:id="_lqHOQi52EeCvo9WHavBoFQ" sequenceID="3" userID="Jerry20"/>
- <anomaly href="Tom10_comments.xrer#_lpjNkC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EComment>
-</xmi:XMI>
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
+ <r4ecore:R4EParticipant xmi:id="_pLWG40RPEeC0spkCnDexvg" id="Jerry20" sequenceIDCounter="15" focusArea="Feature" isPartOfDecision="true">
+ <addedComments href="#_pNATwERPEeC0spkCnDexvg"/>
+ <addedComments href="#_pNDXEERPEeC0spkCnDexvg"/>
+ <addedComments href="#_pNGaYERPEeC0spkCnDexvg"/>
+ <addedItems href="Jerry20_items.xrer#_pOp5kERPEeC0spkCnDexvg"/>
+ <addedItems href="Jerry20_items.xrer#_pQQcEURPEeC0spkCnDexvg"/>
+ <addedItems href="Jerry20_items.xrer#_pQXw0URPEeC0spkCnDexvg"/>
+ <addedItems href="Jerry20_items.xrer#_pQhh0URPEeC0spkCnDexvg"/>
+ <reviewInstance href="ReviewTwo_review.xrer#_pI3aoERPEeC0spkCnDexvg"/>
+ <roles>R4E_ROLE_LEAD</roles>
+ <timeLog xmi:id="_pM60MERPEeC0spkCnDexvg" key="1867-07-01T00:00:00.000-0500" value="30"/>
+ <timeLog xmi:id="_pM60MURPEeC0spkCnDexvg" key="1867-07-03T00:00:00.000-0500" value="30"/>
+ </r4ecore:R4EParticipant>
+ <r4ecore:R4EAnomaly xmi:id="_pNATwERPEeC0spkCnDexvg" user="_pLWG40RPEeC0spkCnDexvg" description="Jerry20- Anomaly text here ....." title="This is sample Title - Anomaly" createdOn="1867-07-11T00:00:00.000-0500">
+ <location xsi:type="r4ecore:R4ETextContent" href="#_pNA60ERPEeC0spkCnDexvg"/>
+ <id xmi:id="_pNATwURPEeC0spkCnDexvg" sequenceID="1" userID="Jerry20"/>
+ </r4ecore:R4EAnomaly>
+ <r4ecore:R4ETextContent xmi:id="_pNA60ERPEeC0spkCnDexvg" info="Write any information here">
+ <location href="#_pNBh4ERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4EAnomalyTextPosition xmi:id="_pNBh4ERPEeC0spkCnDexvg" startPosition="1230" length="40" startLine="50" endLine="100">
+ <file href="#_pNBh4URPEeC0spkCnDexvg"/>
+ </r4ecore:R4EAnomalyTextPosition>
+ <r4ecore:R4EFileVersion xmi:id="_pNBh4URPEeC0spkCnDexvg" platformURI="platform:/resource/projName/src/dir1/dir2" versionID="8" repositoryPath="/Dir1/Dir2" name="R4ETestFile"/>
+ <r4ecore:R4EComment xmi:id="_pNDXEERPEeC0spkCnDexvg" user="_pLWG40RPEeC0spkCnDexvg" description="This is test comment number 1" createdOn="2011-03-01T17:02:47.937-0500">
+ <id xmi:id="_pNDXEURPEeC0spkCnDexvg" sequenceID="2" userID="Jerry20"/>
+ <anomaly href="Tom10_comments.xrer#_pM7bQERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EComment>
+ <r4ecore:R4EComment xmi:id="_pNGaYERPEeC0spkCnDexvg" user="_pLWG40RPEeC0spkCnDexvg" description="This is test comment number 2" createdOn="2011-03-01T17:02:47.942-0500">
+ <type xsi:type="r4ecore:R4ECommentType" xmi:id="_pNElMERPEeC0spkCnDexvg"/>
+ <id xmi:id="_pNGaYURPEeC0spkCnDexvg" sequenceID="3" userID="Jerry20"/>
+ <anomaly href="Tom10_comments.xrer#_pM7bQERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EComment>
+</xmi:XMI>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/Jerry20_items.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/Jerry20_items.xrer
index 1a3b926..1a63c1b 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/Jerry20_items.xrer
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/Jerry20_items.xrer
@@ -1,115 +1,115 @@
-<?xml version="1.0" encoding="ASCII"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
- <r4ecore:R4EItem xmi:id="_ls0kAi52EeCvo9WHavBoFQ" description="Jerry20-Item to review 11" addedById="Jerry20" repositoryRef="repository ref..0">
- <id xmi:id="_ls0kAy52EeCvo9WHavBoFQ" sequenceID="4" userID="Jerry20"/>
- <addedBy href="Jerry20_comments.xrer#_lpGhoC52EeCvo9WHavBoFQ"/>
- <review href="ReviewTwo_review.xrer#_loVFky52EeCvo9WHavBoFQ"/>
- <fileContextList href="#_ltD0kC52EeCvo9WHavBoFQ"/>
- <ProjectURIs>platform:resource/projX0</ProjectURIs>
- </r4ecore:R4EItem>
- <r4ecore:R4EFileContext xmi:id="_ltD0kC52EeCvo9WHavBoFQ">
- <id xmi:id="_ltD0kS52EeCvo9WHavBoFQ" sequenceID="5" userID="Jerry20"/>
- <deltas href="#_ltLwYS52EeCvo9WHavBoFQ"/>
- <base href="#_ltGQ0C52EeCvo9WHavBoFQ"/>
- <target href="#_ltItEC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EFileContext>
- <r4ecore:R4EFileVersion xmi:id="_ltGQ0C52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019327" repositoryPath="root/folder_0" name="file_0"/>
- <r4ecore:R4EFileVersion xmi:id="_ltItEC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019328" repositoryPath="root/folder_0" name="file_0"/>
- <r4ecore:R4EDelta xmi:id="_ltLwYS52EeCvo9WHavBoFQ">
- <id xmi:id="_ltLwYi52EeCvo9WHavBoFQ" sequenceID="6" userID="Jerry20"/>
- <base xsi:type="r4ecore:R4ETextContent" href="#_ltPawC52EeCvo9WHavBoFQ"/>
- <target xsi:type="r4ecore:R4ETextContent" href="#_ltWvgC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EDelta>
- <r4ecore:R4ETextContent xmi:id="_ltPawC52EeCvo9WHavBoFQ" info="information for base content" content="base content">
- <location href="#_ltTFIC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_ltTFIC52EeCvo9WHavBoFQ" startPosition="200" length="50" startLine="10" endLine="20"/>
- <r4ecore:R4ETextContent xmi:id="_ltWvgC52EeCvo9WHavBoFQ" info="information for target content" content="target content">
- <location href="#_ltaZ4C52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_ltaZ4C52EeCvo9WHavBoFQ" startPosition="300" length="100" startLine="30" endLine="40"/>
- <r4ecore:R4EItem xmi:id="_lterUS52EeCvo9WHavBoFQ" description="Jerry20-Item to review 12" addedById="Jerry20" repositoryRef="repository ref..1">
- <id xmi:id="_lterUi52EeCvo9WHavBoFQ" sequenceID="7" userID="Jerry20"/>
- <addedBy href="Jerry20_comments.xrer#_lpGhoC52EeCvo9WHavBoFQ"/>
- <review href="ReviewTwo_review.xrer#_loVFky52EeCvo9WHavBoFQ"/>
- <fileContextList href="#_ltnOMC52EeCvo9WHavBoFQ"/>
- <ProjectURIs>platform:resource/projX1</ProjectURIs>
- </r4ecore:R4EItem>
- <r4ecore:R4EFileContext xmi:id="_ltnOMC52EeCvo9WHavBoFQ">
- <id xmi:id="_ltn1QC52EeCvo9WHavBoFQ" sequenceID="8" userID="Jerry20"/>
- <deltas href="#_ltzbcS52EeCvo9WHavBoFQ"/>
- <base href="#_ltrfoC52EeCvo9WHavBoFQ"/>
- <target href="#_ltvKAC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EFileContext>
- <r4ecore:R4EFileVersion xmi:id="_ltrfoC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019328" repositoryPath="root/folder_1" name="file_1"/>
- <r4ecore:R4EFileVersion xmi:id="_ltvKAC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019329" repositoryPath="root/folder_1" name="file_1"/>
- <r4ecore:R4EDelta xmi:id="_ltzbcS52EeCvo9WHavBoFQ">
- <id xmi:id="_ltzbci52EeCvo9WHavBoFQ" sequenceID="9" userID="Jerry20"/>
- <base xsi:type="r4ecore:R4ETextContent" href="#_lt3s4C52EeCvo9WHavBoFQ"/>
- <target xsi:type="r4ecore:R4ETextContent" href="#_luA20C52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EDelta>
- <r4ecore:R4ETextContent xmi:id="_lt3s4C52EeCvo9WHavBoFQ" info="information for base content" content="base content">
- <location href="#_lt7XQC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_lt7XQC52EeCvo9WHavBoFQ" startPosition="200" length="50" startLine="10" endLine="20"/>
- <r4ecore:R4ETextContent xmi:id="_luA20C52EeCvo9WHavBoFQ" info="information for target content" content="target content">
- <location href="#_luEhMC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_luEhMC52EeCvo9WHavBoFQ" startPosition="300" length="100" startLine="30" endLine="40"/>
- <r4ecore:R4EItem xmi:id="_luIyoC52EeCvo9WHavBoFQ" description="Jerry20-Item to review 21" addedById="Jerry20" repositoryRef="repository ref..2">
- <id xmi:id="_luIyoS52EeCvo9WHavBoFQ" sequenceID="10" userID="Jerry20"/>
- <addedBy href="Jerry20_comments.xrer#_lpGhoC52EeCvo9WHavBoFQ"/>
- <review href="ReviewTwo_review.xrer#_loVFky52EeCvo9WHavBoFQ"/>
- <fileContextList href="#_luRVgC52EeCvo9WHavBoFQ"/>
- <ProjectURIs>platform:resource/projX2</ProjectURIs>
- </r4ecore:R4EItem>
- <r4ecore:R4EFileContext xmi:id="_luRVgC52EeCvo9WHavBoFQ">
- <id xmi:id="_luRVgS52EeCvo9WHavBoFQ" sequenceID="11" userID="Jerry20"/>
- <deltas href="#_luqXES52EeCvo9WHavBoFQ"/>
- <base href="#_luVm8C52EeCvo9WHavBoFQ"/>
- <target href="#_lulekC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EFileContext>
- <r4ecore:R4EFileVersion xmi:id="_luVm8C52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019358" repositoryPath="root/folder_2" name="file_2"/>
- <r4ecore:R4EFileVersion xmi:id="_lulekC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019359" repositoryPath="root/folder_2" name="file_2"/>
- <r4ecore:R4EDelta xmi:id="_luqXES52EeCvo9WHavBoFQ">
- <id xmi:id="_luqXEi52EeCvo9WHavBoFQ" sequenceID="12" userID="Jerry20"/>
- <base xsi:type="r4ecore:R4ETextContent" href="#_luuogC52EeCvo9WHavBoFQ"/>
- <target xsi:type="r4ecore:R4ETextContent" href="#_lu3LYC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EDelta>
- <r4ecore:R4ETextContent xmi:id="_luuogC52EeCvo9WHavBoFQ" info="information for base content" content="base content">
- <location href="#_luzhAC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_luzhAC52EeCvo9WHavBoFQ" startPosition="200" length="50" startLine="10" endLine="20"/>
- <r4ecore:R4ETextContent xmi:id="_lu3LYC52EeCvo9WHavBoFQ" info="information for target content" content="target content">
- <location href="#_lu8D4C52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_lu8D4C52EeCvo9WHavBoFQ" startPosition="300" length="100" startLine="30" endLine="40"/>
- <r4ecore:R4EItem xmi:id="_lvAVUS52EeCvo9WHavBoFQ" description="Jerry20-Item to review 22" addedById="Jerry20" repositoryRef="repository ref..3">
- <id xmi:id="_lvAVUi52EeCvo9WHavBoFQ" sequenceID="13" userID="Jerry20"/>
- <addedBy href="Jerry20_comments.xrer#_lpGhoC52EeCvo9WHavBoFQ"/>
- <review href="ReviewTwo_review.xrer#_loVFky52EeCvo9WHavBoFQ"/>
- <fileContextList href="#_lvHDAC52EeCvo9WHavBoFQ"/>
- <ProjectURIs>platform:resource/projX3</ProjectURIs>
- </r4ecore:R4EItem>
- <r4ecore:R4EFileContext xmi:id="_lvHDAC52EeCvo9WHavBoFQ">
- <id xmi:id="_lvHDAS52EeCvo9WHavBoFQ" sequenceID="14" userID="Jerry20"/>
- <deltas href="#_lvSCIS52EeCvo9WHavBoFQ"/>
- <base href="#_lvKtYC52EeCvo9WHavBoFQ"/>
- <target href="#_lvOXwC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EFileContext>
- <r4ecore:R4EFileVersion xmi:id="_lvKtYC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019359" repositoryPath="root/folder_3" name="file_3"/>
- <r4ecore:R4EFileVersion xmi:id="_lvOXwC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019360" repositoryPath="root/folder_3" name="file_3"/>
- <r4ecore:R4EDelta xmi:id="_lvSCIS52EeCvo9WHavBoFQ">
- <id xmi:id="_lvSCIi52EeCvo9WHavBoFQ" sequenceID="15" userID="Jerry20"/>
- <base xsi:type="r4ecore:R4ETextContent" href="#_lvW6oC52EeCvo9WHavBoFQ"/>
- <target xsi:type="r4ecore:R4ETextContent" href="#_lvpOgC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EDelta>
- <r4ecore:R4ETextContent xmi:id="_lvW6oC52EeCvo9WHavBoFQ" info="information for base content" content="base content">
- <location href="#_lvkWAC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_lvkWAC52EeCvo9WHavBoFQ" startPosition="200" length="50" startLine="10" endLine="20"/>
- <r4ecore:R4ETextContent xmi:id="_lvpOgC52EeCvo9WHavBoFQ" info="information for target content" content="target content">
- <location href="#_lvs44C52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_lvs44C52EeCvo9WHavBoFQ" startPosition="300" length="100" startLine="30" endLine="40"/>
-</xmi:XMI>
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
+ <r4ecore:R4EItem xmi:id="_pOp5kERPEeC0spkCnDexvg" description="Jerry20-Item to review 11" addedById="Jerry20" repositoryRef="repository ref..0" authorRep="changeAuthor_0" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_pOp5kURPEeC0spkCnDexvg" sequenceID="4" userID="Jerry20"/>
+ <addedBy href="Jerry20_comments.xrer#_pLWG40RPEeC0spkCnDexvg"/>
+ <review href="ReviewTwo_review.xrer#_pI3aoERPEeC0spkCnDexvg"/>
+ <fileContextList href="#_pQNYwERPEeC0spkCnDexvg"/>
+ <ProjectURIs>platform:resource/projX0</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_pQNYwERPEeC0spkCnDexvg" type="R4E_ADDED">
+ <id xmi:id="_pQNYwURPEeC0spkCnDexvg" sequenceID="5" userID="Jerry20"/>
+ <deltas href="#_pQOm4URPEeC0spkCnDexvg"/>
+ <base href="#_pQN_0ERPEeC0spkCnDexvg"/>
+ <target href="#_pQN_0URPEeC0spkCnDexvg"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_pQN_0ERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019327" repositoryPath="root/folder_0" name="file_0" localVersionID="locIdB_1234_0"/>
+ <r4ecore:R4EFileVersion xmi:id="_pQN_0URPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019328" repositoryPath="root/folder_0" name="file_0" localVersionID="locIdT_1234_0"/>
+ <r4ecore:R4EDelta xmi:id="_pQOm4URPEeC0spkCnDexvg">
+ <id xmi:id="_pQOm4kRPEeC0spkCnDexvg" sequenceID="6" userID="Jerry20"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_pQPN8ERPEeC0spkCnDexvg"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_pQP1AERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_pQPN8ERPEeC0spkCnDexvg" info="information for base content" content="base content">
+ <location href="#_pQPN8URPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pQPN8URPEeC0spkCnDexvg" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_pQP1AERPEeC0spkCnDexvg" info="information for target content" content="target content">
+ <location href="#_pQP1AURPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pQP1AURPEeC0spkCnDexvg" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_pQQcEURPEeC0spkCnDexvg" description="Jerry20-Item to review 12" addedById="Jerry20" repositoryRef="repository ref..1" authorRep="changeAuthor_1" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_pQQcEkRPEeC0spkCnDexvg" sequenceID="7" userID="Jerry20"/>
+ <addedBy href="Jerry20_comments.xrer#_pLWG40RPEeC0spkCnDexvg"/>
+ <review href="ReviewTwo_review.xrer#_pI3aoERPEeC0spkCnDexvg"/>
+ <fileContextList href="#_pQS4UERPEeC0spkCnDexvg"/>
+ <ProjectURIs>platform:resource/projX1</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_pQS4UERPEeC0spkCnDexvg" type="R4E_ADDED">
+ <id xmi:id="_pQS4UURPEeC0spkCnDexvg" sequenceID="8" userID="Jerry20"/>
+ <deltas href="#_pQUtgERPEeC0spkCnDexvg"/>
+ <base href="#_pQTfYERPEeC0spkCnDexvg"/>
+ <target href="#_pQUGcERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_pQTfYERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019328" repositoryPath="root/folder_1" name="file_1" localVersionID="locIdB_1234_1"/>
+ <r4ecore:R4EFileVersion xmi:id="_pQUGcERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019329" repositoryPath="root/folder_1" name="file_1" localVersionID="locIdT_1234_1"/>
+ <r4ecore:R4EDelta xmi:id="_pQUtgERPEeC0spkCnDexvg">
+ <id xmi:id="_pQUtgURPEeC0spkCnDexvg" sequenceID="9" userID="Jerry20"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_pQUtgkRPEeC0spkCnDexvg"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_pQV7oERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_pQUtgkRPEeC0spkCnDexvg" info="information for base content" content="base content">
+ <location href="#_pQVUkERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pQVUkERPEeC0spkCnDexvg" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_pQV7oERPEeC0spkCnDexvg" info="information for target content" content="target content">
+ <location href="#_pQV7oURPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pQV7oURPEeC0spkCnDexvg" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_pQXw0URPEeC0spkCnDexvg" description="Jerry20-Item to review 21" addedById="Jerry20" repositoryRef="repository ref..2" authorRep="changeAuthor_2" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_pQXw0kRPEeC0spkCnDexvg" sequenceID="10" userID="Jerry20"/>
+ <addedBy href="Jerry20_comments.xrer#_pLWG40RPEeC0spkCnDexvg"/>
+ <review href="ReviewTwo_review.xrer#_pI3aoERPEeC0spkCnDexvg"/>
+ <fileContextList href="#_pQY-8ERPEeC0spkCnDexvg"/>
+ <ProjectURIs>platform:resource/projX2</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_pQY-8ERPEeC0spkCnDexvg" type="R4E_ADDED">
+ <id xmi:id="_pQY-8URPEeC0spkCnDexvg" sequenceID="11" userID="Jerry20"/>
+ <deltas href="#_pQaNEkRPEeC0spkCnDexvg"/>
+ <base href="#_pQZmAERPEeC0spkCnDexvg"/>
+ <target href="#_pQaNEERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_pQZmAERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019358" repositoryPath="root/folder_2" name="file_2" localVersionID="locIdB_1234_2"/>
+ <r4ecore:R4EFileVersion xmi:id="_pQaNEERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019359" repositoryPath="root/folder_2" name="file_2" localVersionID="locIdT_1234_2"/>
+ <r4ecore:R4EDelta xmi:id="_pQaNEkRPEeC0spkCnDexvg">
+ <id xmi:id="_pQaNE0RPEeC0spkCnDexvg" sequenceID="12" userID="Jerry20"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_pQfFkERPEeC0spkCnDexvg"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_pQgTsERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_pQfFkERPEeC0spkCnDexvg" info="information for base content" content="base content">
+ <location href="#_pQfsoERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pQfsoERPEeC0spkCnDexvg" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_pQgTsERPEeC0spkCnDexvg" info="information for target content" content="target content">
+ <location href="#_pQg6wERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pQg6wERPEeC0spkCnDexvg" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_pQhh0URPEeC0spkCnDexvg" description="Jerry20-Item to review 22" addedById="Jerry20" repositoryRef="repository ref..3" authorRep="changeAuthor_3" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_pQhh0kRPEeC0spkCnDexvg" sequenceID="13" userID="Jerry20"/>
+ <addedBy href="Jerry20_comments.xrer#_pLWG40RPEeC0spkCnDexvg"/>
+ <review href="ReviewTwo_review.xrer#_pI3aoERPEeC0spkCnDexvg"/>
+ <fileContextList href="#_pQiv8ERPEeC0spkCnDexvg"/>
+ <ProjectURIs>platform:resource/projX3</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_pQiv8ERPEeC0spkCnDexvg" type="R4E_ADDED">
+ <id xmi:id="_pQiv8URPEeC0spkCnDexvg" sequenceID="14" userID="Jerry20"/>
+ <deltas href="#_pQklIERPEeC0spkCnDexvg"/>
+ <base href="#_pQjXAERPEeC0spkCnDexvg"/>
+ <target href="#_pQj-EERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_pQjXAERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="1004019359" repositoryPath="root/folder_3" name="file_3" localVersionID="locIdB_1234_3"/>
+ <r4ecore:R4EFileVersion xmi:id="_pQj-EERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="1004019360" repositoryPath="root/folder_3" name="file_3" localVersionID="locIdT_1234_3"/>
+ <r4ecore:R4EDelta xmi:id="_pQklIERPEeC0spkCnDexvg">
+ <id xmi:id="_pQklIURPEeC0spkCnDexvg" sequenceID="15" userID="Jerry20"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_pQklIkRPEeC0spkCnDexvg"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_pQnocERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_pQklIkRPEeC0spkCnDexvg" info="information for base content" content="base content">
+ <location href="#_pQnBYERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pQnBYERPEeC0spkCnDexvg" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_pQnocERPEeC0spkCnDexvg" info="information for target content" content="target content">
+ <location href="#_pQoPgERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pQoPgERPEeC0spkCnDexvg" startPosition="300" length="100" startLine="30" endLine="40"/>
+</xmi:XMI>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/ReviewTwo_review.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/ReviewTwo_review.xrer
index 2093ef7..174f42f 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/ReviewTwo_review.xrer
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/ReviewTwo_review.xrer
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="ASCII"?>
-<r4ecore:R4EReview xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_loVFky52EeCvo9WHavBoFQ" name="ReviewTwo" creationDate="1867-07-01T00:00:00.000-0500" project="P1" entryCriteria="Sample Entry Cryteria" extraNotes="Sample extra notes" objectives="Sample Objectives" referenceMaterial="sample reference material" startDate="1867-07-01T00:00:00.000-0500" endDate="1867-07-03T00:00:00.000-0500" type="R4E_REVIEW_TYPE_INFORMAL">
- <reviewTask xsi:type="r4ecore:R4ETaskReference" xmi:id="_lvwjQi52EeCvo9WHavBoFQ" taskId="324328" repositoryURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=324328"/>
- <state xsi:type="r4ecore:R4EReviewState" xmi:id="_lvwjQS52EeCvo9WHavBoFQ" state="R4E_REVIEW_PHASE_PREPARATION"/>
- <components>Component1</components>
- <decision xmi:id="_lvwjQC52EeCvo9WHavBoFQ" spentTime="120" value="R4E_REVIEW_DECISION_ACCEPTED"/>
- <createdBy href="Tom10_comments.xrer#_loVFli52EeCvo9WHavBoFQ"/>
-</r4ecore:R4EReview>
+<?xml version="1.0" encoding="ASCII"?>
+<r4ecore:R4EReview xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_pI3aoERPEeC0spkCnDexvg" name="ReviewTwo" project="P1" entryCriteria="Sample Entry Cryteria" extraNotes="Sample extra notes" objectives="Sample Objectives" referenceMaterial="sample reference material" startDate="1867-07-01T00:00:00.000-0500" endDate="1867-07-03T00:00:00.000-0500" type="R4E_REVIEW_TYPE_INFORMAL">
+ <reviewTask xsi:type="r4ecore:R4ETaskReference" xmi:id="_pQo2kkRPEeC0spkCnDexvg" taskId="324328" repositoryURL="https://bugs.eclipse.org/bugs/show_bug.cgi?id=324328"/>
+ <state xsi:type="r4ecore:R4EReviewState" xmi:id="_pQo2kURPEeC0spkCnDexvg" state="R4E_REVIEW_PHASE_PREPARATION"/>
+ <components>Component1</components>
+ <decision xmi:id="_pQo2kERPEeC0spkCnDexvg" spentTime="120" value="R4E_REVIEW_DECISION_ACCEPTED"/>
+ <createdBy href="Tom10_comments.xrer#_pI3ao0RPEeC0spkCnDexvg"/>
+</r4ecore:R4EReview>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/Tom10_comments.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/Tom10_comments.xrer
index 9646d90..3e166c7 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/Tom10_comments.xrer
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/Tom10_comments.xrer
@@ -1,35 +1,37 @@
-<?xml version="1.0" encoding="ASCII"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
- <r4ecore:R4EParticipant xmi:id="_loVFli52EeCvo9WHavBoFQ" id="Tom10" sequenceIDCounter="15" reviewCreatedByMe="true" spentTime="60" focusArea="Performance" isPartOfDecision="true">
- <addedComments href="#_lpjNkC52EeCvo9WHavBoFQ"/>
- <addedComments href="#_lp9dQC52EeCvo9WHavBoFQ"/>
- <addedComments href="#_lqAgkC52EeCvo9WHavBoFQ"/>
- <addedItems href="Tom10_items.xrer#_lqK4oC52EeCvo9WHavBoFQ"/>
- <addedItems href="Tom10_items.xrer#_lrAmIS52EeCvo9WHavBoFQ"/>
- <addedItems href="Tom10_items.xrer#_lrhjgS52EeCvo9WHavBoFQ"/>
- <addedItems href="Tom10_items.xrer#_lsDvAS52EeCvo9WHavBoFQ"/>
- <reviewInstance href="ReviewTwo_review.xrer#_loVFky52EeCvo9WHavBoFQ"/>
- <roles>R4E_ROLE_ORGANIZER</roles>
- <roles>R4E_ROLE_LEAD</roles>
- </r4ecore:R4EParticipant>
- <r4ecore:R4EAnomaly xmi:id="_lpjNkC52EeCvo9WHavBoFQ" user="_loVFli52EeCvo9WHavBoFQ" description="Tom10- Anomaly text here ....." title="This is sample Title - Anomaly" createdOn="1867-07-11T00:00:00.000-0500">
- <location xsi:type="r4ecore:R4ETextContent" href="#_lpoGEC52EeCvo9WHavBoFQ"/>
- <id xmi:id="_lpj0oC52EeCvo9WHavBoFQ" sequenceID="1" userID="Tom10"/>
- </r4ecore:R4EAnomaly>
- <r4ecore:R4ETextContent xmi:id="_lpoGEC52EeCvo9WHavBoFQ" info="Write any information here">
- <location href="#_lprJYC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4EAnomalyTextPosition xmi:id="_lprJYC52EeCvo9WHavBoFQ" startPosition="1230" length="40" startLine="50" endLine="100">
- <file href="#_lpuMsC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EAnomalyTextPosition>
- <r4ecore:R4EFileVersion xmi:id="_lpuMsC52EeCvo9WHavBoFQ" platformURI="platform:/resource/projName/src/dir1/dir2" versionID="8" repositoryPath="/Dir1/Dir2" name="R4ETestFile"/>
- <r4ecore:R4EComment xmi:id="_lp9dQC52EeCvo9WHavBoFQ" user="_loVFli52EeCvo9WHavBoFQ" description="This is test comment number 1" createdOn="2011-02-01T21:46:08.916-0500">
- <id xmi:id="_lp9dQS52EeCvo9WHavBoFQ" sequenceID="2" userID="Tom10"/>
- <anomaly href="Jerry20_comments.xrer#_lpxQAC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EComment>
- <r4ecore:R4EComment xmi:id="_lqAgkC52EeCvo9WHavBoFQ" user="_loVFli52EeCvo9WHavBoFQ" description="This is test comment number 2" createdOn="2011-02-01T21:46:08.921-0500">
- <type xsi:type="r4ecore:R4ECommentType" xmi:id="_lp_5gC52EeCvo9WHavBoFQ"/>
- <id xmi:id="_lqAgkS52EeCvo9WHavBoFQ" sequenceID="3" userID="Tom10"/>
- <anomaly href="Jerry20_comments.xrer#_lpxQAC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EComment>
-</xmi:XMI>
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
+ <r4ecore:R4EParticipant xmi:id="_pI3ao0RPEeC0spkCnDexvg" id="Tom10" sequenceIDCounter="15" reviewCreatedByMe="true" focusArea="Performance" isPartOfDecision="true">
+ <addedComments href="#_pM7bQERPEeC0spkCnDexvg"/>
+ <addedComments href="#_pNCI8ERPEeC0spkCnDexvg"/>
+ <addedComments href="#_pNCwAURPEeC0spkCnDexvg"/>
+ <addedItems href="Tom10_items.xrer#_pNHogURPEeC0spkCnDexvg"/>
+ <addedItems href="Tom10_items.xrer#_pOObwURPEeC0spkCnDexvg"/>
+ <addedItems href="Tom10_items.xrer#_pOUiYURPEeC0spkCnDexvg"/>
+ <addedItems href="Tom10_items.xrer#_pObQEURPEeC0spkCnDexvg"/>
+ <reviewInstance href="ReviewTwo_review.xrer#_pI3aoERPEeC0spkCnDexvg"/>
+ <roles>R4E_ROLE_ORGANIZER</roles>
+ <roles>R4E_ROLE_LEAD</roles>
+ <timeLog xmi:id="_pLWG4ERPEeC0spkCnDexvg" key="1867-07-01T00:00:00.000-0500" value="30"/>
+ <timeLog xmi:id="_pLWG4URPEeC0spkCnDexvg" key="1867-07-03T00:00:00.000-0500" value="30"/>
+ </r4ecore:R4EParticipant>
+ <r4ecore:R4EAnomaly xmi:id="_pM7bQERPEeC0spkCnDexvg" user="_pI3ao0RPEeC0spkCnDexvg" description="Tom10- Anomaly text here ....." title="This is sample Title - Anomaly" createdOn="1867-07-11T00:00:00.000-0500">
+ <location xsi:type="r4ecore:R4ETextContent" href="#_pM93gERPEeC0spkCnDexvg"/>
+ <id xmi:id="_pM7bQURPEeC0spkCnDexvg" sequenceID="1" userID="Tom10"/>
+ </r4ecore:R4EAnomaly>
+ <r4ecore:R4ETextContent xmi:id="_pM93gERPEeC0spkCnDexvg" info="Write any information here">
+ <location href="#_pM-ekERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4EAnomalyTextPosition xmi:id="_pM-ekERPEeC0spkCnDexvg" startPosition="1230" length="40" startLine="50" endLine="100">
+ <file href="#_pM_ssERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EAnomalyTextPosition>
+ <r4ecore:R4EFileVersion xmi:id="_pM_ssERPEeC0spkCnDexvg" platformURI="platform:/resource/projName/src/dir1/dir2" versionID="8" repositoryPath="/Dir1/Dir2" name="R4ETestFile"/>
+ <r4ecore:R4EComment xmi:id="_pNCI8ERPEeC0spkCnDexvg" user="_pI3ao0RPEeC0spkCnDexvg" description="This is test comment number 1" createdOn="2011-03-01T17:02:47.935-0500">
+ <id xmi:id="_pNCI8URPEeC0spkCnDexvg" sequenceID="2" userID="Tom10"/>
+ <anomaly href="Jerry20_comments.xrer#_pNATwERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EComment>
+ <r4ecore:R4EComment xmi:id="_pNCwAURPEeC0spkCnDexvg" user="_pI3ao0RPEeC0spkCnDexvg" description="This is test comment number 2" createdOn="2011-03-01T17:02:47.936-0500">
+ <type xsi:type="r4ecore:R4ECommentType" xmi:id="_pNCwAERPEeC0spkCnDexvg"/>
+ <id xmi:id="_pNCwAkRPEeC0spkCnDexvg" sequenceID="3" userID="Tom10"/>
+ <anomaly href="Jerry20_comments.xrer#_pNATwERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EComment>
+</xmi:XMI>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/Tom10_items.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/Tom10_items.xrer
index b245318..b655053 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/Tom10_items.xrer
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/ReviewTwo/Tom10_items.xrer
@@ -1,115 +1,115 @@
-<?xml version="1.0" encoding="ASCII"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
- <r4ecore:R4EItem xmi:id="_lqK4oC52EeCvo9WHavBoFQ" description="Tom10-Item to review 11" addedById="Tom10" repositoryRef="repository ref..0">
- <id xmi:id="_lqK4oS52EeCvo9WHavBoFQ" sequenceID="4" userID="Tom10"/>
- <addedBy href="Tom10_comments.xrer#_loVFli52EeCvo9WHavBoFQ"/>
- <review href="ReviewTwo_review.xrer#_loVFky52EeCvo9WHavBoFQ"/>
- <fileContextList href="#_lqqA0C52EeCvo9WHavBoFQ"/>
- <ProjectURIs>platform:resource/projX0</ProjectURIs>
- </r4ecore:R4EItem>
- <r4ecore:R4EFileContext xmi:id="_lqqA0C52EeCvo9WHavBoFQ">
- <id xmi:id="_lqqA0S52EeCvo9WHavBoFQ" sequenceID="5" userID="Tom10"/>
- <deltas href="#_lqyjsS52EeCvo9WHavBoFQ"/>
- <base href="#_lqtEIC52EeCvo9WHavBoFQ"/>
- <target href="#_lqvgYC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EFileContext>
- <r4ecore:R4EFileVersion xmi:id="_lqtEIC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978412" repositoryPath="root/folder_0" name="file_0"/>
- <r4ecore:R4EFileVersion xmi:id="_lqvgYC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978411" repositoryPath="root/folder_0" name="file_0"/>
- <r4ecore:R4EDelta xmi:id="_lqyjsS52EeCvo9WHavBoFQ">
- <id xmi:id="_lqyjsi52EeCvo9WHavBoFQ" sequenceID="6" userID="Tom10"/>
- <base xsi:type="r4ecore:R4ETextContent" href="#_lq1nAC52EeCvo9WHavBoFQ"/>
- <target xsi:type="r4ecore:R4ETextContent" href="#_lq7GkC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EDelta>
- <r4ecore:R4ETextContent xmi:id="_lq1nAC52EeCvo9WHavBoFQ" info="information for base content" content="base content">
- <location href="#_lq4DQC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_lq4DQC52EeCvo9WHavBoFQ" startPosition="200" length="50" startLine="10" endLine="20"/>
- <r4ecore:R4ETextContent xmi:id="_lq7GkC52EeCvo9WHavBoFQ" info="information for target content" content="target content">
- <location href="#_lq9i0C52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_lq9i0C52EeCvo9WHavBoFQ" startPosition="300" length="100" startLine="30" endLine="40"/>
- <r4ecore:R4EItem xmi:id="_lrAmIS52EeCvo9WHavBoFQ" description="Tom10-Item to review 12" addedById="Tom10" repositoryRef="repository ref..1">
- <id xmi:id="_lrAmIi52EeCvo9WHavBoFQ" sequenceID="7" userID="Tom10"/>
- <addedBy href="Tom10_comments.xrer#_loVFli52EeCvo9WHavBoFQ"/>
- <review href="ReviewTwo_review.xrer#_loVFky52EeCvo9WHavBoFQ"/>
- <fileContextList href="#_lrGswC52EeCvo9WHavBoFQ"/>
- <ProjectURIs>platform:resource/projX1</ProjectURIs>
- </r4ecore:R4EItem>
- <r4ecore:R4EFileContext xmi:id="_lrGswC52EeCvo9WHavBoFQ">
- <id xmi:id="_lrGswS52EeCvo9WHavBoFQ" sequenceID="8" userID="Tom10"/>
- <deltas href="#_lrRE0S52EeCvo9WHavBoFQ"/>
- <base href="#_lrJwEC52EeCvo9WHavBoFQ"/>
- <target href="#_lrNacC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EFileContext>
- <r4ecore:R4EFileVersion xmi:id="_lrJwEC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978411" repositoryPath="root/folder_1" name="file_1"/>
- <r4ecore:R4EFileVersion xmi:id="_lrNacC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978410" repositoryPath="root/folder_1" name="file_1"/>
- <r4ecore:R4EDelta xmi:id="_lrRE0S52EeCvo9WHavBoFQ">
- <id xmi:id="_lrRE0i52EeCvo9WHavBoFQ" sequenceID="9" userID="Tom10"/>
- <base xsi:type="r4ecore:R4ETextContent" href="#_lrUIIC52EeCvo9WHavBoFQ"/>
- <target xsi:type="r4ecore:R4ETextContent" href="#_lra10C52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EDelta>
- <r4ecore:R4ETextContent xmi:id="_lrUIIC52EeCvo9WHavBoFQ" info="information for base content" content="base content">
- <location href="#_lrXLcC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_lrXLcC52EeCvo9WHavBoFQ" startPosition="200" length="50" startLine="10" endLine="20"/>
- <r4ecore:R4ETextContent xmi:id="_lra10C52EeCvo9WHavBoFQ" info="information for target content" content="target content">
- <location href="#_lrd5IC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_lrd5IC52EeCvo9WHavBoFQ" startPosition="300" length="100" startLine="30" endLine="40"/>
- <r4ecore:R4EItem xmi:id="_lrhjgS52EeCvo9WHavBoFQ" description="Tom10-Item to review 21" addedById="Tom10" repositoryRef="repository ref..2">
- <id xmi:id="_lrhjgi52EeCvo9WHavBoFQ" sequenceID="10" userID="Tom10"/>
- <addedBy href="Tom10_comments.xrer#_loVFli52EeCvo9WHavBoFQ"/>
- <review href="ReviewTwo_review.xrer#_loVFky52EeCvo9WHavBoFQ"/>
- <fileContextList href="#_lrnqIC52EeCvo9WHavBoFQ"/>
- <ProjectURIs>platform:resource/projX2</ProjectURIs>
- </r4ecore:R4EItem>
- <r4ecore:R4EFileContext xmi:id="_lrnqIC52EeCvo9WHavBoFQ">
- <id xmi:id="_lrnqIS52EeCvo9WHavBoFQ" sequenceID="11" userID="Tom10"/>
- <deltas href="#_lrypQS52EeCvo9WHavBoFQ"/>
- <base href="#_lrrUgC52EeCvo9WHavBoFQ"/>
- <target href="#_lru-4C52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EFileContext>
- <r4ecore:R4EFileVersion xmi:id="_lrrUgC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978381" repositoryPath="root/folder_2" name="file_2"/>
- <r4ecore:R4EFileVersion xmi:id="_lru-4C52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978380" repositoryPath="root/folder_2" name="file_2"/>
- <r4ecore:R4EDelta xmi:id="_lrypQS52EeCvo9WHavBoFQ">
- <id xmi:id="_lrypQi52EeCvo9WHavBoFQ" sequenceID="12" userID="Tom10"/>
- <base xsi:type="r4ecore:R4ETextContent" href="#_lr1skC52EeCvo9WHavBoFQ"/>
- <target xsi:type="r4ecore:R4ETextContent" href="#_lr8aQC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EDelta>
- <r4ecore:R4ETextContent xmi:id="_lr1skC52EeCvo9WHavBoFQ" info="information for base content" content="base content">
- <location href="#_lr5W8C52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_lr5W8C52EeCvo9WHavBoFQ" startPosition="200" length="50" startLine="10" endLine="20"/>
- <r4ecore:R4ETextContent xmi:id="_lr8aQC52EeCvo9WHavBoFQ" info="information for target content" content="target content">
- <location href="#_lr_dkC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_lr_dkC52EeCvo9WHavBoFQ" startPosition="300" length="100" startLine="30" endLine="40"/>
- <r4ecore:R4EItem xmi:id="_lsDvAS52EeCvo9WHavBoFQ" description="Tom10-Item to review 22" addedById="Tom10" repositoryRef="repository ref..3">
- <id xmi:id="_lsDvAi52EeCvo9WHavBoFQ" sequenceID="13" userID="Tom10"/>
- <addedBy href="Tom10_comments.xrer#_loVFli52EeCvo9WHavBoFQ"/>
- <review href="ReviewTwo_review.xrer#_loVFky52EeCvo9WHavBoFQ"/>
- <fileContextList href="#_lsLq0C52EeCvo9WHavBoFQ"/>
- <ProjectURIs>platform:resource/projX3</ProjectURIs>
- </r4ecore:R4EItem>
- <r4ecore:R4EFileContext xmi:id="_lsLq0C52EeCvo9WHavBoFQ">
- <id xmi:id="_lsLq0S52EeCvo9WHavBoFQ" sequenceID="14" userID="Tom10"/>
- <deltas href="#_lsX4ES52EeCvo9WHavBoFQ"/>
- <base href="#_lsOuIC52EeCvo9WHavBoFQ"/>
- <target href="#_lsUNsC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EFileContext>
- <r4ecore:R4EFileVersion xmi:id="_lsOuIC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978380" repositoryPath="root/folder_3" name="file_3"/>
- <r4ecore:R4EFileVersion xmi:id="_lsUNsC52EeCvo9WHavBoFQ" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978379" repositoryPath="root/folder_3" name="file_3"/>
- <r4ecore:R4EDelta xmi:id="_lsX4ES52EeCvo9WHavBoFQ">
- <id xmi:id="_lsX4Ei52EeCvo9WHavBoFQ" sequenceID="15" userID="Tom10"/>
- <base xsi:type="r4ecore:R4ETextContent" href="#_lsqzAC52EeCvo9WHavBoFQ"/>
- <target xsi:type="r4ecore:R4ETextContent" href="#_lsqzAi52EeCvo9WHavBoFQ"/>
- </r4ecore:R4EDelta>
- <r4ecore:R4ETextContent xmi:id="_lsqzAC52EeCvo9WHavBoFQ" info="information for base content" content="base content">
- <location href="#_lsqzAS52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_lsqzAS52EeCvo9WHavBoFQ" startPosition="200" length="50" startLine="10" endLine="20"/>
- <r4ecore:R4ETextContent xmi:id="_lsqzAi52EeCvo9WHavBoFQ" info="information for target content" content="target content">
- <location href="#_ls0kAC52EeCvo9WHavBoFQ"/>
- </r4ecore:R4ETextContent>
- <r4ecore:R4ETextPosition xmi:id="_ls0kAC52EeCvo9WHavBoFQ" startPosition="300" length="100" startLine="30" endLine="40"/>
-</xmi:XMI>
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/">
+ <r4ecore:R4EItem xmi:id="_pNHogURPEeC0spkCnDexvg" description="Tom10-Item to review 11" addedById="Tom10" repositoryRef="repository ref..0" authorRep="changeAuthor_0" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_pNIPkERPEeC0spkCnDexvg" sequenceID="4" userID="Tom10"/>
+ <addedBy href="Tom10_comments.xrer#_pI3ao0RPEeC0spkCnDexvg"/>
+ <review href="ReviewTwo_review.xrer#_pI3aoERPEeC0spkCnDexvg"/>
+ <fileContextList href="#_pOLYcERPEeC0spkCnDexvg"/>
+ <ProjectURIs>platform:resource/projX0</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_pOLYcERPEeC0spkCnDexvg" type="R4E_ADDED">
+ <id xmi:id="_pOLYcURPEeC0spkCnDexvg" sequenceID="5" userID="Tom10"/>
+ <deltas href="#_pOMmkURPEeC0spkCnDexvg"/>
+ <base href="#_pOL_gERPEeC0spkCnDexvg"/>
+ <target href="#_pOL_gURPEeC0spkCnDexvg"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_pOL_gERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978412" repositoryPath="root/folder_0" name="file_0" localVersionID="locIdB_1234_0"/>
+ <r4ecore:R4EFileVersion xmi:id="_pOL_gURPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978411" repositoryPath="root/folder_0" name="file_0" localVersionID="locIdT_1234_0"/>
+ <r4ecore:R4EDelta xmi:id="_pOMmkURPEeC0spkCnDexvg">
+ <id xmi:id="_pOMmkkRPEeC0spkCnDexvg" sequenceID="6" userID="Tom10"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_pOMmk0RPEeC0spkCnDexvg"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_pON0sERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_pOMmk0RPEeC0spkCnDexvg" info="information for base content" content="base content">
+ <location href="#_pONNoERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pONNoERPEeC0spkCnDexvg" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_pON0sERPEeC0spkCnDexvg" info="information for target content" content="target content">
+ <location href="#_pON0sURPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pON0sURPEeC0spkCnDexvg" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_pOObwURPEeC0spkCnDexvg" description="Tom10-Item to review 12" addedById="Tom10" repositoryRef="repository ref..1" authorRep="changeAuthor_1" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_pOObwkRPEeC0spkCnDexvg" sequenceID="7" userID="Tom10"/>
+ <addedBy href="Tom10_comments.xrer#_pI3ao0RPEeC0spkCnDexvg"/>
+ <review href="ReviewTwo_review.xrer#_pI3aoERPEeC0spkCnDexvg"/>
+ <fileContextList href="#_pOPC0ERPEeC0spkCnDexvg"/>
+ <ProjectURIs>platform:resource/projX1</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_pOPC0ERPEeC0spkCnDexvg" type="R4E_ADDED">
+ <id xmi:id="_pOPC0URPEeC0spkCnDexvg" sequenceID="8" userID="Tom10"/>
+ <deltas href="#_pOQQ8kRPEeC0spkCnDexvg"/>
+ <base href="#_pOPp4ERPEeC0spkCnDexvg"/>
+ <target href="#_pOQQ8ERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_pOPp4ERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978411" repositoryPath="root/folder_1" name="file_1" localVersionID="locIdB_1234_1"/>
+ <r4ecore:R4EFileVersion xmi:id="_pOQQ8ERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978410" repositoryPath="root/folder_1" name="file_1" localVersionID="locIdT_1234_1"/>
+ <r4ecore:R4EDelta xmi:id="_pOQQ8kRPEeC0spkCnDexvg">
+ <id xmi:id="_pOQQ80RPEeC0spkCnDexvg" sequenceID="9" userID="Tom10"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_pOQ4AERPEeC0spkCnDexvg"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_pOTUQERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_pOQ4AERPEeC0spkCnDexvg" info="information for base content" content="base content">
+ <location href="#_pOSGIERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pOSGIERPEeC0spkCnDexvg" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_pOTUQERPEeC0spkCnDexvg" info="information for target content" content="target content">
+ <location href="#_pOT7UERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pOT7UERPEeC0spkCnDexvg" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_pOUiYURPEeC0spkCnDexvg" description="Tom10-Item to review 21" addedById="Tom10" repositoryRef="repository ref..2" authorRep="changeAuthor_2" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_pOUiYkRPEeC0spkCnDexvg" sequenceID="10" userID="Tom10"/>
+ <addedBy href="Tom10_comments.xrer#_pI3ao0RPEeC0spkCnDexvg"/>
+ <review href="ReviewTwo_review.xrer#_pI3aoERPEeC0spkCnDexvg"/>
+ <fileContextList href="#_pOVwgERPEeC0spkCnDexvg"/>
+ <ProjectURIs>platform:resource/projX2</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_pOVwgERPEeC0spkCnDexvg" type="R4E_ADDED">
+ <id xmi:id="_pOVwgURPEeC0spkCnDexvg" sequenceID="11" userID="Tom10"/>
+ <deltas href="#_pOXlsERPEeC0spkCnDexvg"/>
+ <base href="#_pOWXkERPEeC0spkCnDexvg"/>
+ <target href="#_pOW-oERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_pOWXkERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978381" repositoryPath="root/folder_2" name="file_2" localVersionID="locIdB_1234_2"/>
+ <r4ecore:R4EFileVersion xmi:id="_pOW-oERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978380" repositoryPath="root/folder_2" name="file_2" localVersionID="locIdT_1234_2"/>
+ <r4ecore:R4EDelta xmi:id="_pOXlsERPEeC0spkCnDexvg">
+ <id xmi:id="_pOXlsURPEeC0spkCnDexvg" sequenceID="12" userID="Tom10"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_pOYz0ERPEeC0spkCnDexvg"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_pOaB8ERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_pOYz0ERPEeC0spkCnDexvg" info="information for base content" content="base content">
+ <location href="#_pOZa4ERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pOZa4ERPEeC0spkCnDexvg" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_pOaB8ERPEeC0spkCnDexvg" info="information for target content" content="target content">
+ <location href="#_pOapAERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pOapAERPEeC0spkCnDexvg" startPosition="300" length="100" startLine="30" endLine="40"/>
+ <r4ecore:R4EItem xmi:id="_pObQEURPEeC0spkCnDexvg" description="Tom10-Item to review 22" addedById="Tom10" repositoryRef="repository ref..3" authorRep="changeAuthor_3" submitted="1867-07-01T00:00:00.000-0500">
+ <id xmi:id="_pObQEkRPEeC0spkCnDexvg" sequenceID="13" userID="Tom10"/>
+ <addedBy href="Tom10_comments.xrer#_pI3ao0RPEeC0spkCnDexvg"/>
+ <review href="ReviewTwo_review.xrer#_pI3aoERPEeC0spkCnDexvg"/>
+ <fileContextList href="#_pOceMERPEeC0spkCnDexvg"/>
+ <ProjectURIs>platform:resource/projX3</ProjectURIs>
+ </r4ecore:R4EItem>
+ <r4ecore:R4EFileContext xmi:id="_pOceMERPEeC0spkCnDexvg" type="R4E_ADDED">
+ <id xmi:id="_pOceMURPEeC0spkCnDexvg" sequenceID="14" userID="Tom10"/>
+ <deltas href="#_pOlBEURPEeC0spkCnDexvg"/>
+ <base href="#_pOeTYERPEeC0spkCnDexvg"/>
+ <target href="#_pOh9wERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EFileContext>
+ <r4ecore:R4EFileVersion xmi:id="_pOeTYERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir3/dir4/file.xxx" versionID="-719978380" repositoryPath="root/folder_3" name="file_3" localVersionID="locIdB_1234_3"/>
+ <r4ecore:R4EFileVersion xmi:id="_pOh9wERPEeC0spkCnDexvg" platformURI="platform:/resource/proj/src/dir6/dir7/file.yyy" versionID="-719978379" repositoryPath="root/folder_3" name="file_3" localVersionID="locIdT_1234_3"/>
+ <r4ecore:R4EDelta xmi:id="_pOlBEURPEeC0spkCnDexvg">
+ <id xmi:id="_pOlBEkRPEeC0spkCnDexvg" sequenceID="15" userID="Tom10"/>
+ <base xsi:type="r4ecore:R4ETextContent" href="#_pOmPMERPEeC0spkCnDexvg"/>
+ <target xsi:type="r4ecore:R4ETextContent" href="#_pOndUERPEeC0spkCnDexvg"/>
+ </r4ecore:R4EDelta>
+ <r4ecore:R4ETextContent xmi:id="_pOmPMERPEeC0spkCnDexvg" info="information for base content" content="base content">
+ <location href="#_pOm2QERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pOm2QERPEeC0spkCnDexvg" startPosition="200" length="50" startLine="10" endLine="20"/>
+ <r4ecore:R4ETextContent xmi:id="_pOndUERPEeC0spkCnDexvg" info="information for target content" content="target content">
+ <location href="#_pOorcERPEeC0spkCnDexvg"/>
+ </r4ecore:R4ETextContent>
+ <r4ecore:R4ETextPosition xmi:id="_pOorcERPEeC0spkCnDexvg" startPosition="300" length="100" startLine="30" endLine="40"/>
+</xmi:XMI>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Tom10_group_reviews.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Tom10_group_reviews.xrer
index d1df857..0e4eba4 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Tom10_group_reviews.xrer
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/Tom10_group_reviews.xrer
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="ASCII"?>
-<r4ecore:R4EUserReviews xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_leUN9C52EeCvo9WHavBoFQ" name="Tom10">
- <invitedToMap xmi:id="_leU1AC52EeCvo9WHavBoFQ" key="ReviewSampl">
- <value href="ReviewSampl/ReviewSampl_review.xrer#_leUN8C52EeCvo9WHavBoFQ"/>
- </invitedToMap>
- <invitedToMap xmi:id="_loVFly52EeCvo9WHavBoFQ" key="ReviewTwo">
- <value href="ReviewTwo/ReviewTwo_review.xrer#_loVFky52EeCvo9WHavBoFQ"/>
- </invitedToMap>
- <group href="Golden_Group_group_root.xrer#_lYvKYS52EeCvo9WHavBoFQ"/>
- <createdReviews>ReviewSampl</createdReviews>
- <createdReviews>ReviewTwo</createdReviews>
-</r4ecore:R4EUserReviews>
+<?xml version="1.0" encoding="ASCII"?>
+<r4ecore:R4EUserReviews xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_o6yiY0RPEeC0spkCnDexvg" name="Tom10">
+ <invitedToMap xmi:id="_o6yiZURPEeC0spkCnDexvg" key="ReviewSampl">
+ <value href="ReviewSampl/ReviewSampl_review.xrer#_o6x7UERPEeC0spkCnDexvg"/>
+ </invitedToMap>
+ <invitedToMap xmi:id="_pI3apERPEeC0spkCnDexvg" key="ReviewTwo">
+ <value href="ReviewTwo/ReviewTwo_review.xrer#_pI3aoERPEeC0spkCnDexvg"/>
+ </invitedToMap>
+ <group href="Golden_Group_group_root.xrer#_UQxKYERPEeC0spkCnDexvg"/>
+ <createdReviews>ReviewSampl</createdReviews>
+ <createdReviews>ReviewTwo</createdReviews>
+</r4ecore:R4EUserReviews>
diff --git a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/lmcalvs_group_reviews.xrer b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/lmcalvs_group_reviews.xrer
index 1a7c921..22580ba 100644
--- a/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/lmcalvs_group_reviews.xrer
+++ b/org.eclipse.mylyn.reviews.r4e.core.tests/stubs_model/outGroupX/lmcalvs_group_reviews.xrer
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="ASCII"?>
-<r4ecore:R4EUserReviews xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_ldFe4C52EeCvo9WHavBoFQ" name="lmcalvs">
- <invitedToMap xmi:id="_ldGF8S52EeCvo9WHavBoFQ" key="Review1">
- <value href="Review1/Review1_review.xrer#_lc_YQC52EeCvo9WHavBoFQ"/>
- </invitedToMap>
- <group href="Golden_Group_group_root.xrer#_lYvKYS52EeCvo9WHavBoFQ"/>
- <createdReviews>Review1</createdReviews>
-</r4ecore:R4EUserReviews>
+<?xml version="1.0" encoding="ASCII"?>
+<r4ecore:R4EUserReviews xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:r4ecore="http://org.eclipse.mylyn.reviews.r4e.core.model/" xmi:id="_o0CaIERPEeC0spkCnDexvg" name="lmcalvs">
+ <invitedToMap xmi:id="_o0DBMERPEeC0spkCnDexvg" key="Review1">
+ <value href="Review1/Review1_review.xrer#_ozvfMERPEeC0spkCnDexvg"/>
+ </invitedToMap>
+ <group href="Golden_Group_group_root.xrer#_UQxKYERPEeC0spkCnDexvg"/>
+ <createdReviews>Review1</createdReviews>
+</r4ecore:R4EUserReviews>
diff --git a/org.eclipse.mylyn.reviews.r4e.core/.classpath b/org.eclipse.mylyn.reviews.r4e.core/.classpath
index ed2bc12..45f024e 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/.classpath
+++ b/org.eclipse.mylyn.reviews.r4e.core/.classpath
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/org.eclipse.mylyn.reviews.r4e.core/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.reviews.r4e.core/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..2d4b0c1
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Tue Feb 15 13:31:42 PST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.eclipse.mylyn.reviews.r4e.core/META-INF/MANIFEST.MF b/org.eclipse.mylyn.reviews.r4e.core/META-INF/MANIFEST.MF
index 471b5e1..ff6dc92 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.reviews.r4e.core/META-INF/MANIFEST.MF
@@ -8,23 +8,28 @@
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Export-Package:
- org.eclipse.mylyn.reviews.r4e.core,
- org.eclipse.mylyn.reviews.r4e.core.model,
- org.eclipse.mylyn.reviews.r4e.core.model.drules,
- org.eclipse.mylyn.reviews.r4e.core.model.drules.impl,
- org.eclipse.mylyn.reviews.r4e.core.model.drules.util,
- org.eclipse.mylyn.reviews.r4e.core.model.impl,
- org.eclipse.mylyn.reviews.r4e.core.model.serial,
- org.eclipse.mylyn.reviews.r4e.core.model.serial.impl,
- org.eclipse.mylyn.reviews.r4e.core.model.util,
- org.eclipse.mylyn.reviews.r4e.core.utils,
- org.eclipse.mylyn.reviews.r4e.core.utils.filePermission,
- org.eclipse.mylyn.reviews.r4e.core.versions,
- org.eclipse.mylyn.reviews.r4e.core.versions.git.diff
+ org.eclipse.mylyn.reviews.r4e.core;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.r4e.core.model;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.r4e.core.model.drules;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.r4e.core.model.drules.impl;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.r4e.core.model.drules.util;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.r4e.core.model.impl;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.r4e.core.model.serial;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.r4e.core.model.serial.impl;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.r4e.core.model.util;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.r4e.core.rfs;x-friends:="org.eclipse.mylyn.reviews.r4e.core.tests",
+ org.eclipse.mylyn.reviews.r4e.core.rfs.spi;x-friends:="org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.r4e.core.utils;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.r4e.core.utils.cmd;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.r4e.core.utils.filePermission;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.r4e.core.utils.sys;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.r4e.core.versions;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.r4e.core.versions.git;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.r4e.core.versions.git.diff;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.r4e.core.versions.git.diff.internal;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui",
+ org.eclipse.mylyn.reviews.r4e.core.versions.impl;x-friends:="org.eclipse.mylyn.reviews.r4e.core,org.eclipse.mylyn.reviews.r4e.core.tests,org.eclipse.mylyn.reviews.r4e.ui"
Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.emf.ecore;visibility:=reexport,
- org.eclipse.emf.ecore.xmi;visibility:=reexport,
- org.eclipse.mylyn.reviews.frame.core;visibility:=reexport,
+ org.eclipse.mylyn.reviews.frame.core,
org.eclipse.mylyn.tasks.core;bundle-version="3.5.0",
org.eclipse.core.resources;bundle-version="3.5.0",
org.eclipse.jgit;bundle-version="0.9.1",
@@ -33,6 +38,8 @@
org.eclipse.egit.core;bundle-version="0.9.1",
org.eclipse.egit.ui;bundle-version="0.9.1",
org.eclipse.ui;bundle-version="3.5.0",
- org.eclipse.team.core;bundle-version="3.5.0"
+ org.eclipse.team.core;bundle-version="3.5.0",
+ org.eclipse.emf.ecore;bundle-version="2.5.0",
+ org.eclipse.emf.ecore.xmi;bundle-version="2.5.0"
Bundle-ActivationPolicy: lazy
Bundle-Activator: org.eclipse.mylyn.reviews.r4e.core.Activator
diff --git a/org.eclipse.mylyn.reviews.r4e.core/model/org.eclipse.mylyn.reviews.r4e.core.model.ecore b/org.eclipse.mylyn.reviews.r4e.core/model/org.eclipse.mylyn.reviews.r4e.core.model.ecore
index 5cc37eb..a5c8aec 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/model/org.eclipse.mylyn.reviews.r4e.core.model.ecore
+++ b/org.eclipse.mylyn.reviews.r4e.core/model/org.eclipse.mylyn.reviews.r4e.core.model.ecore
@@ -31,7 +31,6 @@
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="R4EReview" eSuperTypes="../../org.eclipse.mylyn.reviews.frame.core/model/org.eclipse.mylyn.reviews.frame.core.model.ecore#//Review #//R4EReviewComponent">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationDate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="project" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="components" upperBound="-1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
@@ -76,7 +75,7 @@
<eStructuralFeatures xsi:type="ecore:EReference" name="fixedInVersion" eType="#//R4EFileVersion"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="ruleID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="decidedByID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="fiexeByID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedByID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="followUpByID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="R4EAnomalyState">
@@ -86,8 +85,8 @@
<eLiterals name="R4E_ANOMALY_STATE_FIXED" value="7"/>
<eLiterals name="R4E_ANOMALY_STATE_DUPLICATED" value="1"/>
<eLiterals name="R4E_ANOMALY_STATE_REJECTED" value="2"/>
- <eLiterals name="R4E_ANOMALY_STATE_POSTPONED" value="3"/>
- <eLiterals name="R4E_ANOMALY_SATE_VERIFIED" value="6"/>
+ <eLiterals name="R4E_ANOMALY_STATE_DEFERRED" value="3" literal="R4E_ANOMALY_STATE_DEFERRED"/>
+ <eLiterals name="R4E_ANOMALY_STATE_VERIFIED" value="6"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="R4EAnomalyRank">
<eLiterals name="R4E_ANOMALY_RANK_NONE"/>
@@ -131,7 +130,7 @@
<eLiterals name="R4E_REVIEW_DECISION_ACCEPTED_FOLLOWUP" value="2"/>
<eLiterals name="R4E_REVIEW_DECISION_REJECTED" value="3"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="R4EUser" eSuperTypes="../../org.eclipse.mylyn.reviews.frame.core/model/org.eclipse.mylyn.reviews.frame.core.model.ecore#//User">
+ <eClassifiers xsi:type="ecore:EClass" name="R4EUser" eSuperTypes="../../org.eclipse.mylyn.reviews.frame.core/model/org.eclipse.mylyn.reviews.frame.core.model.ecore#//User #//R4EReviewComponent">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="groupPaths" upperBound="-1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" transient="true"
derived="true"/>
@@ -151,11 +150,12 @@
<eClassifiers xsi:type="ecore:EClass" name="R4EParticipant" eSuperTypes="#//R4EUser">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="roles" upperBound="-1"
eType="#//R4EUserRole"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="spentTime" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="focusArea" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isPartOfDecision" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="reviewedContent" upperBound="-1"
eType="#//R4EID"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="timeLog" upperBound="-1"
+ eType="#//MapDateToDuration" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="R4EItem" eSuperTypes="#//R4EIDComponent ../../org.eclipse.mylyn.reviews.frame.core/model/org.eclipse.mylyn.reviews.frame.core.model.ecore#//Item">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="xmlVersion" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
@@ -167,6 +167,10 @@
<eStructuralFeatures xsi:type="ecore:EAttribute" name="repositoryRef" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="ProjectURIs" upperBound="-1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="authorRep" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="submitted" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="infoAtt" upperBound="-1"
+ eType="#//MapKeyToInfoAttributes" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="R4ETextContent" eSuperTypes="#//R4EContent">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="content" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
@@ -202,6 +206,9 @@
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
eType="#//R4EFileVersion" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//R4EContextType"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="infoAtt" upperBound="-1"
+ eType="#//MapKeyToInfoAttributes" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="R4EDelta" eSuperTypes="#//R4EIDComponent">
<eStructuralFeatures xsi:type="ecore:EReference" name="base" eType="#//R4EContent"
@@ -209,11 +216,14 @@
<eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
eType="#//R4EContent" containment="true"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="R4ECommentEnum">
- <eLiterals name="R4E_COMMENT_BASE"/>
+ <eClassifiers xsi:type="ecore:EEnum" name="R4ECommentClass">
+ <eLiterals name="R4E_CLASS_ERRONEOUS"/>
+ <eLiterals name="R4E_CLASS_SUPERFLUOUS" value="1"/>
+ <eLiterals name="R4E_CLASS_IMPROVEMENT" value="2"/>
+ <eLiterals name="R4E_CLASS_QUESTION" value="3"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="R4ECommentType" eSuperTypes="../../org.eclipse.mylyn.reviews.frame.core/model/org.eclipse.mylyn.reviews.frame.core.model.ecore#//CommentType">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//R4ECommentEnum"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//R4ECommentClass"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MapToAnomalyType" instanceClassName="java.util.Map$Entry">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
@@ -232,6 +242,10 @@
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="resource" eType="#//IResource"
transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="localVersionID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fileRevision" eType="#//IFileRevision"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="infoAtt" upperBound="-1"
+ eType="#//MapKeyToInfoAttributes" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="MylynTask" instanceClassName="org.eclipse.mylyn.tasks.core.ITask"/>
<eClassifiers xsi:type="ecore:EDataType" name="IResource" instanceClassName="org.eclipse.core.resources.IResource"/>
@@ -270,4 +284,20 @@
<eStructuralFeatures xsi:type="ecore:EReference" name="file" eType="#//R4EFileVersion"
containment="true"/>
</eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="R4EContextType">
+ <eLiterals name="R4E_UNDEFINED" value="4"/>
+ <eLiterals name="R4E_ADDED"/>
+ <eLiterals name="R4E_DELETED" value="1"/>
+ <eLiterals name="R4E_MODIFIED" value="2"/>
+ <eLiterals name="R4E_REPLACED" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="IFileRevision" instanceClassName="org.eclipse.team.core.history.IFileRevision"/>
+ <eClassifiers xsi:type="ecore:EClass" name="MapDateToDuration" instanceClassName="java.util.Map$Entry">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MapKeyToInfoAttributes" instanceClassName="java.util.Map$Entry">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
</ecore:EPackage>
diff --git a/org.eclipse.mylyn.reviews.r4e.core/model/org.eclipse.mylyn.reviews.r4e.core.model.ecorediag b/org.eclipse.mylyn.reviews.r4e.core/model/org.eclipse.mylyn.reviews.r4e.core.model.ecorediag
index c01b3f5..5df319f 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/model/org.eclipse.mylyn.reviews.r4e.core.model.ecorediag
+++ b/org.eclipse.mylyn.reviews.r4e.core/model/org.eclipse.mylyn.reviews.r4e.core.model.ecorediag
@@ -55,10 +55,6 @@
<element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EReview/name"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_e5eipbX-Ed-Xj-3H8XK7WQ"/>
</children>
- <children xmi:type="notation:Node" xmi:id="_e5eiprX-Ed-Xj-3H8XK7WQ" type="2001">
- <element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EReview/creationDate"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_e5fJsLX-Ed-Xj-3H8XK7WQ"/>
- </children>
<children xmi:type="notation:Node" xmi:id="_e5fJsbX-Ed-Xj-3H8XK7WQ" type="2001">
<element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EReview/project"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_e5fJsrX-Ed-Xj-3H8XK7WQ"/>
@@ -142,7 +138,7 @@
<layoutConstraint xmi:type="notation:Location" xmi:id="_Pxop0cWhEd-OHt4UvkWdIw"/>
</children>
<children xmi:type="notation:Node" xmi:id="_X3f9sMWhEd-OHt4UvkWdIw" type="2001">
- <element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomaly/fiexeByID"/>
+ <element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomaly/fixedByID"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_X3f9scWhEd-OHt4UvkWdIw"/>
</children>
<children xmi:type="notation:Node" xmi:id="_cBvJgMWhEd-OHt4UvkWdIw" type="2001">
@@ -190,11 +186,11 @@
<layoutConstraint xmi:type="notation:Location" xmi:id="_VkFI5bqFEd-6aOwQ22t3_g"/>
</children>
<children xmi:type="notation:Node" xmi:id="_VkFI5rqFEd-6aOwQ22t3_g" type="2006">
- <element xmi:type="ecore:EEnumLiteral" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomalyState/R4E_ANOMALY_STATE_POSTPONED"/>
+ <element xmi:type="ecore:EEnumLiteral" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomalyState/R4E_ANOMALY_STATE_DEFERRED"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_VkFI57qFEd-6aOwQ22t3_g"/>
</children>
<children xmi:type="notation:Node" xmi:id="_oXUI8LqGEd-6aOwQ22t3_g" type="2006">
- <element xmi:type="ecore:EEnumLiteral" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomalyState/R4E_ANOMALY_SATE_VERIFIED"/>
+ <element xmi:type="ecore:EEnumLiteral" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomalyState/R4E_ANOMALY_STATE_VERIFIED"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_oXUI8bqGEd-6aOwQ22t3_g"/>
</children>
<styles xmi:type="notation:DrawerStyle" xmi:id="_e5nFgrX-Ed-Xj-3H8XK7WQ"/>
@@ -271,7 +267,7 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_e5tMIbX-Ed-Xj-3H8XK7WQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EEnum" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EReviewPhase"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e5tMIrX-Ed-Xj-3H8XK7WQ" x="300" y="912" width="255" height="135"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e5tMIrX-Ed-Xj-3H8XK7WQ" x="300" y="912" width="255" height="147"/>
</children>
<children xmi:type="notation:Node" xmi:id="_e5vBVLX-Ed-Xj-3H8XK7WQ" type="1001">
<children xmi:type="notation:Node" xmi:id="_e5voYLX-Ed-Xj-3H8XK7WQ" type="4001"/>
@@ -367,7 +363,7 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_D8Gj8bYDEd-Xj-3H8XK7WQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EEnum" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EDecision"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D8Gj8rYDEd-Xj-3H8XK7WQ" x="792" y="936" width="315" height="123"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D8Gj8rYDEd-Xj-3H8XK7WQ" x="792" y="948" width="315" height="135"/>
</children>
<children xmi:type="notation:Node" xmi:id="_xJ9a4LbDEd-HcNahxkfV5A" type="1001">
<children xmi:type="notation:Node" xmi:id="_xJ_QELbDEd-HcNahxkfV5A" type="4001"/>
@@ -418,10 +414,6 @@
<element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EParticipant/roles"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_sr3bsbeDEd-lI8UEEXo2gw"/>
</children>
- <children xmi:type="notation:Node" xmi:id="_yW_1sLeHEd-lI8UEEXo2gw" type="2001">
- <element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EParticipant/spentTime"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_yW_1sbeHEd-lI8UEEXo2gw"/>
- </children>
<children xmi:type="notation:Node" xmi:id="_8gktwLeHEd-lI8UEEXo2gw" type="2001">
<element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EParticipant/focusArea"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_8gktwbeHEd-lI8UEEXo2gw"/>
@@ -466,6 +458,14 @@
<element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EItem/ProjectURIs"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_BGyrcQbbEeCvc-HZOPcedA"/>
</children>
+ <children xmi:type="notation:Node" xmi:id="_ZLHLgD4PEeCMwZzAYLFqBw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EItem/authorRep"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZLHLgT4PEeCMwZzAYLFqBw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9ddGwD4QEeCMwZzAYLFqBw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EItem/submitted"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9ddGwT4QEeCMwZzAYLFqBw"/>
+ </children>
<styles xmi:type="notation:DrawerStyle" xmi:id="_NjunVbqqEd-6aOwQ22t3_g"/>
<styles xmi:type="notation:SortingStyle" xmi:id="_NjunVrqqEd-6aOwQ22t3_g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_NjunV7qqEd-6aOwQ22t3_g"/>
@@ -521,7 +521,7 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_9Esdcbt3Ed-VvI-hm1I52A" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EID"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Esdcrt3Ed-VvI-hm1I52A" x="132" y="816"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Esdcrt3Ed-VvI-hm1I52A" x="132" y="840"/>
</children>
<children xmi:type="notation:Node" xmi:id="_Q94zUb0WEd-TWJIwocUqhw" type="1005">
<children xmi:type="notation:Node" xmi:id="_Q97PkL0WEd-TWJIwocUqhw" type="4010"/>
@@ -544,7 +544,7 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_Q94zUr0WEd-TWJIwocUqhw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EEnum" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EReviewType"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q94zU70WEd-TWJIwocUqhw" x="300" y="1056" width="219" height="99"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q94zU70WEd-TWJIwocUqhw" x="300" y="1068" width="219" height="99"/>
</children>
<children xmi:type="notation:Node" xmi:id="_zSKCYMWpEd-OHt4UvkWdIw" type="1001">
<children xmi:type="notation:Node" xmi:id="_zSKpcMWpEd-OHt4UvkWdIw" type="4001"/>
@@ -645,6 +645,10 @@
<children xmi:type="notation:Node" xmi:id="_gMAywMW7Ed-OHt4UvkWdIw" type="1001">
<children xmi:type="notation:Node" xmi:id="_gMAyw8W7Ed-OHt4UvkWdIw" type="4001"/>
<children xmi:type="notation:Node" xmi:id="_gMAyxMW7Ed-OHt4UvkWdIw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_4DNPID4REeCMwZzAYLFqBw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileContext/type"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4DNPIT4REeCMwZzAYLFqBw"/>
+ </children>
<styles xmi:type="notation:DrawerStyle" xmi:id="_gMAyxcW7Ed-OHt4UvkWdIw"/>
<styles xmi:type="notation:SortingStyle" xmi:id="_gMAyxsW7Ed-OHt4UvkWdIw"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_gMAyx8W7Ed-OHt4UvkWdIw"/>
@@ -656,7 +660,7 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_gMAywcW7Ed-OHt4UvkWdIw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileContext"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gMAywsW7Ed-OHt4UvkWdIw" x="1200" y="432"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gMAywsW7Ed-OHt4UvkWdIw" x="1176" y="480"/>
</children>
<children xmi:type="notation:Node" xmi:id="_PMT68MW8Ed-OHt4UvkWdIw" type="1001">
<children xmi:type="notation:Node" xmi:id="_PMT688W8Ed-OHt4UvkWdIw" type="4001"/>
@@ -672,22 +676,34 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_PMT68cW8Ed-OHt4UvkWdIw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EDelta"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PMT68sW8Ed-OHt4UvkWdIw" x="1284" y="576"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PMT68sW8Ed-OHt4UvkWdIw" x="1284" y="600"/>
</children>
<children xmi:type="notation:Node" xmi:id="_qi6NMMoxEd-GnoJBk9E8XQ" type="1005">
<children xmi:type="notation:Node" xmi:id="_qi9QgMoxEd-GnoJBk9E8XQ" type="4010"/>
<children xmi:type="notation:Node" xmi:id="_qi93kMoxEd-GnoJBk9E8XQ" type="5008">
<children xmi:type="notation:Node" xmi:id="_theQEMoxEd-GnoJBk9E8XQ" type="2006">
- <element xmi:type="ecore:EEnumLiteral" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4ECommentEnum/R4E_COMMENT_BASE"/>
+ <element xmi:type="ecore:EEnumLiteral" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4ECommentClass/R4E_CLASS_ERRONEOUS"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_theQEcoxEd-GnoJBk9E8XQ"/>
</children>
+ <children xmi:type="notation:Node" xmi:id="__VgDkUUNEeCdooscN54lQg" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4ECommentClass/R4E_CLASS_SUPERFLUOUS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__VgDkkUNEeCdooscN54lQg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ck5-0EUOEeCdooscN54lQg" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4ECommentClass/R4E_CLASS_IMPROVEMENT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ck5-0UUOEeCdooscN54lQg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Eig7AEUOEeCdooscN54lQg" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4ECommentClass/R4E_CLASS_QUESTION"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Eig7AUUOEeCdooscN54lQg"/>
+ </children>
<styles xmi:type="notation:DrawerStyle" xmi:id="_qi-eoMoxEd-GnoJBk9E8XQ"/>
<styles xmi:type="notation:SortingStyle" xmi:id="_qi-eocoxEd-GnoJBk9E8XQ"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_qi-eosoxEd-GnoJBk9E8XQ"/>
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_qi6NMcoxEd-GnoJBk9E8XQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
- <element xmi:type="ecore:EEnum" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4ECommentEnum"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qi6NMsoxEd-GnoJBk9E8XQ" x="48" y="1104" width="176" height="75"/>
+ <element xmi:type="ecore:EEnum" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4ECommentClass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qi6NMsoxEd-GnoJBk9E8XQ" x="48" y="1104" width="231" height="123"/>
</children>
<children xmi:type="notation:Node" xmi:id="_O8-9kMoyEd-GnoJBk9E8XQ" type="1001">
<children xmi:type="notation:Node" xmi:id="_O9AywMoyEd-GnoJBk9E8XQ" type="4001"/>
@@ -788,6 +804,14 @@
<element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileVersion/resource"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_uapPoeHeEd-yzYXzzLJ5Xg"/>
</children>
+ <children xmi:type="notation:Node" xmi:id="_k2iJcD4SEeCMwZzAYLFqBw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileVersion/localVersionID"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_k2iJcT4SEeCMwZzAYLFqBw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qB0r4D69EeCqhrBOB88LTg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileVersion/fileRevision"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qB0r4T69EeCqhrBOB88LTg"/>
+ </children>
<styles xmi:type="notation:DrawerStyle" xmi:id="_jePMceHeEd-yzYXzzLJ5Xg"/>
<styles xmi:type="notation:SortingStyle" xmi:id="_jePMcuHeEd-yzYXzzLJ5Xg"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_jePMc-HeEd-yzYXzzLJ5Xg"/>
@@ -799,23 +823,23 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_jeN-UeHeEd-yzYXzzLJ5Xg" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileVersion"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jeN-UuHeEd-yzYXzzLJ5Xg" x="1056" y="576"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jeN-UuHeEd-yzYXzzLJ5Xg" x="1056" y="600"/>
</children>
<children xmi:type="notation:Node" xmi:id="_FokSUOHgEd-yzYXzzLJ5Xg" type="1004">
<children xmi:type="notation:Node" xmi:id="_FomukOHgEd-yzYXzzLJ5Xg" type="4008"/>
<children xmi:type="notation:Node" xmi:id="_FonVoOHgEd-yzYXzzLJ5Xg" type="4009"/>
<styles xmi:type="notation:ShapeStyle" xmi:id="_FokSUeHgEd-yzYXzzLJ5Xg" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EDataType" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//MylynTask"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FokSUuHgEd-yzYXzzLJ5Xg" x="792" y="1140" width="314" height="71"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FokSUuHgEd-yzYXzzLJ5Xg" x="792" y="1164" width="314" height="71"/>
</children>
<children xmi:type="notation:Node" xmi:id="_SFBL8OHgEd-yzYXzzLJ5Xg" type="1004">
<children xmi:type="notation:Node" xmi:id="_SFBzAOHgEd-yzYXzzLJ5Xg" type="4008"/>
<children xmi:type="notation:Node" xmi:id="_SFBzAeHgEd-yzYXzzLJ5Xg" type="4009"/>
<styles xmi:type="notation:ShapeStyle" xmi:id="_SFBL8eHgEd-yzYXzzLJ5Xg" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EDataType" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//IResource"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SFBL8uHgEd-yzYXzzLJ5Xg" x="792" y="1068" width="315"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SFBL8uHgEd-yzYXzzLJ5Xg" x="792" y="1092" width="315"/>
</children>
- <children xmi:type="notation:Shape" xmi:id="_MFkgEOHiEd-yzYXzzLJ5Xg" type="Note" fontName="Segoe UI" description="R4EREviewComponent extended by: R4EDelta, R4EFileContext, R4EReviewGroup, R4EReview, R4ETaskReference, R4EComment, R4EAnomaly and R4EItem" fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
+ <children xmi:type="notation:Shape" xmi:id="_MFkgEOHiEd-yzYXzzLJ5Xg" type="Note" fontName="Segoe UI" description="R4EREviewComponent extended by: R4EDelta, R4EFileContext, R4EReviewGroup, R4EReview, R4ETaskReference, R4EComment, R4EAnomaly, R4EItem, R4EUser" fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
<children xmi:type="notation:BasicDecorationNode" xmi:id="_MFp_oOHiEd-yzYXzzLJ5Xg" type="DiagramName">
<element xsi:nil="true"/>
</children>
@@ -970,6 +994,94 @@
<element xmi:type="ecore:EClass" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomalyTextPosition"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_ruqP4vfqEd-WaLZjXTHHFA" x="852" y="852" width="172" height="53"/>
</children>
+ <children xmi:type="notation:Node" xmi:id="_T5cysD4REeCMwZzAYLFqBw" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_T5eA0D4REeCMwZzAYLFqBw" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_T5fO8D4REeCMwZzAYLFqBw" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_ZddYYD4SEeCMwZzAYLFqBw" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EContextType/R4E_UNDEFINED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZddYYT4SEeCMwZzAYLFqBw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_nPk54D4REeCMwZzAYLFqBw" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EContextType/R4E_ADDED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nPk54T4REeCMwZzAYLFqBw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_rMuE4D4REeCMwZzAYLFqBw" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EContextType/R4E_DELETED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rMuE4T4REeCMwZzAYLFqBw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tCX-8D4REeCMwZzAYLFqBw" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EContextType/R4E_MODIFIED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tCX-8T4REeCMwZzAYLFqBw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_uupTgD4REeCMwZzAYLFqBw" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EContextType/R4E_REPLACED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uupTgT4REeCMwZzAYLFqBw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_T5fO8T4REeCMwZzAYLFqBw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_T5fO8j4REeCMwZzAYLFqBw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_T5fO8z4REeCMwZzAYLFqBw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_T5cysT4REeCMwZzAYLFqBw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EContextType"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T5cysj4REeCMwZzAYLFqBw" x="1140" y="960" width="149"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LsYYsD4TEeCMwZzAYLFqBw" type="1004">
+ <children xmi:type="notation:Node" xmi:id="_LsaN4D4TEeCMwZzAYLFqBw" type="4008"/>
+ <children xmi:type="notation:Node" xmi:id="_Lsa08D4TEeCMwZzAYLFqBw" type="4009"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_LsY_wD4TEeCMwZzAYLFqBw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EDataType" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//IFileRevision"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LsY_wT4TEeCMwZzAYLFqBw" x="1140" y="1117" height="62"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_PZB20EQ4EeCXbIx_qEv2wA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_PZETEEQ4EeCXbIx_qEv2wA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_PZETEUQ4EeCXbIx_qEv2wA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_c-cjoEQ4EeCXbIx_qEv2wA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//MapDateToDuration/key"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_c-cjoUQ4EeCXbIx_qEv2wA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_hYtIcEQ4EeCXbIx_qEv2wA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//MapDateToDuration/value"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hYtIcUQ4EeCXbIx_qEv2wA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_PZETEkQ4EeCXbIx_qEv2wA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PZETE0Q4EeCXbIx_qEv2wA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PZETFEQ4EeCXbIx_qEv2wA"/>
+ <layoutConstraint xmi:type="notation:Ratio" xmi:id="_CNDWAEQ-EeCXbIx_qEv2wA" value="0.5877192982456141"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_PZE6IEQ4EeCXbIx_qEv2wA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_PZE6IUQ4EeCXbIx_qEv2wA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PZE6IkQ4EeCXbIx_qEv2wA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PZE6I0Q4EeCXbIx_qEv2wA"/>
+ <layoutConstraint xmi:type="notation:Ratio" xmi:id="_CND9EEQ-EeCXbIx_qEv2wA" value="0.2631578947368421"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_PZB20UQ4EeCXbIx_qEv2wA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//MapDateToDuration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PZB20kQ4EeCXbIx_qEv2wA" x="-24" y="684" width="171" height="123"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_N2lFQEQ7EeCXbIx_qEv2wA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_N2lsUEQ7EeCXbIx_qEv2wA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_N2lsUUQ7EeCXbIx_qEv2wA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_ZC5MsEQ7EeCXbIx_qEv2wA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//MapKeyToInfoAttributes/key"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZC5MsUQ7EeCXbIx_qEv2wA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_bRIl4EQ7EeCXbIx_qEv2wA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//MapKeyToInfoAttributes/value"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bRIl4UQ7EeCXbIx_qEv2wA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_N2lsUkQ7EeCXbIx_qEv2wA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_N2lsU0Q7EeCXbIx_qEv2wA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_N2lsVEQ7EeCXbIx_qEv2wA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_N2lsVUQ7EeCXbIx_qEv2wA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_N2lsVkQ7EeCXbIx_qEv2wA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_N2lsV0Q7EeCXbIx_qEv2wA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_N2lsWEQ7EeCXbIx_qEv2wA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_N2lFQUQ7EeCXbIx_qEv2wA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//MapKeyToInfoAttributes"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N2lFQkQ7EeCXbIx_qEv2wA" x="1416" y="360" width="171"/>
+ </children>
<styles xmi:type="notation:DiagramStyle" xmi:id="_e47JAbX-Ed-Xj-3H8XK7WQ"/>
<element xmi:type="ecore:EPackage" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#/"/>
<edges xmi:type="notation:Edge" xmi:id="_e529JLX-Ed-Xj-3H8XK7WQ" type="3003" source="_e5phwLX-Ed-Xj-3H8XK7WQ" target="_e5dUgrX-Ed-Xj-3H8XK7WQ">
@@ -1004,7 +1116,7 @@
<styles xmi:type="notation:ConnectorStyle" xmi:id="_oVDoALbJEd-HcNahxkfV5A" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_oVDoAbbJEd-HcNahxkfV5A" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
<element xmi:type="ecore:EReference" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFormalReview/phaseOwner"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oVDoArbJEd-HcNahxkfV5A" points="[0, 1, 235, -779]$[6, 384, 241, -396]$[-150, 528, 85, -252]$[-221, 739, 14, -41]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oVDoArbJEd-HcNahxkfV5A" points="[0, 1, 235, -779]$[6, 384, 241, -396]$[-174, 432, 61, -348]$[-221, 701, 14, -79]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oVHSYLbJEd-HcNahxkfV5A" id="(0.9082125603864735,0.990990990990991)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oVHSYbbJEd-HcNahxkfV5A" id="(0.9323671497584541,0.7967479674796748)"/>
</edges>
@@ -1082,9 +1194,9 @@
<styles xmi:type="notation:ConnectorStyle" xmi:id="_fJiHUcTlEd-et90B0t7vvA" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_fJiHUsTlEd-et90B0t7vvA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
<element xmi:type="ecore:EReference" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EParticipant/reviewedContent"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fJiHU8TlEd-et90B0t7vvA" points="[11, -15, -50, 72]$[62, -81, 1, 6]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fJnm4MTlEd-et90B0t7vvA" id="(0.00966183574879227,0.8536585365853658)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fJnm4cTlEd-et90B0t7vvA" id="(0.9083969465648855,0.16176470588235295)"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fJiHU8TlEd-et90B0t7vvA" points="[-35, 7, 384, -9]$[-80, 16, 339, 0]$[-407, 16, 12, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fJnm4MTlEd-et90B0t7vvA" id="(0.22705314009661837,0.9512195121951219)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fJnm4cTlEd-et90B0t7vvA" id="(0.9847328244274809,0.2647058823529412)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_r9uWAMWqEd-OHt4UvkWdIw" type="3002" source="_e5Wm0LX-Ed-Xj-3H8XK7WQ" target="_zSKCYMWpEd-OHt4UvkWdIw">
<children xmi:type="notation:Node" xmi:id="_r9u9EMWqEd-OHt4UvkWdIw" type="4011">
@@ -1129,7 +1241,7 @@
</edges>
<edges xmi:type="notation:Edge" xmi:id="_Nn9EYOHYEd-yzYXzzLJ5Xg" type="3002" source="_NjunULqqEd-6aOwQ22t3_g" target="_gMAywMW7Ed-OHt4UvkWdIw">
<children xmi:type="notation:Node" xmi:id="_Nn9rcOHYEd-yzYXzzLJ5Xg" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Nn9rceHYEd-yzYXzzLJ5Xg" x="-18" y="-58"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Nn9rceHYEd-yzYXzzLJ5Xg" x="-12" y="-53"/>
</children>
<children xmi:type="notation:Node" xmi:id="_Nn9rcuHYEd-yzYXzzLJ5Xg" type="4012">
<layoutConstraint xmi:type="notation:Location" xmi:id="_Nn9rc-HYEd-yzYXzzLJ5Xg" x="-1" y="-23"/>
@@ -1313,7 +1425,7 @@
<styles xmi:type="notation:FontStyle" xmi:id="_A0LGUukfEd--FZQPkuXOdg" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
<element xmi:type="ecore:EReference" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EUser/addedItems"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_A0LGU-kfEd--FZQPkuXOdg" points="[49, -1, -775, 346]$[606, -9, -218, 338]$[798, -306, -26, 41]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A0U3VOkfEd--FZQPkuXOdg" id="(0.7231638418079096,0.14705882352941177)"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A0U3VOkfEd--FZQPkuXOdg" id="(0.9634703196347032,0.3401360544217687)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A0U3VekfEd--FZQPkuXOdg" id="(0.033783783783783786,0.49411764705882355)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_chtOQOkoEd--FZQPkuXOdg" type="3002" source="_e5Wm0LX-Ed-Xj-3H8XK7WQ" target="_OTjUAekIEd--FZQPkuXOdg">
@@ -1363,7 +1475,7 @@
<styles xmi:type="notation:ConnectorStyle" xmi:id="_w5YNYempEd-9SopSv7VwjA" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_w5YNYumpEd-9SopSv7VwjA" fontName="Segoe UI"/>
<element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w5YNY-mpEd-9SopSv7VwjA" points="[6, -7, 299, 311]$[6, -319, 299, -1]$[-160, -319, 133, -1]$[-160, -312, 133, 6]$[-290, -312, 3, 6]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w5YNY-mpEd-9SopSv7VwjA" points="[8, -7, 301, 359]$[8, -355, 301, 11]$[-290, -355, 3, 11]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w5ce0OmpEd-9SopSv7VwjA" id="(0.6470588235294118,0.18604651162790697)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0k-8cOmpEd-9SopSv7VwjA" id="(0.9758064516129032,0.046511627906976744)"/>
</edges>
@@ -1376,7 +1488,7 @@
</edges>
<edges xmi:type="notation:Edge" xmi:id="_nk2RgOmqEd-9SopSv7VwjA" type="3002" source="_jr4t0OmoEd-9SopSv7VwjA" target="_9EsdcLt3Ed-VvI-hm1I52A">
<children xmi:type="notation:Node" xmi:id="_nk24kOmqEd-9SopSv7VwjA" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_nk24kemqEd-9SopSv7VwjA" x="145" y="16"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nk24kemqEd-9SopSv7VwjA" x="145" y="9"/>
</children>
<children xmi:type="notation:Node" xmi:id="_nk24kumqEd-9SopSv7VwjA" type="4012">
<layoutConstraint xmi:type="notation:Location" xmi:id="_nk24k-mqEd-9SopSv7VwjA" x="176" y="16"/>
@@ -1384,7 +1496,7 @@
<styles xmi:type="notation:ConnectorStyle" xmi:id="_nk2RgemqEd-9SopSv7VwjA" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_nk2RgumqEd-9SopSv7VwjA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
<element xmi:type="ecore:EReference" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EIDComponent/id"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nk2Rg-mqEd-9SopSv7VwjA" points="[0, 10, 756, -578]$[0, 377, 756, -211]$[-286, 588, 470, 0]$[-745, 588, 11, 0]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nk2Rg-mqEd-9SopSv7VwjA" points="[0, 10, 756, -578]$[-10, 353, 746, -235]$[-286, 588, 470, 0]$[-745, 588, 11, 0]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nk6i8OmqEd-9SopSv7VwjA" id="(0.5806451612903226,0.7674418604651163)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nk6i8emqEd-9SopSv7VwjA" id="(0.916030534351145,0.6617647058823529)"/>
</edges>
@@ -1427,7 +1539,7 @@
<styles xmi:type="notation:FontStyle" xmi:id="_-yvXoumuEd-9SopSv7VwjA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
<element xmi:type="ecore:EReference" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//MapIDToComponent/value"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-yvXo-muEd-9SopSv7VwjA" points="[2, -8, -54, 253]$[57, -240, 1, 21]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-y03MOmuEd-9SopSv7VwjA" id="(0.6385542168674698,0.20930232558139536)"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-y03MOmuEd-9SopSv7VwjA" id="(0.9156626506024096,0.3488372093023256)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-y03MemuEd-9SopSv7VwjA" id="(0.13709677419354838,0.4883720930232558)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_1i6mgOm4Ed-9SopSv7VwjA" type="3002" source="_e5dUgrX-Ed-Xj-3H8XK7WQ" target="_xJ9a4LbDEd-HcNahxkfV5A">
@@ -1487,7 +1599,7 @@
</edges>
<edges xmi:type="notation:Edge" xmi:id="_-KQm8OtREd--H94fXRIifg" type="3002" source="_e5dUgrX-Ed-Xj-3H8XK7WQ" target="_WQ-ZIOmuEd-9SopSv7VwjA">
<children xmi:type="notation:Node" xmi:id="_-KScIOtREd--H94fXRIifg" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_-KScIetREd--H94fXRIifg" x="-10" y="-10"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-KScIetREd--H94fXRIifg" x="-6" y="-6"/>
</children>
<children xmi:type="notation:Node" xmi:id="_-KScIutREd--H94fXRIifg" type="4012">
<layoutConstraint xmi:type="notation:Location" xmi:id="_-KScI-tREd--H94fXRIifg" x="10" y="10"/>
@@ -1515,17 +1627,17 @@
</edges>
<edges xmi:type="notation:Edge" xmi:id="_qlz7IPP9Ed-0svOvi6MM0A" type="3002" source="_ruqP4PfqEd-WaLZjXTHHFA" target="_jeN-UOHeEd-yzYXzzLJ5Xg">
<children xmi:type="notation:Node" xmi:id="_qlz7JPP9Ed-0svOvi6MM0A" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_qlz7JfP9Ed-0svOvi6MM0A" x="-10" y="-10"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qlz7JfP9Ed-0svOvi6MM0A" x="19" y="-28"/>
</children>
<children xmi:type="notation:Node" xmi:id="_qlz7JvP9Ed-0svOvi6MM0A" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_qlz7J_P9Ed-0svOvi6MM0A" x="10" y="10"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qlz7J_P9Ed-0svOvi6MM0A" x="-1" y="-13"/>
</children>
<styles xmi:type="notation:ConnectorStyle" xmi:id="_qlz7IfP9Ed-0svOvi6MM0A" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_qlz7IvP9Ed-0svOvi6MM0A" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
<element xmi:type="ecore:EReference" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomalyTextPosition/file"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qlz7I_P9Ed-0svOvi6MM0A" points="[2, -6, 1, 112]$[2, -92, 1, 26]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qlz7I_P9Ed-0svOvi6MM0A" points="[9, -6, -179, 134]$[112, -90, -76, 50]$[137, -107, -51, 33]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qlz7KPP9Ed-0svOvi6MM0A" id="(0.6162790697674418,0.1320754716981132)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qlz7KfP9Ed-0svOvi6MM0A" id="(0.5,0.7815126050420168)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qlz7KfP9Ed-0svOvi6MM0A" id="(0.0449438202247191,0.6797385620915033)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_6vApoPfqEd-WaLZjXTHHFA" type="3003" source="_ruqP4PfqEd-WaLZjXTHHFA" target="_e5vBVLX-Ed-Xj-3H8XK7WQ">
<styles xmi:type="notation:ConnectorStyle" xmi:id="_6vBQsPfqEd-WaLZjXTHHFA" routing="Rectilinear" lineColor="4210752"/>
@@ -1539,7 +1651,71 @@
<styles xmi:type="notation:ConnectorStyle" xmi:id="_39uhoS5MEeCiNYXZ8-OQ4Q" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_39uhoi5MEeCiNYXZ8-OQ4Q" fontName="Segoe UI"/>
<element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_39uhoy5MEeCiNYXZ8-OQ4Q" points="[87, -11, 308, 184]$[126, -11, 347, 184]$[126, -194, 347, 1]$[-160, -194, 61, 1]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_39uhoy5MEeCiNYXZ8-OQ4Q" points="[131, -3, 338, 245]$[140, -3, 347, 245]$[140, -244, 347, 4]$[-146, -244, 61, 4]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_39uhpC5MEeCiNYXZ8-OQ4Q" id="(0.17757009345794392,0.5813953488372093)"/>
</edges>
+ <edges xmi:type="notation:Edge" xmi:id="_uNgp8EQzEeCXbIx_qEv2wA" type="3003" source="_xJ9a4LbDEd-HcNahxkfV5A" target="_0EcyQMW6Ed-OHt4UvkWdIw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_uNgp8UQzEeCXbIx_qEv2wA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_uNgp8kQzEeCXbIx_qEv2wA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uNgp80QzEeCXbIx_qEv2wA" points="[14, 6, -508, 448]$[361, 6, -161, 448]$[361, -166, -161, 276]$[517, -166, -5, 276]$[517, -437, -5, 5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uNkUUEQzEeCXbIx_qEv2wA" id="(0.9360730593607306,0.07482993197278912)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7-hiwEQzEeCXbIx_qEv2wA" id="(0.10526315789473684,0.8837209302325582)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FFqUIEQ5EeCXbIx_qEv2wA" type="3002" source="_UghugLeCEd-lI8UEEXo2gw" target="_PZB20EQ4EeCXbIx_qEv2wA">
+ <children xmi:type="notation:Node" xmi:id="_FFriQEQ5EeCXbIx_qEv2wA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FFriQUQ5EeCXbIx_qEv2wA" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FFriQkQ5EeCXbIx_qEv2wA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FFriQ0Q5EeCXbIx_qEv2wA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FFqUIUQ5EeCXbIx_qEv2wA" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FFqUIkQ5EeCXbIx_qEv2wA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EParticipant/timeLog"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FFqUI0Q5EeCXbIx_qEv2wA" points="[-5, 0, 445, 25]$[-413, 0, 37, 25]$[-444, -21, 6, 4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FFulkEQ5EeCXbIx_qEv2wA" id="(0.028985507246376812,0.8211382113821138)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FFvMoEQ5EeCXbIx_qEv2wA" id="(0.31788079470198677,0.9411764705882353)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_1ddI0EQ7EeCXbIx_qEv2wA" type="3002" source="_NjunULqqEd-6aOwQ22t3_g" target="_N2lFQEQ7EeCXbIx_qEv2wA">
+ <children xmi:type="notation:Node" xmi:id="_1deW8EQ7EeCXbIx_qEv2wA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1deW8UQ7EeCXbIx_qEv2wA" x="44" y="-35"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1deW8kQ7EeCXbIx_qEv2wA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1deW80Q7EeCXbIx_qEv2wA" x="15" y="-16"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_1ddI0UQ7EeCXbIx_qEv2wA" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1ddI0kQ7EeCXbIx_qEv2wA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EItem/infoAtt"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1ddI00Q7EeCXbIx_qEv2wA" points="[16, 1, -111, -6]$[128, -14, 1, -21]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1dhaQEQ7EeCXbIx_qEv2wA" id="(0.9012345679012346,0.09803921568627451)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1diBUEQ7EeCXbIx_qEv2wA" id="(0.1871345029239766,0.3235294117647059)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_EOQDoEQ8EeCXbIx_qEv2wA" type="3002" source="_gMAywMW7Ed-OHt4UvkWdIw" target="_N2lFQEQ7EeCXbIx_qEv2wA">
+ <children xmi:type="notation:Node" xmi:id="_EOQqsEQ8EeCXbIx_qEv2wA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EOQqsUQ8EeCXbIx_qEv2wA" x="-50" y="-30"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EORRwEQ8EeCXbIx_qEv2wA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EORRwUQ8EeCXbIx_qEv2wA" x="-31" y="-8"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_EOQDoUQ8EeCXbIx_qEv2wA" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_EOQDokQ8EeCXbIx_qEv2wA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileContext/infoAtt"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_EOQDo0Q8EeCXbIx_qEv2wA" points="[13, -6, -148, 69]$[106, -48, -55, 27]$[143, -66, -18, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EOUVEEQ8EeCXbIx_qEv2wA" id="(0.9192546583850931,0.2549019607843137)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EOUVEUQ8EeCXbIx_qEv2wA" id="(0.39766081871345027,0.8676470588235294)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_QAxPcEQ8EeCXbIx_qEv2wA" type="3002" source="_jeN-UOHeEd-yzYXzzLJ5Xg" target="_N2lFQEQ7EeCXbIx_qEv2wA">
+ <children xmi:type="notation:Node" xmi:id="_QAxPdEQ8EeCXbIx_qEv2wA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QAxPdUQ8EeCXbIx_qEv2wA" x="-16" y="-8"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QAxPdkQ8EeCXbIx_qEv2wA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QAxPd0Q8EeCXbIx_qEv2wA" x="12" y="-5"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_QAxPcUQ8EeCXbIx_qEv2wA" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QAxPckQ8EeCXbIx_qEv2wA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileVersion/infoAtt"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QAxPc0Q8EeCXbIx_qEv2wA" points="[21, -11, -310, 178]$[333, -185, 2, 4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QAxPeEQ8EeCXbIx_qEv2wA" id="(0.8820224719101124,0.0784313725490196)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QAxPeUQ8EeCXbIx_qEv2wA" id="(0.7485380116959064,0.9411764705882353)"/>
+ </edges>
</notation:Diagram>
diff --git a/org.eclipse.mylyn.reviews.r4e.core/model/r4e.genmodel b/org.eclipse.mylyn.reviews.r4e.core/model/r4e.genmodel
index cd136d2..7269af9 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/model/r4e.genmodel
+++ b/org.eclipse.mylyn.reviews.r4e.core/model/r4e.genmodel
@@ -16,8 +16,8 @@
<genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomalyState/R4E_ANOMALY_STATE_FIXED"/>
<genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomalyState/R4E_ANOMALY_STATE_DUPLICATED"/>
<genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomalyState/R4E_ANOMALY_STATE_REJECTED"/>
- <genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomalyState/R4E_ANOMALY_STATE_POSTPONED"/>
- <genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomalyState/R4E_ANOMALY_SATE_VERIFIED"/>
+ <genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomalyState/R4E_ANOMALY_STATE_DEFERRED"/>
+ <genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomalyState/R4E_ANOMALY_STATE_VERIFIED"/>
</genEnums>
<genEnums typeSafeEnumCompatible="false" ecoreEnum="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomalyRank">
<genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomalyRank/R4E_ANOMALY_RANK_NONE"/>
@@ -48,12 +48,23 @@
<genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EReviewType/R4E_REVIEW_TYPE_INFORMAL"/>
<genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EReviewType/R4E_REVIEW_TYPE_FORMAL"/>
</genEnums>
- <genEnums typeSafeEnumCompatible="false" ecoreEnum="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4ECommentEnum">
- <genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4ECommentEnum/R4E_COMMENT_BASE"/>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4ECommentClass">
+ <genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4ECommentClass/R4E_CLASS_ERRONEOUS"/>
+ <genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4ECommentClass/R4E_CLASS_SUPERFLUOUS"/>
+ <genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4ECommentClass/R4E_CLASS_IMPROVEMENT"/>
+ <genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4ECommentClass/R4E_CLASS_QUESTION"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EContextType">
+ <genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EContextType/R4E_UNDEFINED"/>
+ <genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EContextType/R4E_ADDED"/>
+ <genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EContextType/R4E_DELETED"/>
+ <genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EContextType/R4E_MODIFIED"/>
+ <genEnumLiterals ecoreEnumLiteral="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EContextType/R4E_REPLACED"/>
</genEnums>
<genDataTypes ecoreDataType="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//MylynTask"/>
<genDataTypes ecoreDataType="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//IResource"/>
<genDataTypes ecoreDataType="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//URI"/>
+ <genDataTypes ecoreDataType="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//IFileRevision"/>
<genClasses ecoreClass="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EReviewGroup">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EReviewGroup/name"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EReviewGroup/folder"/>
@@ -69,7 +80,6 @@
</genClasses>
<genClasses ecoreClass="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EReview">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EReview/name"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EReview/creationDate"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EReview/project"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EReview/components"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EReview/entryCriteria"/>
@@ -102,7 +112,7 @@
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomaly/fixedInVersion"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomaly/ruleID"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomaly/decidedByID"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomaly/fiexeByID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomaly/fixedByID"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomaly/followUpByID"/>
</genClasses>
<genClasses ecoreClass="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFormalReview">
@@ -135,10 +145,10 @@
</genClasses>
<genClasses ecoreClass="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EParticipant">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EParticipant/roles"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EParticipant/spentTime"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EParticipant/focusArea"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EParticipant/isPartOfDecision"/>
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EParticipant/reviewedContent"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EParticipant/timeLog"/>
</genClasses>
<genClasses ecoreClass="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EItem">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EItem/xmlVersion"/>
@@ -147,6 +157,9 @@
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EItem/fileContextList"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EItem/repositoryRef"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EItem/ProjectURIs"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EItem/authorRep"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EItem/submitted"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EItem/infoAtt"/>
</genClasses>
<genClasses ecoreClass="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4ETextContent">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4ETextContent/content"/>
@@ -173,6 +186,8 @@
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileContext/deltas"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileContext/base"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileContext/target"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileContext/type"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileContext/infoAtt"/>
</genClasses>
<genClasses ecoreClass="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EDelta">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EDelta/base"/>
@@ -196,6 +211,9 @@
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileVersion/repositoryPath"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileVersion/name"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileVersion/resource"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileVersion/localVersionID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileVersion/fileRevision"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EFileVersion/infoAtt"/>
</genClasses>
<genClasses ecoreClass="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//MapNameToReview">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//MapNameToReview/key"/>
@@ -226,5 +244,13 @@
<genClasses ecoreClass="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomalyTextPosition">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.mylyn.reviews.r4e.core.model.ecore#//R4EAnomalyTextPosition/file"/>
</genClasses>
+ <genClasses ecoreClass="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//MapDateToDuration">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//MapDateToDuration/key"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//MapDateToDuration/value"/>
+ </genClasses>
+ <genClasses ecoreClass="org.eclipse.mylyn.reviews.r4e.core.model.ecore#//MapKeyToInfoAttributes">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//MapKeyToInfoAttributes/key"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.mylyn.reviews.r4e.core.model.ecore#//MapKeyToInfoAttributes/value"/>
+ </genClasses>
</genPackages>
</genmodel:GenModel>
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EAnomaly.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EAnomaly.java
index 76b3909..ba4674a 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EAnomaly.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EAnomaly.java
@@ -43,7 +43,7 @@
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly#getFixedInVersion <em>Fixed In Version</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly#getRuleID <em>Rule ID</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly#getDecidedByID <em>Decided By ID</em>}</li>
- * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly#getFiexeByID <em>Fiexe By ID</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly#getFixedByID <em>Fixed By ID</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly#getFollowUpByID <em>Follow Up By ID</em>}</li>
* </ul>
* </p>
@@ -450,30 +450,30 @@
void setDecidedByID(String value);
/**
- * Returns the value of the '<em><b>Fiexe By ID</b></em>' attribute.
+ * Returns the value of the '<em><b>Fixed By ID</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
- * If the meaning of the '<em>Fiexe By ID</em>' attribute isn't clear,
+ * If the meaning of the '<em>Fixed By ID</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
- * @return the value of the '<em>Fiexe By ID</em>' attribute.
- * @see #setFiexeByID(String)
- * @see org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage#getR4EAnomaly_FiexeByID()
+ * @return the value of the '<em>Fixed By ID</em>' attribute.
+ * @see #setFixedByID(String)
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage#getR4EAnomaly_FixedByID()
* @model
* @generated
*/
- String getFiexeByID();
+ String getFixedByID();
/**
- * Sets the value of the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly#getFiexeByID <em>Fiexe By ID</em>}' attribute.
+ * Sets the value of the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly#getFixedByID <em>Fixed By ID</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @param value the new value of the '<em>Fiexe By ID</em>' attribute.
- * @see #getFiexeByID()
+ * @param value the new value of the '<em>Fixed By ID</em>' attribute.
+ * @see #getFixedByID()
* @generated
*/
- void setFiexeByID(String value);
+ void setFixedByID(String value);
/**
* Returns the value of the '<em><b>Follow Up By ID</b></em>' attribute.
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EAnomalyState.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EAnomalyState.java
index 0f5f4a4..cfebe47 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EAnomalyState.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EAnomalyState.java
@@ -91,24 +91,22 @@
R4E_ANOMALY_STATE_REJECTED(2, "R4E_ANOMALY_STATE_REJECTED", "R4E_ANOMALY_STATE_REJECTED"),
/**
- * The '<em><b>R4E ANOMALY STATE POSTPONED</b></em>' literal object.
+ * The '<em><b>R4E ANOMALY STATE DEFERRED</b></em>' literal object.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see #R4E_ANOMALY_STATE_POSTPONED_VALUE
+ * @see #R4E_ANOMALY_STATE_DEFERRED_VALUE
* @generated
* @ordered
*/
- R4E_ANOMALY_STATE_POSTPONED(3, "R4E_ANOMALY_STATE_POSTPONED", "R4E_ANOMALY_STATE_POSTPONED"),
-
- /**
- * The '<em><b>R4E ANOMALY SATE VERIFIED</b></em>' literal object.
+ R4E_ANOMALY_STATE_DEFERRED(3, "R4E_ANOMALY_STATE_DEFERRED", "R4E_ANOMALY_STATE_DEFERRED"), /**
+ * The '<em><b>R4E ANOMALY STATE VERIFIED</b></em>' literal object.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see #R4E_ANOMALY_SATE_VERIFIED_VALUE
+ * @see #R4E_ANOMALY_STATE_VERIFIED_VALUE
* @generated
* @ordered
*/
- R4E_ANOMALY_SATE_VERIFIED(6, "R4E_ANOMALY_SATE_VERIFIED", "R4E_ANOMALY_SATE_VERIFIED");
+ R4E_ANOMALY_STATE_VERIFIED(6, "R4E_ANOMALY_STATE_VERIFIED", "R4E_ANOMALY_STATE_VERIFIED");
/**
* The '<em><b>R4E ANOMALY STATE CREATED</b></em>' literal value.
@@ -201,34 +199,34 @@
public static final int R4E_ANOMALY_STATE_REJECTED_VALUE = 2;
/**
- * The '<em><b>R4E ANOMALY STATE POSTPONED</b></em>' literal value.
+ * The '<em><b>R4E ANOMALY STATE DEFERRED</b></em>' literal value.
* <!-- begin-user-doc -->
* <p>
- * If the meaning of '<em><b>R4E ANOMALY STATE POSTPONED</b></em>' literal object isn't clear,
+ * If the meaning of '<em><b>R4E ANOMALY STATE DEFERRED</b></em>' literal object isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
- * @see #R4E_ANOMALY_STATE_POSTPONED
+ * @see #R4E_ANOMALY_STATE_DEFERRED
* @model
* @generated
* @ordered
*/
- public static final int R4E_ANOMALY_STATE_POSTPONED_VALUE = 3;
+ public static final int R4E_ANOMALY_STATE_DEFERRED_VALUE = 3;
/**
- * The '<em><b>R4E ANOMALY SATE VERIFIED</b></em>' literal value.
+ * The '<em><b>R4E ANOMALY STATE VERIFIED</b></em>' literal value.
* <!-- begin-user-doc -->
* <p>
- * If the meaning of '<em><b>R4E ANOMALY SATE VERIFIED</b></em>' literal object isn't clear,
+ * If the meaning of '<em><b>R4E ANOMALY STATE VERIFIED</b></em>' literal object isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
- * @see #R4E_ANOMALY_SATE_VERIFIED
+ * @see #R4E_ANOMALY_STATE_VERIFIED
* @model
* @generated
* @ordered
*/
- public static final int R4E_ANOMALY_SATE_VERIFIED_VALUE = 6;
+ public static final int R4E_ANOMALY_STATE_VERIFIED_VALUE = 6;
/**
* An array of all the '<em><b>R4E Anomaly State</b></em>' enumerators.
@@ -244,8 +242,8 @@
R4E_ANOMALY_STATE_FIXED,
R4E_ANOMALY_STATE_DUPLICATED,
R4E_ANOMALY_STATE_REJECTED,
- R4E_ANOMALY_STATE_POSTPONED,
- R4E_ANOMALY_SATE_VERIFIED,
+ R4E_ANOMALY_STATE_DEFERRED,
+ R4E_ANOMALY_STATE_VERIFIED,
};
/**
@@ -302,8 +300,8 @@
case R4E_ANOMALY_STATE_FIXED_VALUE: return R4E_ANOMALY_STATE_FIXED;
case R4E_ANOMALY_STATE_DUPLICATED_VALUE: return R4E_ANOMALY_STATE_DUPLICATED;
case R4E_ANOMALY_STATE_REJECTED_VALUE: return R4E_ANOMALY_STATE_REJECTED;
- case R4E_ANOMALY_STATE_POSTPONED_VALUE: return R4E_ANOMALY_STATE_POSTPONED;
- case R4E_ANOMALY_SATE_VERIFIED_VALUE: return R4E_ANOMALY_SATE_VERIFIED;
+ case R4E_ANOMALY_STATE_DEFERRED_VALUE: return R4E_ANOMALY_STATE_DEFERRED;
+ case R4E_ANOMALY_STATE_VERIFIED_VALUE: return R4E_ANOMALY_STATE_VERIFIED;
}
return null;
}
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4ECommentClass.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4ECommentClass.java
new file mode 100644
index 0000000..84f45ee
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4ECommentClass.java
@@ -0,0 +1,274 @@
+/**
+ * Copyright (c) 2010 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * Contributors:
+ * Alvaro Sanchez-Leon - Initial API and implementation
+ *
+ */
+package org.eclipse.mylyn.reviews.r4e.core.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>R4E Comment Class</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage#getR4ECommentClass()
+ * @model
+ * @generated
+ */
+public enum R4ECommentClass implements Enumerator {
+ /**
+ * The '<em><b>R4E CLASS ERRONEOUS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #R4E_CLASS_ERRONEOUS_VALUE
+ * @generated
+ * @ordered
+ */
+ R4E_CLASS_ERRONEOUS(0, "R4E_CLASS_ERRONEOUS", "R4E_CLASS_ERRONEOUS"),
+
+ /**
+ * The '<em><b>R4E CLASS SUPERFLUOUS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #R4E_CLASS_SUPERFLUOUS_VALUE
+ * @generated
+ * @ordered
+ */
+ R4E_CLASS_SUPERFLUOUS(1, "R4E_CLASS_SUPERFLUOUS", "R4E_CLASS_SUPERFLUOUS"),
+
+ /**
+ * The '<em><b>R4E CLASS IMPROVEMENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #R4E_CLASS_IMPROVEMENT_VALUE
+ * @generated
+ * @ordered
+ */
+ R4E_CLASS_IMPROVEMENT(2, "R4E_CLASS_IMPROVEMENT", "R4E_CLASS_IMPROVEMENT"),
+
+ /**
+ * The '<em><b>R4E CLASS QUESTION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #R4E_CLASS_QUESTION_VALUE
+ * @generated
+ * @ordered
+ */
+ R4E_CLASS_QUESTION(3, "R4E_CLASS_QUESTION", "R4E_CLASS_QUESTION");
+
+ /**
+ * The '<em><b>R4E CLASS ERRONEOUS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>R4E CLASS ERRONEOUS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #R4E_CLASS_ERRONEOUS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int R4E_CLASS_ERRONEOUS_VALUE = 0;
+
+ /**
+ * The '<em><b>R4E CLASS SUPERFLUOUS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>R4E CLASS SUPERFLUOUS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #R4E_CLASS_SUPERFLUOUS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int R4E_CLASS_SUPERFLUOUS_VALUE = 1;
+
+ /**
+ * The '<em><b>R4E CLASS IMPROVEMENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>R4E CLASS IMPROVEMENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #R4E_CLASS_IMPROVEMENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int R4E_CLASS_IMPROVEMENT_VALUE = 2;
+
+ /**
+ * The '<em><b>R4E CLASS QUESTION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>R4E CLASS QUESTION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #R4E_CLASS_QUESTION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int R4E_CLASS_QUESTION_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>R4E Comment Class</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final R4ECommentClass[] VALUES_ARRAY =
+ new R4ECommentClass[] {
+ R4E_CLASS_ERRONEOUS,
+ R4E_CLASS_SUPERFLUOUS,
+ R4E_CLASS_IMPROVEMENT,
+ R4E_CLASS_QUESTION,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>R4E Comment Class</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<R4ECommentClass> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>R4E Comment Class</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static R4ECommentClass get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ R4ECommentClass result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>R4E Comment Class</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static R4ECommentClass getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ R4ECommentClass result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>R4E Comment Class</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static R4ECommentClass get(int value) {
+ switch (value) {
+ case R4E_CLASS_ERRONEOUS_VALUE: return R4E_CLASS_ERRONEOUS;
+ case R4E_CLASS_SUPERFLUOUS_VALUE: return R4E_CLASS_SUPERFLUOUS;
+ case R4E_CLASS_IMPROVEMENT_VALUE: return R4E_CLASS_IMPROVEMENT;
+ case R4E_CLASS_QUESTION_VALUE: return R4E_CLASS_QUESTION;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private R4ECommentClass(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //R4ECommentClass
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4ECommentEnum.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4ECommentEnum.java
deleted file mode 100644
index 7696cf6..0000000
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4ECommentEnum.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/**
- * Copyright (c) 2010 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Description:
- *
- * Contributors:
- * Alvaro Sanchez-Leon - Initial API and implementation
- *
- */
-package org.eclipse.mylyn.reviews.r4e.core.model;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.Enumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>R4E Comment Enum</b></em>',
- * and utility methods for working with them.
- * <!-- end-user-doc -->
- * @see org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage#getR4ECommentEnum()
- * @model
- * @generated
- */
-public enum R4ECommentEnum implements Enumerator {
- /**
- * The '<em><b>R4E COMMENT BASE</b></em>' literal object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #R4E_COMMENT_BASE_VALUE
- * @generated
- * @ordered
- */
- R4E_COMMENT_BASE(0, "R4E_COMMENT_BASE", "R4E_COMMENT_BASE");
-
- /**
- * The '<em><b>R4E COMMENT BASE</b></em>' literal value.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of '<em><b>R4E COMMENT BASE</b></em>' literal object isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @see #R4E_COMMENT_BASE
- * @model
- * @generated
- * @ordered
- */
- public static final int R4E_COMMENT_BASE_VALUE = 0;
-
- /**
- * An array of all the '<em><b>R4E Comment Enum</b></em>' enumerators.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- private static final R4ECommentEnum[] VALUES_ARRAY =
- new R4ECommentEnum[] {
- R4E_COMMENT_BASE,
- };
-
- /**
- * A public read-only list of all the '<em><b>R4E Comment Enum</b></em>' enumerators.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public static final List<R4ECommentEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
- /**
- * Returns the '<em><b>R4E Comment Enum</b></em>' literal with the specified literal value.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public static R4ECommentEnum get(String literal) {
- for (int i = 0; i < VALUES_ARRAY.length; ++i) {
- R4ECommentEnum result = VALUES_ARRAY[i];
- if (result.toString().equals(literal)) {
- return result;
- }
- }
- return null;
- }
-
- /**
- * Returns the '<em><b>R4E Comment Enum</b></em>' literal with the specified name.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public static R4ECommentEnum getByName(String name) {
- for (int i = 0; i < VALUES_ARRAY.length; ++i) {
- R4ECommentEnum result = VALUES_ARRAY[i];
- if (result.getName().equals(name)) {
- return result;
- }
- }
- return null;
- }
-
- /**
- * Returns the '<em><b>R4E Comment Enum</b></em>' literal with the specified integer value.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public static R4ECommentEnum get(int value) {
- switch (value) {
- case R4E_COMMENT_BASE_VALUE: return R4E_COMMENT_BASE;
- }
- return null;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- private final int value;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- private final String name;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- private final String literal;
-
- /**
- * Only this class can construct instances.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- private R4ECommentEnum(int value, String name, String literal) {
- this.value = value;
- this.name = name;
- this.literal = literal;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public int getValue() {
- return value;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getName() {
- return name;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getLiteral() {
- return literal;
- }
-
- /**
- * Returns the literal value of the enumerator, which is its string representation.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public String toString() {
- return literal;
- }
-
-} //R4ECommentEnum
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4ECommentType.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4ECommentType.java
index 5226f1e..72cdcef 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4ECommentType.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4ECommentType.java
@@ -35,7 +35,7 @@
public interface R4ECommentType extends CommentType {
/**
* Returns the value of the '<em><b>Type</b></em>' attribute.
- * The literals are from the enumeration {@link org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentEnum}.
+ * The literals are from the enumeration {@link org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentClass}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Type</em>' attribute isn't clear,
@@ -43,23 +43,23 @@
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Type</em>' attribute.
- * @see org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentEnum
- * @see #setType(R4ECommentEnum)
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentClass
+ * @see #setType(R4ECommentClass)
* @see org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage#getR4ECommentType_Type()
* @model
* @generated
*/
- R4ECommentEnum getType();
+ R4ECommentClass getType();
/**
* Sets the value of the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentType#getType <em>Type</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Type</em>' attribute.
- * @see org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentEnum
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentClass
* @see #getType()
* @generated
*/
- void setType(R4ECommentEnum value);
+ void setType(R4ECommentClass value);
} // R4ECommentType
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EContextType.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EContextType.java
new file mode 100644
index 0000000..2aff5b6
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EContextType.java
@@ -0,0 +1,301 @@
+/**
+ * Copyright (c) 2010 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * Contributors:
+ * Alvaro Sanchez-Leon - Initial API and implementation
+ *
+ */
+package org.eclipse.mylyn.reviews.r4e.core.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>R4E Context Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage#getR4EContextType()
+ * @model
+ * @generated
+ */
+public enum R4EContextType implements Enumerator {
+ /**
+ * The '<em><b>R4E UNDEFINED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #R4E_UNDEFINED_VALUE
+ * @generated
+ * @ordered
+ */
+ R4E_UNDEFINED(4, "R4E_UNDEFINED", "R4E_UNDEFINED"),
+
+ /**
+ * The '<em><b>R4E ADDED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #R4E_ADDED_VALUE
+ * @generated
+ * @ordered
+ */
+ R4E_ADDED(0, "R4E_ADDED", "R4E_ADDED"),
+
+ /**
+ * The '<em><b>R4E DELETED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #R4E_DELETED_VALUE
+ * @generated
+ * @ordered
+ */
+ R4E_DELETED(1, "R4E_DELETED", "R4E_DELETED"),
+
+ /**
+ * The '<em><b>R4E MODIFIED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #R4E_MODIFIED_VALUE
+ * @generated
+ * @ordered
+ */
+ R4E_MODIFIED(2, "R4E_MODIFIED", "R4E_MODIFIED"),
+
+ /**
+ * The '<em><b>R4E REPLACED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #R4E_REPLACED_VALUE
+ * @generated
+ * @ordered
+ */
+ R4E_REPLACED(3, "R4E_REPLACED", "R4E_REPLACED");
+
+ /**
+ * The '<em><b>R4E UNDEFINED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>R4E UNDEFINED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #R4E_UNDEFINED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int R4E_UNDEFINED_VALUE = 4;
+
+ /**
+ * The '<em><b>R4E ADDED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>R4E ADDED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #R4E_ADDED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int R4E_ADDED_VALUE = 0;
+
+ /**
+ * The '<em><b>R4E DELETED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>R4E DELETED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #R4E_DELETED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int R4E_DELETED_VALUE = 1;
+
+ /**
+ * The '<em><b>R4E MODIFIED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>R4E MODIFIED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #R4E_MODIFIED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int R4E_MODIFIED_VALUE = 2;
+
+ /**
+ * The '<em><b>R4E REPLACED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>R4E REPLACED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #R4E_REPLACED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int R4E_REPLACED_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>R4E Context Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final R4EContextType[] VALUES_ARRAY =
+ new R4EContextType[] {
+ R4E_UNDEFINED,
+ R4E_ADDED,
+ R4E_DELETED,
+ R4E_MODIFIED,
+ R4E_REPLACED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>R4E Context Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<R4EContextType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>R4E Context Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static R4EContextType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ R4EContextType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>R4E Context Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static R4EContextType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ R4EContextType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>R4E Context Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static R4EContextType get(int value) {
+ switch (value) {
+ case R4E_UNDEFINED_VALUE: return R4E_UNDEFINED;
+ case R4E_ADDED_VALUE: return R4E_ADDED;
+ case R4E_DELETED_VALUE: return R4E_DELETED;
+ case R4E_MODIFIED_VALUE: return R4E_MODIFIED;
+ case R4E_REPLACED_VALUE: return R4E_REPLACED;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private R4EContextType(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //R4EContextType
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EFileContext.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EFileContext.java
index 3851b53..fc899da 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EFileContext.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EFileContext.java
@@ -15,6 +15,7 @@
package org.eclipse.mylyn.reviews.r4e.core.model;
import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
/**
* <!-- begin-user-doc -->
@@ -27,6 +28,8 @@
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileContext#getDeltas <em>Deltas</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileContext#getBase <em>Base</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileContext#getTarget <em>Target</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileContext#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileContext#getInfoAtt <em>Info Att</em>}</li>
* </ul>
* </p>
*
@@ -103,4 +106,50 @@
* @generated
*/
void setTarget(R4EFileVersion value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.mylyn.reviews.r4e.core.model.R4EContextType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4EContextType
+ * @see #setType(R4EContextType)
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage#getR4EFileContext_Type()
+ * @model
+ * @generated
+ */
+ R4EContextType getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileContext#getType <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' attribute.
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4EContextType
+ * @see #getType()
+ * @generated
+ */
+ void setType(R4EContextType value);
+
+ /**
+ * Returns the value of the '<em><b>Info Att</b></em>' map.
+ * The key is of type {@link java.lang.String},
+ * and the value is of type {@link java.lang.String},
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Info Att</em>' map isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Info Att</em>' map.
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage#getR4EFileContext_InfoAtt()
+ * @model mapType="org.eclipse.mylyn.reviews.r4e.core.model.MapKeyToInfoAttributes<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>"
+ * @generated
+ */
+ EMap<String, String> getInfoAtt();
} // R4EFileContext
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EFileVersion.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EFileVersion.java
index 7cfee57..35bec11 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EFileVersion.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EFileVersion.java
@@ -15,8 +15,12 @@
package org.eclipse.mylyn.reviews.r4e.core.model;
import org.eclipse.core.resources.IResource;
+
+import org.eclipse.emf.common.util.EMap;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.team.core.history.IFileRevision;
+
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>R4E File Version</b></em>'.
@@ -30,6 +34,9 @@
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion#getRepositoryPath <em>Repository Path</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion#getResource <em>Resource</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion#getLocalVersionID <em>Local Version ID</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion#getFileRevision <em>File Revision</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion#getInfoAtt <em>Info Att</em>}</li>
* </ul>
* </p>
*
@@ -38,7 +45,6 @@
* @generated
*/
public interface R4EFileVersion extends EObject {
-
/**
* Returns the value of the '<em><b>Platform URI</b></em>' attribute.
* <!-- begin-user-doc -->
@@ -168,4 +174,74 @@
* @generated
*/
void setResource(IResource value);
+
+ /**
+ * Returns the value of the '<em><b>Local Version ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Local Version ID</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Local Version ID</em>' attribute.
+ * @see #setLocalVersionID(String)
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage#getR4EFileVersion_LocalVersionID()
+ * @model
+ * @generated
+ */
+ String getLocalVersionID();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion#getLocalVersionID <em>Local Version ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Local Version ID</em>' attribute.
+ * @see #getLocalVersionID()
+ * @generated
+ */
+ void setLocalVersionID(String value);
+
+ /**
+ * Returns the value of the '<em><b>File Revision</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>File Revision</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>File Revision</em>' attribute.
+ * @see #setFileRevision(IFileRevision)
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage#getR4EFileVersion_FileRevision()
+ * @model dataType="org.eclipse.mylyn.reviews.r4e.core.model.IFileRevision"
+ * @generated
+ */
+ IFileRevision getFileRevision();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion#getFileRevision <em>File Revision</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>File Revision</em>' attribute.
+ * @see #getFileRevision()
+ * @generated
+ */
+ void setFileRevision(IFileRevision value);
+
+ /**
+ * Returns the value of the '<em><b>Info Att</b></em>' map.
+ * The key is of type {@link java.lang.String},
+ * and the value is of type {@link java.lang.String},
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Info Att</em>' map isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Info Att</em>' map.
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage#getR4EFileVersion_InfoAtt()
+ * @model mapType="org.eclipse.mylyn.reviews.r4e.core.model.MapKeyToInfoAttributes<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>"
+ * @generated
+ */
+ EMap<String, String> getInfoAtt();
+
} // R4EFileVersion
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EItem.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EItem.java
index 1d51e9a..0f1c588 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EItem.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EItem.java
@@ -14,8 +14,10 @@
*/
package org.eclipse.mylyn.reviews.r4e.core.model;
+import java.util.Date;
import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
import org.eclipse.mylyn.reviews.frame.core.model.Item;
/**
@@ -32,6 +34,9 @@
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EItem#getFileContextList <em>File Context List</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EItem#getRepositoryRef <em>Repository Ref</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EItem#getProjectURIs <em>Project UR Is</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EItem#getAuthorRep <em>Author Rep</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EItem#getSubmitted <em>Submitted</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EItem#getInfoAtt <em>Info Att</em>}</li>
* </ul>
* </p>
*
@@ -177,4 +182,73 @@
*/
EList<String> getProjectURIs();
+ /**
+ * Returns the value of the '<em><b>Author Rep</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Author Rep</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Author Rep</em>' attribute.
+ * @see #setAuthorRep(String)
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage#getR4EItem_AuthorRep()
+ * @model
+ * @generated
+ */
+ String getAuthorRep();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EItem#getAuthorRep <em>Author Rep</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Author Rep</em>' attribute.
+ * @see #getAuthorRep()
+ * @generated
+ */
+ void setAuthorRep(String value);
+
+ /**
+ * Returns the value of the '<em><b>Submitted</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Submitted</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Submitted</em>' attribute.
+ * @see #setSubmitted(Date)
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage#getR4EItem_Submitted()
+ * @model
+ * @generated
+ */
+ Date getSubmitted();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EItem#getSubmitted <em>Submitted</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Submitted</em>' attribute.
+ * @see #getSubmitted()
+ * @generated
+ */
+ void setSubmitted(Date value);
+
+ /**
+ * Returns the value of the '<em><b>Info Att</b></em>' map.
+ * The key is of type {@link java.lang.String},
+ * and the value is of type {@link java.lang.String},
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Info Att</em>' map isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Info Att</em>' map.
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage#getR4EItem_InfoAtt()
+ * @model mapType="org.eclipse.mylyn.reviews.r4e.core.model.MapKeyToInfoAttributes<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>"
+ * @generated
+ */
+ EMap<String, String> getInfoAtt();
+
} // R4EItem
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EParticipant.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EParticipant.java
index 67c5d85..0d60140 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EParticipant.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EParticipant.java
@@ -14,7 +14,9 @@
*/
package org.eclipse.mylyn.reviews.r4e.core.model;
+import java.util.Date;
import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
/**
* <!-- begin-user-doc -->
@@ -25,10 +27,10 @@
* The following features are supported:
* <ul>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant#getRoles <em>Roles</em>}</li>
- * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant#getSpentTime <em>Spent Time</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant#getFocusArea <em>Focus Area</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant#isIsPartOfDecision <em>Is Part Of Decision</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant#getReviewedContent <em>Reviewed Content</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant#getTimeLog <em>Time Log</em>}</li>
* </ul>
* </p>
*
@@ -56,32 +58,6 @@
EList<R4EUserRole> getRoles();
/**
- * Returns the value of the '<em><b>Spent Time</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Spent Time</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Spent Time</em>' attribute.
- * @see #setSpentTime(int)
- * @see org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage#getR4EParticipant_SpentTime()
- * @model
- * @generated
- */
- int getSpentTime();
-
- /**
- * Sets the value of the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant#getSpentTime <em>Spent Time</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Spent Time</em>' attribute.
- * @see #getSpentTime()
- * @generated
- */
- void setSpentTime(int value);
-
- /**
* Returns the value of the '<em><b>Focus Area</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
@@ -149,4 +125,21 @@
*/
EList<R4EID> getReviewedContent();
+ /**
+ * Returns the value of the '<em><b>Time Log</b></em>' map.
+ * The key is of type {@link java.util.Date},
+ * and the value is of type {@link java.lang.Integer},
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Time Log</em>' map isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Time Log</em>' map.
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage#getR4EParticipant_TimeLog()
+ * @model mapType="org.eclipse.mylyn.reviews.r4e.core.model.MapDateToDuration<org.eclipse.emf.ecore.EDate, org.eclipse.emf.ecore.EIntegerObject>"
+ * @generated
+ */
+ EMap<Date, Integer> getTimeLog();
+
} // R4EParticipant
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EReview.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EReview.java
index a778794..9a3765e 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EReview.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EReview.java
@@ -29,7 +29,6 @@
* The following features are supported:
* <ul>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EReview#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EReview#getCreationDate <em>Creation Date</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EReview#getProject <em>Project</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EReview#getComponents <em>Components</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EReview#getEntryCriteria <em>Entry Criteria</em>}</li>
@@ -80,32 +79,6 @@
void setName(String value);
/**
- * Returns the value of the '<em><b>Creation Date</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Creation Date</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Creation Date</em>' attribute.
- * @see #setCreationDate(Date)
- * @see org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage#getR4EReview_CreationDate()
- * @model
- * @generated
- */
- Date getCreationDate();
-
- /**
- * Sets the value of the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EReview#getCreationDate <em>Creation Date</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Creation Date</em>' attribute.
- * @see #getCreationDate()
- * @generated
- */
- void setCreationDate(Date value);
-
- /**
* Returns the value of the '<em><b>Project</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EUser.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EUser.java
index 60834c7..a051255 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EUser.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/R4EUser.java
@@ -41,7 +41,7 @@
* @model
* @generated
*/
-public interface R4EUser extends User {
+public interface R4EUser extends User, R4EReviewComponent {
/**
* Returns the value of the '<em><b>Group Paths</b></em>' attribute list.
* The list contents are of type {@link java.lang.String}.
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/RModelFactory.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/RModelFactory.java
index ef05b45..334d58d 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/RModelFactory.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/RModelFactory.java
@@ -18,6 +18,7 @@
import org.eclipse.emf.ecore.EFactory;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.Persistence;
import org.eclipse.mylyn.tasks.core.ITask;
+import org.eclipse.team.core.history.IFileRevision;
/**
* <!-- begin-user-doc -->
@@ -374,24 +375,44 @@
String convertR4EReviewType(R4EReviewType instanceValue);
/**
- * Returns an instance of data type '<em>R4E Comment Enum</em>' corresponding the given literal.
+ * Returns an instance of data type '<em>R4E Comment Class</em>' corresponding the given literal.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param literal a literal of the data type.
* @return a new instance value of the data type.
* @generated
*/
- R4ECommentEnum createR4ECommentEnum(String literal);
+ R4ECommentClass createR4ECommentClass(String literal);
/**
- * Returns a literal representation of an instance of data type '<em>R4E Comment Enum</em>'.
+ * Returns a literal representation of an instance of data type '<em>R4E Comment Class</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param instanceValue an instance value of the data type.
* @return a literal representation of the instance value.
* @generated
*/
- String convertR4ECommentEnum(R4ECommentEnum instanceValue);
+ String convertR4ECommentClass(R4ECommentClass instanceValue);
+
+ /**
+ * Returns an instance of data type '<em>R4E Context Type</em>' corresponding the given literal.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal a literal of the data type.
+ * @return a new instance value of the data type.
+ * @generated
+ */
+ R4EContextType createR4EContextType(String literal);
+
+ /**
+ * Returns a literal representation of an instance of data type '<em>R4E Context Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param instanceValue an instance value of the data type.
+ * @return a literal representation of the instance value.
+ * @generated
+ */
+ String convertR4EContextType(R4EContextType instanceValue);
/**
* Returns an instance of data type '<em>Mylyn Task</em>' corresponding the given literal.
@@ -434,6 +455,26 @@
String convertIResource(IResource instanceValue);
/**
+ * Returns an instance of data type '<em>IFile Revision</em>' corresponding the given literal.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal a literal of the data type.
+ * @return a new instance value of the data type.
+ * @generated
+ */
+ IFileRevision createIFileRevision(String literal);
+
+ /**
+ * Returns a literal representation of an instance of data type '<em>IFile Revision</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param instanceValue an instance value of the data type.
+ * @return a literal representation of the instance value.
+ * @generated
+ */
+ String convertIFileRevision(IFileRevision instanceValue);
+
+ /**
* Returns the package supported by this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/RModelPackage.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/RModelPackage.java
index 9defc39..fe6d9ad 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/RModelPackage.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/RModelPackage.java
@@ -289,22 +289,13 @@
int R4E_REVIEW__NAME = ModelPackage.REVIEW_FEATURE_COUNT + 0;
/**
- * The feature id for the '<em><b>Creation Date</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int R4E_REVIEW__CREATION_DATE = ModelPackage.REVIEW_FEATURE_COUNT + 1;
-
- /**
* The feature id for the '<em><b>Project</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int R4E_REVIEW__PROJECT = ModelPackage.REVIEW_FEATURE_COUNT + 2;
+ int R4E_REVIEW__PROJECT = ModelPackage.REVIEW_FEATURE_COUNT + 1;
/**
* The feature id for the '<em><b>Components</b></em>' attribute list.
@@ -313,7 +304,7 @@
* @generated
* @ordered
*/
- int R4E_REVIEW__COMPONENTS = ModelPackage.REVIEW_FEATURE_COUNT + 3;
+ int R4E_REVIEW__COMPONENTS = ModelPackage.REVIEW_FEATURE_COUNT + 2;
/**
* The feature id for the '<em><b>Entry Criteria</b></em>' attribute.
@@ -322,7 +313,7 @@
* @generated
* @ordered
*/
- int R4E_REVIEW__ENTRY_CRITERIA = ModelPackage.REVIEW_FEATURE_COUNT + 4;
+ int R4E_REVIEW__ENTRY_CRITERIA = ModelPackage.REVIEW_FEATURE_COUNT + 3;
/**
* The feature id for the '<em><b>Extra Notes</b></em>' attribute.
@@ -331,7 +322,7 @@
* @generated
* @ordered
*/
- int R4E_REVIEW__EXTRA_NOTES = ModelPackage.REVIEW_FEATURE_COUNT + 5;
+ int R4E_REVIEW__EXTRA_NOTES = ModelPackage.REVIEW_FEATURE_COUNT + 4;
/**
* The feature id for the '<em><b>Objectives</b></em>' attribute.
@@ -340,7 +331,7 @@
* @generated
* @ordered
*/
- int R4E_REVIEW__OBJECTIVES = ModelPackage.REVIEW_FEATURE_COUNT + 6;
+ int R4E_REVIEW__OBJECTIVES = ModelPackage.REVIEW_FEATURE_COUNT + 5;
/**
* The feature id for the '<em><b>Reference Material</b></em>' attribute.
@@ -349,7 +340,7 @@
* @generated
* @ordered
*/
- int R4E_REVIEW__REFERENCE_MATERIAL = ModelPackage.REVIEW_FEATURE_COUNT + 7;
+ int R4E_REVIEW__REFERENCE_MATERIAL = ModelPackage.REVIEW_FEATURE_COUNT + 6;
/**
* The feature id for the '<em><b>Decision</b></em>' containment reference.
@@ -358,7 +349,7 @@
* @generated
* @ordered
*/
- int R4E_REVIEW__DECISION = ModelPackage.REVIEW_FEATURE_COUNT + 8;
+ int R4E_REVIEW__DECISION = ModelPackage.REVIEW_FEATURE_COUNT + 7;
/**
* The feature id for the '<em><b>Start Date</b></em>' attribute.
@@ -367,7 +358,7 @@
* @generated
* @ordered
*/
- int R4E_REVIEW__START_DATE = ModelPackage.REVIEW_FEATURE_COUNT + 9;
+ int R4E_REVIEW__START_DATE = ModelPackage.REVIEW_FEATURE_COUNT + 8;
/**
* The feature id for the '<em><b>End Date</b></em>' attribute.
@@ -376,7 +367,7 @@
* @generated
* @ordered
*/
- int R4E_REVIEW__END_DATE = ModelPackage.REVIEW_FEATURE_COUNT + 10;
+ int R4E_REVIEW__END_DATE = ModelPackage.REVIEW_FEATURE_COUNT + 9;
/**
* The feature id for the '<em><b>Xml Version</b></em>' attribute.
@@ -385,7 +376,7 @@
* @generated
* @ordered
*/
- int R4E_REVIEW__XML_VERSION = ModelPackage.REVIEW_FEATURE_COUNT + 11;
+ int R4E_REVIEW__XML_VERSION = ModelPackage.REVIEW_FEATURE_COUNT + 10;
/**
* The feature id for the '<em><b>Anomaly Template</b></em>' containment reference.
@@ -394,7 +385,7 @@
* @generated
* @ordered
*/
- int R4E_REVIEW__ANOMALY_TEMPLATE = ModelPackage.REVIEW_FEATURE_COUNT + 12;
+ int R4E_REVIEW__ANOMALY_TEMPLATE = ModelPackage.REVIEW_FEATURE_COUNT + 11;
/**
* The feature id for the '<em><b>Type</b></em>' attribute.
@@ -403,7 +394,7 @@
* @generated
* @ordered
*/
- int R4E_REVIEW__TYPE = ModelPackage.REVIEW_FEATURE_COUNT + 13;
+ int R4E_REVIEW__TYPE = ModelPackage.REVIEW_FEATURE_COUNT + 12;
/**
* The feature id for the '<em><b>Users Map</b></em>' map.
@@ -412,7 +403,7 @@
* @generated
* @ordered
*/
- int R4E_REVIEW__USERS_MAP = ModelPackage.REVIEW_FEATURE_COUNT + 14;
+ int R4E_REVIEW__USERS_MAP = ModelPackage.REVIEW_FEATURE_COUNT + 13;
/**
* The feature id for the '<em><b>Created By</b></em>' reference.
@@ -421,7 +412,7 @@
* @generated
* @ordered
*/
- int R4E_REVIEW__CREATED_BY = ModelPackage.REVIEW_FEATURE_COUNT + 15;
+ int R4E_REVIEW__CREATED_BY = ModelPackage.REVIEW_FEATURE_COUNT + 14;
/**
* The feature id for the '<em><b>Ids Map</b></em>' map.
@@ -430,7 +421,7 @@
* @generated
* @ordered
*/
- int R4E_REVIEW__IDS_MAP = ModelPackage.REVIEW_FEATURE_COUNT + 16;
+ int R4E_REVIEW__IDS_MAP = ModelPackage.REVIEW_FEATURE_COUNT + 15;
/**
* The number of structural features of the '<em>R4E Review</em>' class.
@@ -439,7 +430,7 @@
* @generated
* @ordered
*/
- int R4E_REVIEW_FEATURE_COUNT = ModelPackage.REVIEW_FEATURE_COUNT + 17;
+ int R4E_REVIEW_FEATURE_COUNT = ModelPackage.REVIEW_FEATURE_COUNT + 16;
/**
* The meta object id for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EAnomalyImpl <em>R4E Anomaly</em>}' class.
@@ -695,13 +686,13 @@
int R4E_ANOMALY__DECIDED_BY_ID = ModelPackage.TOPIC_FEATURE_COUNT + 17;
/**
- * The feature id for the '<em><b>Fiexe By ID</b></em>' attribute.
+ * The feature id for the '<em><b>Fixed By ID</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int R4E_ANOMALY__FIEXE_BY_ID = ModelPackage.TOPIC_FEATURE_COUNT + 18;
+ int R4E_ANOMALY__FIXED_BY_ID = ModelPackage.TOPIC_FEATURE_COUNT + 18;
/**
* The feature id for the '<em><b>Follow Up By ID</b></em>' attribute.
@@ -786,15 +777,6 @@
int R4E_FORMAL_REVIEW__NAME = R4E_REVIEW__NAME;
/**
- * The feature id for the '<em><b>Creation Date</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int R4E_FORMAL_REVIEW__CREATION_DATE = R4E_REVIEW__CREATION_DATE;
-
- /**
* The feature id for the '<em><b>Project</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1114,13 +1096,22 @@
int R4E_USER__ID = ModelPackage.USER__ID;
/**
+ * The feature id for the '<em><b>Enabled</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int R4E_USER__ENABLED = ModelPackage.USER_FEATURE_COUNT + 0;
+
+ /**
* The feature id for the '<em><b>Group Paths</b></em>' attribute list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int R4E_USER__GROUP_PATHS = ModelPackage.USER_FEATURE_COUNT + 0;
+ int R4E_USER__GROUP_PATHS = ModelPackage.USER_FEATURE_COUNT + 1;
/**
* The feature id for the '<em><b>Sequence ID Counter</b></em>' attribute.
@@ -1129,7 +1120,7 @@
* @generated
* @ordered
*/
- int R4E_USER__SEQUENCE_ID_COUNTER = ModelPackage.USER_FEATURE_COUNT + 1;
+ int R4E_USER__SEQUENCE_ID_COUNTER = ModelPackage.USER_FEATURE_COUNT + 2;
/**
* The feature id for the '<em><b>Added Comments</b></em>' containment reference list.
@@ -1138,7 +1129,7 @@
* @generated
* @ordered
*/
- int R4E_USER__ADDED_COMMENTS = ModelPackage.USER_FEATURE_COUNT + 2;
+ int R4E_USER__ADDED_COMMENTS = ModelPackage.USER_FEATURE_COUNT + 3;
/**
* The feature id for the '<em><b>Added Items</b></em>' containment reference list.
@@ -1147,7 +1138,7 @@
* @generated
* @ordered
*/
- int R4E_USER__ADDED_ITEMS = ModelPackage.USER_FEATURE_COUNT + 3;
+ int R4E_USER__ADDED_ITEMS = ModelPackage.USER_FEATURE_COUNT + 4;
/**
* The feature id for the '<em><b>Review Created By Me</b></em>' attribute.
@@ -1156,7 +1147,7 @@
* @generated
* @ordered
*/
- int R4E_USER__REVIEW_CREATED_BY_ME = ModelPackage.USER_FEATURE_COUNT + 4;
+ int R4E_USER__REVIEW_CREATED_BY_ME = ModelPackage.USER_FEATURE_COUNT + 5;
/**
* The feature id for the '<em><b>Review Instance</b></em>' reference.
@@ -1165,7 +1156,7 @@
* @generated
* @ordered
*/
- int R4E_USER__REVIEW_INSTANCE = ModelPackage.USER_FEATURE_COUNT + 5;
+ int R4E_USER__REVIEW_INSTANCE = ModelPackage.USER_FEATURE_COUNT + 6;
/**
* The feature id for the '<em><b>Xml Version</b></em>' attribute.
@@ -1174,7 +1165,7 @@
* @generated
* @ordered
*/
- int R4E_USER__XML_VERSION = ModelPackage.USER_FEATURE_COUNT + 6;
+ int R4E_USER__XML_VERSION = ModelPackage.USER_FEATURE_COUNT + 7;
/**
* The feature id for the '<em><b>Review Completed</b></em>' attribute.
@@ -1183,7 +1174,7 @@
* @generated
* @ordered
*/
- int R4E_USER__REVIEW_COMPLETED = ModelPackage.USER_FEATURE_COUNT + 7;
+ int R4E_USER__REVIEW_COMPLETED = ModelPackage.USER_FEATURE_COUNT + 8;
/**
* The feature id for the '<em><b>Review Completed Code</b></em>' attribute.
@@ -1192,7 +1183,7 @@
* @generated
* @ordered
*/
- int R4E_USER__REVIEW_COMPLETED_CODE = ModelPackage.USER_FEATURE_COUNT + 8;
+ int R4E_USER__REVIEW_COMPLETED_CODE = ModelPackage.USER_FEATURE_COUNT + 9;
/**
* The number of structural features of the '<em>R4E User</em>' class.
@@ -1201,7 +1192,7 @@
* @generated
* @ordered
*/
- int R4E_USER_FEATURE_COUNT = ModelPackage.USER_FEATURE_COUNT + 9;
+ int R4E_USER_FEATURE_COUNT = ModelPackage.USER_FEATURE_COUNT + 10;
/**
* The meta object id for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EParticipantImpl <em>R4E Participant</em>}' class.
@@ -1223,6 +1214,15 @@
int R4E_PARTICIPANT__ID = R4E_USER__ID;
/**
+ * The feature id for the '<em><b>Enabled</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int R4E_PARTICIPANT__ENABLED = R4E_USER__ENABLED;
+
+ /**
* The feature id for the '<em><b>Group Paths</b></em>' attribute list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1313,22 +1313,13 @@
int R4E_PARTICIPANT__ROLES = R4E_USER_FEATURE_COUNT + 0;
/**
- * The feature id for the '<em><b>Spent Time</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int R4E_PARTICIPANT__SPENT_TIME = R4E_USER_FEATURE_COUNT + 1;
-
- /**
* The feature id for the '<em><b>Focus Area</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int R4E_PARTICIPANT__FOCUS_AREA = R4E_USER_FEATURE_COUNT + 2;
+ int R4E_PARTICIPANT__FOCUS_AREA = R4E_USER_FEATURE_COUNT + 1;
/**
* The feature id for the '<em><b>Is Part Of Decision</b></em>' attribute.
@@ -1337,7 +1328,7 @@
* @generated
* @ordered
*/
- int R4E_PARTICIPANT__IS_PART_OF_DECISION = R4E_USER_FEATURE_COUNT + 3;
+ int R4E_PARTICIPANT__IS_PART_OF_DECISION = R4E_USER_FEATURE_COUNT + 2;
/**
* The feature id for the '<em><b>Reviewed Content</b></em>' reference list.
@@ -1346,7 +1337,16 @@
* @generated
* @ordered
*/
- int R4E_PARTICIPANT__REVIEWED_CONTENT = R4E_USER_FEATURE_COUNT + 4;
+ int R4E_PARTICIPANT__REVIEWED_CONTENT = R4E_USER_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Time Log</b></em>' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int R4E_PARTICIPANT__TIME_LOG = R4E_USER_FEATURE_COUNT + 4;
/**
* The number of structural features of the '<em>R4E Participant</em>' class.
@@ -1593,13 +1593,40 @@
int R4E_ITEM__PROJECT_UR_IS = R4EID_COMPONENT_FEATURE_COUNT + 7;
/**
+ * The feature id for the '<em><b>Author Rep</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int R4E_ITEM__AUTHOR_REP = R4EID_COMPONENT_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Submitted</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int R4E_ITEM__SUBMITTED = R4EID_COMPONENT_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Info Att</b></em>' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int R4E_ITEM__INFO_ATT = R4EID_COMPONENT_FEATURE_COUNT + 10;
+
+ /**
* The number of structural features of the '<em>R4E Item</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int R4E_ITEM_FEATURE_COUNT = R4EID_COMPONENT_FEATURE_COUNT + 8;
+ int R4E_ITEM_FEATURE_COUNT = R4EID_COMPONENT_FEATURE_COUNT + 11;
/**
* The feature id for the '<em><b>Location</b></em>' containment reference.
@@ -1909,13 +1936,31 @@
int R4E_FILE_CONTEXT__TARGET = R4EID_COMPONENT_FEATURE_COUNT + 2;
/**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int R4E_FILE_CONTEXT__TYPE = R4EID_COMPONENT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Info Att</b></em>' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int R4E_FILE_CONTEXT__INFO_ATT = R4EID_COMPONENT_FEATURE_COUNT + 4;
+
+ /**
* The number of structural features of the '<em>R4E File Context</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int R4E_FILE_CONTEXT_FEATURE_COUNT = R4EID_COMPONENT_FEATURE_COUNT + 3;
+ int R4E_FILE_CONTEXT_FEATURE_COUNT = R4EID_COMPONENT_FEATURE_COUNT + 5;
/**
* The meta object id for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EDeltaImpl <em>R4E Delta</em>}' class.
@@ -2093,13 +2138,40 @@
int R4E_FILE_VERSION__RESOURCE = 4;
/**
+ * The feature id for the '<em><b>Local Version ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int R4E_FILE_VERSION__LOCAL_VERSION_ID = 5;
+
+ /**
+ * The feature id for the '<em><b>File Revision</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int R4E_FILE_VERSION__FILE_REVISION = 6;
+
+ /**
+ * The feature id for the '<em><b>Info Att</b></em>' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int R4E_FILE_VERSION__INFO_ATT = 7;
+
+ /**
* The number of structural features of the '<em>R4E File Version</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int R4E_FILE_VERSION_FEATURE_COUNT = 5;
+ int R4E_FILE_VERSION_FEATURE_COUNT = 8;
/**
* The meta object id for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.MapNameToReviewImpl <em>Map Name To Review</em>}' class.
@@ -2378,6 +2450,80 @@
int R4E_ANOMALY_TEXT_POSITION_FEATURE_COUNT = R4E_TEXT_POSITION_FEATURE_COUNT + 1;
/**
+ * The meta object id for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.MapDateToDurationImpl <em>Map Date To Duration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.impl.MapDateToDurationImpl
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getMapDateToDuration()
+ * @generated
+ */
+ int MAP_DATE_TO_DURATION = 30;
+
+ /**
+ * The feature id for the '<em><b>Key</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAP_DATE_TO_DURATION__KEY = 0;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAP_DATE_TO_DURATION__VALUE = 1;
+
+ /**
+ * The number of structural features of the '<em>Map Date To Duration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAP_DATE_TO_DURATION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.MapKeyToInfoAttributesImpl <em>Map Key To Info Attributes</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.impl.MapKeyToInfoAttributesImpl
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getMapKeyToInfoAttributes()
+ * @generated
+ */
+ int MAP_KEY_TO_INFO_ATTRIBUTES = 31;
+
+ /**
+ * The feature id for the '<em><b>Key</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAP_KEY_TO_INFO_ATTRIBUTES__KEY = 0;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAP_KEY_TO_INFO_ATTRIBUTES__VALUE = 1;
+
+ /**
+ * The number of structural features of the '<em>Map Key To Info Attributes</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAP_KEY_TO_INFO_ATTRIBUTES_FEATURE_COUNT = 2;
+
+ /**
* The meta object id for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomalyState <em>R4E Anomaly State</em>}' enum.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -2385,7 +2531,7 @@
* @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getR4EAnomalyState()
* @generated
*/
- int R4E_ANOMALY_STATE = 30;
+ int R4E_ANOMALY_STATE = 32;
/**
* The meta object id for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomalyRank <em>R4E Anomaly Rank</em>}' enum.
@@ -2395,7 +2541,7 @@
* @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getR4EAnomalyRank()
* @generated
*/
- int R4E_ANOMALY_RANK = 31;
+ int R4E_ANOMALY_RANK = 33;
/**
* The meta object id for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewPhase <em>R4E Review Phase</em>}' enum.
@@ -2405,7 +2551,7 @@
* @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getR4EReviewPhase()
* @generated
*/
- int R4E_REVIEW_PHASE = 32;
+ int R4E_REVIEW_PHASE = 34;
/**
* The meta object id for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EUserRole <em>R4E User Role</em>}' enum.
@@ -2415,7 +2561,7 @@
* @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getR4EUserRole()
* @generated
*/
- int R4E_USER_ROLE = 33;
+ int R4E_USER_ROLE = 35;
/**
* The meta object id for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EDecision <em>R4E Decision</em>}' enum.
@@ -2425,7 +2571,7 @@
* @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getR4EDecision()
* @generated
*/
- int R4E_DECISION = 34;
+ int R4E_DECISION = 36;
/**
* The meta object id for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewType <em>R4E Review Type</em>}' enum.
@@ -2435,17 +2581,27 @@
* @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getR4EReviewType()
* @generated
*/
- int R4E_REVIEW_TYPE = 35;
+ int R4E_REVIEW_TYPE = 37;
/**
- * The meta object id for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentEnum <em>R4E Comment Enum</em>}' enum.
+ * The meta object id for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentClass <em>R4E Comment Class</em>}' enum.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentEnum
- * @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getR4ECommentEnum()
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentClass
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getR4ECommentClass()
* @generated
*/
- int R4E_COMMENT_ENUM = 36;
+ int R4E_COMMENT_CLASS = 38;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EContextType <em>R4E Context Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4EContextType
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getR4EContextType()
+ * @generated
+ */
+ int R4E_CONTEXT_TYPE = 39;
/**
* The meta object id for the '<em>Mylyn Task</em>' data type.
@@ -2455,7 +2611,7 @@
* @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getMylynTask()
* @generated
*/
- int MYLYN_TASK = 37;
+ int MYLYN_TASK = 40;
/**
* The meta object id for the '<em>IResource</em>' data type.
@@ -2465,7 +2621,7 @@
* @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getIResource()
* @generated
*/
- int IRESOURCE = 38;
+ int IRESOURCE = 41;
/**
@@ -2476,10 +2632,20 @@
* @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getURI()
* @generated
*/
- int URI = 39;
+ int URI = 42;
/**
+ * The meta object id for the '<em>IFile Revision</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.team.core.history.IFileRevision
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getIFileRevision()
+ * @generated
+ */
+ int IFILE_REVISION = 43;
+
+ /**
* Returns the meta object for class '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewGroup <em>R4E Review Group</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -2632,17 +2798,6 @@
EAttribute getR4EReview_Name();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EReview#getCreationDate <em>Creation Date</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Creation Date</em>'.
- * @see org.eclipse.mylyn.reviews.r4e.core.model.R4EReview#getCreationDate()
- * @see #getR4EReview()
- * @generated
- */
- EAttribute getR4EReview_CreationDate();
-
- /**
* Returns the meta object for the attribute '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EReview#getProject <em>Project</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -2983,15 +3138,15 @@
EAttribute getR4EAnomaly_DecidedByID();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly#getFiexeByID <em>Fiexe By ID</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly#getFixedByID <em>Fixed By ID</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Fiexe By ID</em>'.
- * @see org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly#getFiexeByID()
+ * @return the meta object for the attribute '<em>Fixed By ID</em>'.
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly#getFixedByID()
* @see #getR4EAnomaly()
* @generated
*/
- EAttribute getR4EAnomaly_FiexeByID();
+ EAttribute getR4EAnomaly_FixedByID();
/**
* Returns the meta object for the attribute '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly#getFollowUpByID <em>Follow Up By ID</em>}'.
@@ -3286,17 +3441,6 @@
EAttribute getR4EParticipant_Roles();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant#getSpentTime <em>Spent Time</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Spent Time</em>'.
- * @see org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant#getSpentTime()
- * @see #getR4EParticipant()
- * @generated
- */
- EAttribute getR4EParticipant_SpentTime();
-
- /**
* Returns the meta object for the attribute '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant#getFocusArea <em>Focus Area</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -3330,6 +3474,17 @@
EReference getR4EParticipant_ReviewedContent();
/**
+ * Returns the meta object for the map '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant#getTimeLog <em>Time Log</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the map '<em>Time Log</em>'.
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant#getTimeLog()
+ * @see #getR4EParticipant()
+ * @generated
+ */
+ EReference getR4EParticipant_TimeLog();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EItem <em>R4E Item</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -3406,6 +3561,39 @@
EAttribute getR4EItem_ProjectURIs();
/**
+ * Returns the meta object for the attribute '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EItem#getAuthorRep <em>Author Rep</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Author Rep</em>'.
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4EItem#getAuthorRep()
+ * @see #getR4EItem()
+ * @generated
+ */
+ EAttribute getR4EItem_AuthorRep();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EItem#getSubmitted <em>Submitted</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Submitted</em>'.
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4EItem#getSubmitted()
+ * @see #getR4EItem()
+ * @generated
+ */
+ EAttribute getR4EItem_Submitted();
+
+ /**
+ * Returns the meta object for the map '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EItem#getInfoAtt <em>Info Att</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the map '<em>Info Att</em>'.
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4EItem#getInfoAtt()
+ * @see #getR4EItem()
+ * @generated
+ */
+ EReference getR4EItem_InfoAtt();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4ETextContent <em>R4E Text Content</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -3607,6 +3795,28 @@
EReference getR4EFileContext_Target();
/**
+ * Returns the meta object for the attribute '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileContext#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4EFileContext#getType()
+ * @see #getR4EFileContext()
+ * @generated
+ */
+ EAttribute getR4EFileContext_Type();
+
+ /**
+ * Returns the meta object for the map '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileContext#getInfoAtt <em>Info Att</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the map '<em>Info Att</em>'.
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4EFileContext#getInfoAtt()
+ * @see #getR4EFileContext()
+ * @generated
+ */
+ EReference getR4EFileContext_InfoAtt();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EDelta <em>R4E Delta</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -3801,6 +4011,39 @@
EAttribute getR4EFileVersion_Resource();
/**
+ * Returns the meta object for the attribute '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion#getLocalVersionID <em>Local Version ID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Local Version ID</em>'.
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion#getLocalVersionID()
+ * @see #getR4EFileVersion()
+ * @generated
+ */
+ EAttribute getR4EFileVersion_LocalVersionID();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion#getFileRevision <em>File Revision</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>File Revision</em>'.
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion#getFileRevision()
+ * @see #getR4EFileVersion()
+ * @generated
+ */
+ EAttribute getR4EFileVersion_FileRevision();
+
+ /**
+ * Returns the meta object for the map '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion#getInfoAtt <em>Info Att</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the map '<em>Info Att</em>'.
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion#getInfoAtt()
+ * @see #getR4EFileVersion()
+ * @generated
+ */
+ EReference getR4EFileVersion_InfoAtt();
+
+ /**
* Returns the meta object for class '{@link java.util.Map.Entry <em>Map Name To Review</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -4044,6 +4287,74 @@
EReference getR4EAnomalyTextPosition_File();
/**
+ * Returns the meta object for class '{@link java.util.Map.Entry <em>Map Date To Duration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Map Date To Duration</em>'.
+ * @see java.util.Map.Entry
+ * @model keyDataType="org.eclipse.emf.ecore.EDate"
+ * valueDataType="org.eclipse.emf.ecore.EIntegerObject"
+ * @generated
+ */
+ EClass getMapDateToDuration();
+
+ /**
+ * Returns the meta object for the attribute '{@link java.util.Map.Entry <em>Key</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Key</em>'.
+ * @see java.util.Map.Entry
+ * @see #getMapDateToDuration()
+ * @generated
+ */
+ EAttribute getMapDateToDuration_Key();
+
+ /**
+ * Returns the meta object for the attribute '{@link java.util.Map.Entry <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see java.util.Map.Entry
+ * @see #getMapDateToDuration()
+ * @generated
+ */
+ EAttribute getMapDateToDuration_Value();
+
+ /**
+ * Returns the meta object for class '{@link java.util.Map.Entry <em>Map Key To Info Attributes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Map Key To Info Attributes</em>'.
+ * @see java.util.Map.Entry
+ * @model keyDataType="org.eclipse.emf.ecore.EString"
+ * valueDataType="org.eclipse.emf.ecore.EString"
+ * @generated
+ */
+ EClass getMapKeyToInfoAttributes();
+
+ /**
+ * Returns the meta object for the attribute '{@link java.util.Map.Entry <em>Key</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Key</em>'.
+ * @see java.util.Map.Entry
+ * @see #getMapKeyToInfoAttributes()
+ * @generated
+ */
+ EAttribute getMapKeyToInfoAttributes_Key();
+
+ /**
+ * Returns the meta object for the attribute '{@link java.util.Map.Entry <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see java.util.Map.Entry
+ * @see #getMapKeyToInfoAttributes()
+ * @generated
+ */
+ EAttribute getMapKeyToInfoAttributes_Value();
+
+ /**
* Returns the meta object for enum '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomalyState <em>R4E Anomaly State</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -4104,14 +4415,24 @@
EEnum getR4EReviewType();
/**
- * Returns the meta object for enum '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentEnum <em>R4E Comment Enum</em>}'.
+ * Returns the meta object for enum '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentClass <em>R4E Comment Class</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for enum '<em>R4E Comment Enum</em>'.
- * @see org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentEnum
+ * @return the meta object for enum '<em>R4E Comment Class</em>'.
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentClass
* @generated
*/
- EEnum getR4ECommentEnum();
+ EEnum getR4ECommentClass();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EContextType <em>R4E Context Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>R4E Context Type</em>'.
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4EContextType
+ * @generated
+ */
+ EEnum getR4EContextType();
/**
* Returns the meta object for data type '{@link org.eclipse.mylyn.tasks.core.ITask <em>Mylyn Task</em>}'.
@@ -4147,6 +4468,17 @@
EDataType getURI();
/**
+ * Returns the meta object for data type '{@link org.eclipse.team.core.history.IFileRevision <em>IFile Revision</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>IFile Revision</em>'.
+ * @see org.eclipse.team.core.history.IFileRevision
+ * @model instanceClass="org.eclipse.team.core.history.IFileRevision"
+ * @generated
+ */
+ EDataType getIFileRevision();
+
+ /**
* Returns the factory that creates the instances of the model.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -4285,14 +4617,6 @@
EAttribute R4E_REVIEW__NAME = eINSTANCE.getR4EReview_Name();
/**
- * The meta object literal for the '<em><b>Creation Date</b></em>' attribute feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EAttribute R4E_REVIEW__CREATION_DATE = eINSTANCE.getR4EReview_CreationDate();
-
- /**
* The meta object literal for the '<em><b>Project</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -4543,12 +4867,12 @@
EAttribute R4E_ANOMALY__DECIDED_BY_ID = eINSTANCE.getR4EAnomaly_DecidedByID();
/**
- * The meta object literal for the '<em><b>Fiexe By ID</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Fixed By ID</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute R4E_ANOMALY__FIEXE_BY_ID = eINSTANCE.getR4EAnomaly_FiexeByID();
+ EAttribute R4E_ANOMALY__FIXED_BY_ID = eINSTANCE.getR4EAnomaly_FixedByID();
/**
* The meta object literal for the '<em><b>Follow Up By ID</b></em>' attribute feature.
@@ -4777,14 +5101,6 @@
EAttribute R4E_PARTICIPANT__ROLES = eINSTANCE.getR4EParticipant_Roles();
/**
- * The meta object literal for the '<em><b>Spent Time</b></em>' attribute feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EAttribute R4E_PARTICIPANT__SPENT_TIME = eINSTANCE.getR4EParticipant_SpentTime();
-
- /**
* The meta object literal for the '<em><b>Focus Area</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -4809,6 +5125,14 @@
EReference R4E_PARTICIPANT__REVIEWED_CONTENT = eINSTANCE.getR4EParticipant_ReviewedContent();
/**
+ * The meta object literal for the '<em><b>Time Log</b></em>' map feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference R4E_PARTICIPANT__TIME_LOG = eINSTANCE.getR4EParticipant_TimeLog();
+
+ /**
* The meta object literal for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl <em>R4E Item</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -4867,6 +5191,30 @@
EAttribute R4E_ITEM__PROJECT_UR_IS = eINSTANCE.getR4EItem_ProjectURIs();
/**
+ * The meta object literal for the '<em><b>Author Rep</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute R4E_ITEM__AUTHOR_REP = eINSTANCE.getR4EItem_AuthorRep();
+
+ /**
+ * The meta object literal for the '<em><b>Submitted</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute R4E_ITEM__SUBMITTED = eINSTANCE.getR4EItem_Submitted();
+
+ /**
+ * The meta object literal for the '<em><b>Info Att</b></em>' map feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference R4E_ITEM__INFO_ATT = eINSTANCE.getR4EItem_InfoAtt();
+
+ /**
* The meta object literal for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4ETextContentImpl <em>R4E Text Content</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -5035,6 +5383,22 @@
EReference R4E_FILE_CONTEXT__TARGET = eINSTANCE.getR4EFileContext_Target();
/**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute R4E_FILE_CONTEXT__TYPE = eINSTANCE.getR4EFileContext_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Info Att</b></em>' map feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference R4E_FILE_CONTEXT__INFO_ATT = eINSTANCE.getR4EFileContext_InfoAtt();
+
+ /**
* The meta object literal for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EDeltaImpl <em>R4E Delta</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -5191,6 +5555,30 @@
EAttribute R4E_FILE_VERSION__RESOURCE = eINSTANCE.getR4EFileVersion_Resource();
/**
+ * The meta object literal for the '<em><b>Local Version ID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute R4E_FILE_VERSION__LOCAL_VERSION_ID = eINSTANCE.getR4EFileVersion_LocalVersionID();
+
+ /**
+ * The meta object literal for the '<em><b>File Revision</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute R4E_FILE_VERSION__FILE_REVISION = eINSTANCE.getR4EFileVersion_FileRevision();
+
+ /**
+ * The meta object literal for the '<em><b>Info Att</b></em>' map feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference R4E_FILE_VERSION__INFO_ATT = eINSTANCE.getR4EFileVersion_InfoAtt();
+
+ /**
* The meta object literal for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.MapNameToReviewImpl <em>Map Name To Review</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -5381,6 +5769,58 @@
EReference R4E_ANOMALY_TEXT_POSITION__FILE = eINSTANCE.getR4EAnomalyTextPosition_File();
/**
+ * The meta object literal for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.MapDateToDurationImpl <em>Map Date To Duration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.impl.MapDateToDurationImpl
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getMapDateToDuration()
+ * @generated
+ */
+ EClass MAP_DATE_TO_DURATION = eINSTANCE.getMapDateToDuration();
+
+ /**
+ * The meta object literal for the '<em><b>Key</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MAP_DATE_TO_DURATION__KEY = eINSTANCE.getMapDateToDuration_Key();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MAP_DATE_TO_DURATION__VALUE = eINSTANCE.getMapDateToDuration_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.MapKeyToInfoAttributesImpl <em>Map Key To Info Attributes</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.impl.MapKeyToInfoAttributesImpl
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getMapKeyToInfoAttributes()
+ * @generated
+ */
+ EClass MAP_KEY_TO_INFO_ATTRIBUTES = eINSTANCE.getMapKeyToInfoAttributes();
+
+ /**
+ * The meta object literal for the '<em><b>Key</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MAP_KEY_TO_INFO_ATTRIBUTES__KEY = eINSTANCE.getMapKeyToInfoAttributes_Key();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MAP_KEY_TO_INFO_ATTRIBUTES__VALUE = eINSTANCE.getMapKeyToInfoAttributes_Value();
+
+ /**
* The meta object literal for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomalyState <em>R4E Anomaly State</em>}' enum.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -5441,14 +5881,24 @@
EEnum R4E_REVIEW_TYPE = eINSTANCE.getR4EReviewType();
/**
- * The meta object literal for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentEnum <em>R4E Comment Enum</em>}' enum.
+ * The meta object literal for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentClass <em>R4E Comment Class</em>}' enum.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentEnum
- * @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getR4ECommentEnum()
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentClass
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getR4ECommentClass()
* @generated
*/
- EEnum R4E_COMMENT_ENUM = eINSTANCE.getR4ECommentEnum();
+ EEnum R4E_COMMENT_CLASS = eINSTANCE.getR4ECommentClass();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.R4EContextType <em>R4E Context Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.R4EContextType
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getR4EContextType()
+ * @generated
+ */
+ EEnum R4E_CONTEXT_TYPE = eINSTANCE.getR4EContextType();
/**
* The meta object literal for the '<em>Mylyn Task</em>' data type.
@@ -5480,6 +5930,16 @@
*/
EDataType URI = eINSTANCE.getURI();
+ /**
+ * The meta object literal for the '<em>IFile Revision</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.team.core.history.IFileRevision
+ * @see org.eclipse.mylyn.reviews.r4e.core.model.impl.RModelPackageImpl#getIFileRevision()
+ * @generated
+ */
+ EDataType IFILE_REVISION = eINSTANCE.getIFileRevision();
+
}
} //RModelPackage
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/MapDateToDurationImpl.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/MapDateToDurationImpl.java
new file mode 100644
index 0000000..a5d1e92
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/MapDateToDurationImpl.java
@@ -0,0 +1,312 @@
+/**
+ * Copyright (c) 2010 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * Contributors:
+ * Alvaro Sanchez-Leon - Initial API and implementation
+ *
+ */
+package org.eclipse.mylyn.reviews.r4e.core.model.impl;
+
+import java.util.Date;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.BasicEMap;
+import org.eclipse.emf.common.util.EMap;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Map Date To Duration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.MapDateToDurationImpl#getTypedKey <em>Key</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.MapDateToDurationImpl#getTypedValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MapDateToDurationImpl extends EObjectImpl implements BasicEMap.Entry<Date,Integer> {
+ /**
+ * The default value of the '{@link #getTypedKey() <em>Key</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypedKey()
+ * @generated
+ * @ordered
+ */
+ protected static final Date KEY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTypedKey() <em>Key</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypedKey()
+ * @generated
+ * @ordered
+ */
+ protected Date key = KEY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getTypedValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypedValue()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTypedValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypedValue()
+ * @generated
+ * @ordered
+ */
+ protected Integer value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MapDateToDurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RModelPackage.Literals.MAP_DATE_TO_DURATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getTypedKey() {
+ return key;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTypedKey(Date newKey) {
+ Date oldKey = key;
+ key = newKey;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.MAP_DATE_TO_DURATION__KEY, oldKey, key));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getTypedValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTypedValue(Integer newValue) {
+ Integer oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.MAP_DATE_TO_DURATION__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case RModelPackage.MAP_DATE_TO_DURATION__KEY:
+ return getTypedKey();
+ case RModelPackage.MAP_DATE_TO_DURATION__VALUE:
+ return getTypedValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RModelPackage.MAP_DATE_TO_DURATION__KEY:
+ setTypedKey((Date)newValue);
+ return;
+ case RModelPackage.MAP_DATE_TO_DURATION__VALUE:
+ setTypedValue((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RModelPackage.MAP_DATE_TO_DURATION__KEY:
+ setTypedKey(KEY_EDEFAULT);
+ return;
+ case RModelPackage.MAP_DATE_TO_DURATION__VALUE:
+ setTypedValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RModelPackage.MAP_DATE_TO_DURATION__KEY:
+ return KEY_EDEFAULT == null ? key != null : !KEY_EDEFAULT.equals(key);
+ case RModelPackage.MAP_DATE_TO_DURATION__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (key: ");
+ result.append(key);
+ result.append(", value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int hash = -1;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getHash() {
+ if (hash == -1) {
+ Object theKey = getKey();
+ hash = (theKey == null ? 0 : theKey.hashCode());
+ }
+ return hash;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHash(int hash) {
+ this.hash = hash;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getKey() {
+ return getTypedKey();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setKey(Date key) {
+ setTypedKey(key);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getValue() {
+ return getTypedValue();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer setValue(Integer value) {
+ Integer oldValue = getValue();
+ setTypedValue(value);
+ return oldValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ public EMap<Date, Integer> getEMap() {
+ EObject container = eContainer();
+ return container == null ? null : (EMap<Date, Integer>)container.eGet(eContainmentFeature());
+ }
+
+} //MapDateToDurationImpl
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/MapKeyToInfoAttributesImpl.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/MapKeyToInfoAttributesImpl.java
new file mode 100644
index 0000000..38193c7
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/MapKeyToInfoAttributesImpl.java
@@ -0,0 +1,310 @@
+/**
+ * Copyright (c) 2010 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * Contributors:
+ * Alvaro Sanchez-Leon - Initial API and implementation
+ *
+ */
+package org.eclipse.mylyn.reviews.r4e.core.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.BasicEMap;
+import org.eclipse.emf.common.util.EMap;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Map Key To Info Attributes</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.MapKeyToInfoAttributesImpl#getTypedKey <em>Key</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.MapKeyToInfoAttributesImpl#getTypedValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MapKeyToInfoAttributesImpl extends EObjectImpl implements BasicEMap.Entry<String,String> {
+ /**
+ * The default value of the '{@link #getTypedKey() <em>Key</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypedKey()
+ * @generated
+ * @ordered
+ */
+ protected static final String KEY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTypedKey() <em>Key</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypedKey()
+ * @generated
+ * @ordered
+ */
+ protected String key = KEY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getTypedValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypedValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTypedValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypedValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MapKeyToInfoAttributesImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return RModelPackage.Literals.MAP_KEY_TO_INFO_ATTRIBUTES;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTypedKey() {
+ return key;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTypedKey(String newKey) {
+ String oldKey = key;
+ key = newKey;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.MAP_KEY_TO_INFO_ATTRIBUTES__KEY, oldKey, key));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTypedValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTypedValue(String newValue) {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.MAP_KEY_TO_INFO_ATTRIBUTES__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case RModelPackage.MAP_KEY_TO_INFO_ATTRIBUTES__KEY:
+ return getTypedKey();
+ case RModelPackage.MAP_KEY_TO_INFO_ATTRIBUTES__VALUE:
+ return getTypedValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case RModelPackage.MAP_KEY_TO_INFO_ATTRIBUTES__KEY:
+ setTypedKey((String)newValue);
+ return;
+ case RModelPackage.MAP_KEY_TO_INFO_ATTRIBUTES__VALUE:
+ setTypedValue((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case RModelPackage.MAP_KEY_TO_INFO_ATTRIBUTES__KEY:
+ setTypedKey(KEY_EDEFAULT);
+ return;
+ case RModelPackage.MAP_KEY_TO_INFO_ATTRIBUTES__VALUE:
+ setTypedValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case RModelPackage.MAP_KEY_TO_INFO_ATTRIBUTES__KEY:
+ return KEY_EDEFAULT == null ? key != null : !KEY_EDEFAULT.equals(key);
+ case RModelPackage.MAP_KEY_TO_INFO_ATTRIBUTES__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (key: ");
+ result.append(key);
+ result.append(", value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int hash = -1;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getHash() {
+ if (hash == -1) {
+ Object theKey = getKey();
+ hash = (theKey == null ? 0 : theKey.hashCode());
+ }
+ return hash;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHash(int hash) {
+ this.hash = hash;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getKey() {
+ return getTypedKey();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setKey(String key) {
+ setTypedKey(key);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValue() {
+ return getTypedValue();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String setValue(String value) {
+ String oldValue = getValue();
+ setTypedValue(value);
+ return oldValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ public EMap<String, String> getEMap() {
+ EObject container = eContainer();
+ return container == null ? null : (EMap<String, String>)container.eGet(eContainmentFeature());
+ }
+
+} //MapKeyToInfoAttributesImpl
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EAnomalyImpl.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EAnomalyImpl.java
index 2bd0e76..bab87c0 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EAnomalyImpl.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EAnomalyImpl.java
@@ -60,7 +60,7 @@
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EAnomalyImpl#getFixedInVersion <em>Fixed In Version</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EAnomalyImpl#getRuleID <em>Rule ID</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EAnomalyImpl#getDecidedByID <em>Decided By ID</em>}</li>
- * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EAnomalyImpl#getFiexeByID <em>Fiexe By ID</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EAnomalyImpl#getFixedByID <em>Fixed By ID</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EAnomalyImpl#getFollowUpByID <em>Follow Up By ID</em>}</li>
* </ul>
* </p>
@@ -329,24 +329,24 @@
protected String decidedByID = DECIDED_BY_ID_EDEFAULT;
/**
- * The default value of the '{@link #getFiexeByID() <em>Fiexe By ID</em>}' attribute.
+ * The default value of the '{@link #getFixedByID() <em>Fixed By ID</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see #getFiexeByID()
+ * @see #getFixedByID()
* @generated
* @ordered
*/
- protected static final String FIEXE_BY_ID_EDEFAULT = null;
+ protected static final String FIXED_BY_ID_EDEFAULT = null;
/**
- * The cached value of the '{@link #getFiexeByID() <em>Fiexe By ID</em>}' attribute.
+ * The cached value of the '{@link #getFixedByID() <em>Fixed By ID</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see #getFiexeByID()
+ * @see #getFixedByID()
* @generated
* @ordered
*/
- protected String fiexeByID = FIEXE_BY_ID_EDEFAULT;
+ protected String fixedByID = FIXED_BY_ID_EDEFAULT;
/**
* The default value of the '{@link #getFollowUpByID() <em>Follow Up By ID</em>}' attribute.
@@ -902,8 +902,8 @@
* <!-- end-user-doc -->
* @generated
*/
- public String getFiexeByID() {
- return fiexeByID;
+ public String getFixedByID() {
+ return fixedByID;
}
/**
@@ -911,11 +911,11 @@
* <!-- end-user-doc -->
* @generated
*/
- public void setFiexeByID(String newFiexeByID) {
- String oldFiexeByID = fiexeByID;
- fiexeByID = newFiexeByID;
+ public void setFixedByID(String newFixedByID) {
+ String oldFixedByID = fixedByID;
+ fixedByID = newFixedByID;
if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ANOMALY__FIEXE_BY_ID, oldFiexeByID, fiexeByID));
+ eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ANOMALY__FIXED_BY_ID, oldFixedByID, fixedByID));
}
/**
@@ -1073,8 +1073,8 @@
return getRuleID();
case RModelPackage.R4E_ANOMALY__DECIDED_BY_ID:
return getDecidedByID();
- case RModelPackage.R4E_ANOMALY__FIEXE_BY_ID:
- return getFiexeByID();
+ case RModelPackage.R4E_ANOMALY__FIXED_BY_ID:
+ return getFixedByID();
case RModelPackage.R4E_ANOMALY__FOLLOW_UP_BY_ID:
return getFollowUpByID();
}
@@ -1143,8 +1143,8 @@
case RModelPackage.R4E_ANOMALY__DECIDED_BY_ID:
setDecidedByID((String)newValue);
return;
- case RModelPackage.R4E_ANOMALY__FIEXE_BY_ID:
- setFiexeByID((String)newValue);
+ case RModelPackage.R4E_ANOMALY__FIXED_BY_ID:
+ setFixedByID((String)newValue);
return;
case RModelPackage.R4E_ANOMALY__FOLLOW_UP_BY_ID:
setFollowUpByID((String)newValue);
@@ -1215,8 +1215,8 @@
case RModelPackage.R4E_ANOMALY__DECIDED_BY_ID:
setDecidedByID(DECIDED_BY_ID_EDEFAULT);
return;
- case RModelPackage.R4E_ANOMALY__FIEXE_BY_ID:
- setFiexeByID(FIEXE_BY_ID_EDEFAULT);
+ case RModelPackage.R4E_ANOMALY__FIXED_BY_ID:
+ setFixedByID(FIXED_BY_ID_EDEFAULT);
return;
case RModelPackage.R4E_ANOMALY__FOLLOW_UP_BY_ID:
setFollowUpByID(FOLLOW_UP_BY_ID_EDEFAULT);
@@ -1269,8 +1269,8 @@
return RULE_ID_EDEFAULT == null ? ruleID != null : !RULE_ID_EDEFAULT.equals(ruleID);
case RModelPackage.R4E_ANOMALY__DECIDED_BY_ID:
return DECIDED_BY_ID_EDEFAULT == null ? decidedByID != null : !DECIDED_BY_ID_EDEFAULT.equals(decidedByID);
- case RModelPackage.R4E_ANOMALY__FIEXE_BY_ID:
- return FIEXE_BY_ID_EDEFAULT == null ? fiexeByID != null : !FIEXE_BY_ID_EDEFAULT.equals(fiexeByID);
+ case RModelPackage.R4E_ANOMALY__FIXED_BY_ID:
+ return FIXED_BY_ID_EDEFAULT == null ? fixedByID != null : !FIXED_BY_ID_EDEFAULT.equals(fixedByID);
case RModelPackage.R4E_ANOMALY__FOLLOW_UP_BY_ID:
return FOLLOW_UP_BY_ID_EDEFAULT == null ? followUpByID != null : !FOLLOW_UP_BY_ID_EDEFAULT.equals(followUpByID);
}
@@ -1359,8 +1359,8 @@
result.append(ruleID);
result.append(", decidedByID: ");
result.append(decidedByID);
- result.append(", fiexeByID: ");
- result.append(fiexeByID);
+ result.append(", fixedByID: ");
+ result.append(fixedByID);
result.append(", followUpByID: ");
result.append(followUpByID);
result.append(')');
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4ECommentTypeImpl.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4ECommentTypeImpl.java
index 0effc19..ea7f411 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4ECommentTypeImpl.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4ECommentTypeImpl.java
@@ -19,7 +19,7 @@
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.mylyn.reviews.frame.core.model.impl.CommentTypeImpl;
-import org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentEnum;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentClass;
import org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentType;
import org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage;
@@ -45,7 +45,7 @@
* @generated
* @ordered
*/
- protected static final R4ECommentEnum TYPE_EDEFAULT = R4ECommentEnum.R4E_COMMENT_BASE;
+ protected static final R4ECommentClass TYPE_EDEFAULT = R4ECommentClass.R4E_CLASS_ERRONEOUS;
/**
* The cached value of the '{@link #getType() <em>Type</em>}' attribute.
@@ -55,7 +55,7 @@
* @generated
* @ordered
*/
- protected R4ECommentEnum type = TYPE_EDEFAULT;
+ protected R4ECommentClass type = TYPE_EDEFAULT;
/**
* <!-- begin-user-doc -->
@@ -81,7 +81,7 @@
* <!-- end-user-doc -->
* @generated
*/
- public R4ECommentEnum getType() {
+ public R4ECommentClass getType() {
return type;
}
@@ -90,8 +90,8 @@
* <!-- end-user-doc -->
* @generated
*/
- public void setType(R4ECommentEnum newType) {
- R4ECommentEnum oldType = type;
+ public void setType(R4ECommentClass newType) {
+ R4ECommentClass oldType = type;
type = newType == null ? TYPE_EDEFAULT : newType;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_COMMENT_TYPE__TYPE, oldType, type));
@@ -120,7 +120,7 @@
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case RModelPackage.R4E_COMMENT_TYPE__TYPE:
- setType((R4ECommentEnum)newValue);
+ setType((R4ECommentClass)newValue);
return;
}
super.eSet(featureID, newValue);
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EFileContextImpl.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EFileContextImpl.java
index 19432a8..93854da 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EFileContextImpl.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EFileContextImpl.java
@@ -20,11 +20,15 @@
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EContextType;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EDelta;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EFileContext;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion;
@@ -40,6 +44,8 @@
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EFileContextImpl#getDeltas <em>Deltas</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EFileContextImpl#getBase <em>Base</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EFileContextImpl#getTarget <em>Target</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EFileContextImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EFileContextImpl#getInfoAtt <em>Info Att</em>}</li>
* </ul>
* </p>
*
@@ -74,6 +80,33 @@
*/
protected R4EFileVersion target;
/**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final R4EContextType TYPE_EDEFAULT = R4EContextType.R4E_UNDEFINED;
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected R4EContextType type = TYPE_EDEFAULT;
+ /**
+ * The cached value of the '{@link #getInfoAtt() <em>Info Att</em>}' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInfoAtt()
+ * @generated
+ * @ordered
+ */
+ protected EMap<String, String> infoAtt;
+ /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -241,6 +274,39 @@
* <!-- end-user-doc -->
* @generated
*/
+ public R4EContextType getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(R4EContextType newType) {
+ R4EContextType oldType = type;
+ type = newType == null ? TYPE_EDEFAULT : newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_FILE_CONTEXT__TYPE, oldType, type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EMap<String, String> getInfoAtt() {
+ if (infoAtt == null) {
+ infoAtt = new EcoreEMap<String,String>(RModelPackage.Literals.MAP_KEY_TO_INFO_ATTRIBUTES, MapKeyToInfoAttributesImpl.class, this, RModelPackage.R4E_FILE_CONTEXT__INFO_ATT);
+ }
+ return infoAtt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
@@ -250,6 +316,8 @@
return basicSetBase(null, msgs);
case RModelPackage.R4E_FILE_CONTEXT__TARGET:
return basicSetTarget(null, msgs);
+ case RModelPackage.R4E_FILE_CONTEXT__INFO_ATT:
+ return ((InternalEList<?>)getInfoAtt()).basicRemove(otherEnd, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
@@ -270,6 +338,11 @@
case RModelPackage.R4E_FILE_CONTEXT__TARGET:
if (resolve) return getTarget();
return basicGetTarget();
+ case RModelPackage.R4E_FILE_CONTEXT__TYPE:
+ return getType();
+ case RModelPackage.R4E_FILE_CONTEXT__INFO_ATT:
+ if (coreType) return getInfoAtt();
+ else return getInfoAtt().map();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -293,6 +366,12 @@
case RModelPackage.R4E_FILE_CONTEXT__TARGET:
setTarget((R4EFileVersion)newValue);
return;
+ case RModelPackage.R4E_FILE_CONTEXT__TYPE:
+ setType((R4EContextType)newValue);
+ return;
+ case RModelPackage.R4E_FILE_CONTEXT__INFO_ATT:
+ ((EStructuralFeature.Setting)getInfoAtt()).set(newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -314,6 +393,12 @@
case RModelPackage.R4E_FILE_CONTEXT__TARGET:
setTarget((R4EFileVersion)null);
return;
+ case RModelPackage.R4E_FILE_CONTEXT__TYPE:
+ setType(TYPE_EDEFAULT);
+ return;
+ case RModelPackage.R4E_FILE_CONTEXT__INFO_ATT:
+ getInfoAtt().clear();
+ return;
}
super.eUnset(featureID);
}
@@ -332,8 +417,28 @@
return base != null;
case RModelPackage.R4E_FILE_CONTEXT__TARGET:
return target != null;
+ case RModelPackage.R4E_FILE_CONTEXT__TYPE:
+ return type != TYPE_EDEFAULT;
+ case RModelPackage.R4E_FILE_CONTEXT__INFO_ATT:
+ return infoAtt != null && !infoAtt.isEmpty();
}
return super.eIsSet(featureID);
}
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (type: ");
+ result.append(type);
+ result.append(')');
+ return result.toString();
+ }
+
} //R4EFileContextImpl
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EFileVersionImpl.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EFileVersionImpl.java
index 369c641..5ec9ce9 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EFileVersionImpl.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EFileVersionImpl.java
@@ -1,5 +1,4 @@
/**
-/**
* Copyright (c) 2010 Ericsson
*
* All rights reserved. This program and the accompanying materials are
@@ -16,13 +15,25 @@
package org.eclipse.mylyn.reviews.r4e.core.model.impl;
import org.eclipse.core.resources.IResource;
+
import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EMap;
import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion;
import org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage;
+import org.eclipse.team.core.history.IFileRevision;
+
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>R4E File Version</b></em>'.
@@ -35,6 +46,9 @@
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EFileVersionImpl#getRepositoryPath <em>Repository Path</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EFileVersionImpl#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EFileVersionImpl#getResource <em>Resource</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EFileVersionImpl#getLocalVersionID <em>Local Version ID</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EFileVersionImpl#getFileRevision <em>File Revision</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EFileVersionImpl#getInfoAtt <em>Info Att</em>}</li>
* </ul>
* </p>
*
@@ -50,6 +64,7 @@
* @ordered
*/
protected static final String PLATFORM_URI_EDEFAULT = null;
+
/**
* The cached value of the '{@link #getPlatformURI() <em>Platform URI</em>}' attribute.
* <!-- begin-user-doc -->
@@ -59,6 +74,7 @@
* @ordered
*/
protected String platformURI = PLATFORM_URI_EDEFAULT;
+
/**
* The default value of the '{@link #getVersionID() <em>Version ID</em>}' attribute.
* <!-- begin-user-doc -->
@@ -68,6 +84,7 @@
* @ordered
*/
protected static final String VERSION_ID_EDEFAULT = null;
+
/**
* The cached value of the '{@link #getVersionID() <em>Version ID</em>}' attribute.
* <!-- begin-user-doc -->
@@ -77,6 +94,7 @@
* @ordered
*/
protected String versionID = VERSION_ID_EDEFAULT;
+
/**
* The default value of the '{@link #getRepositoryPath() <em>Repository Path</em>}' attribute.
* <!-- begin-user-doc -->
@@ -86,6 +104,7 @@
* @ordered
*/
protected static final String REPOSITORY_PATH_EDEFAULT = null;
+
/**
* The cached value of the '{@link #getRepositoryPath() <em>Repository Path</em>}' attribute.
* <!-- begin-user-doc -->
@@ -95,6 +114,7 @@
* @ordered
*/
protected String repositoryPath = REPOSITORY_PATH_EDEFAULT;
+
/**
* The default value of the '{@link #getName() <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
@@ -104,6 +124,7 @@
* @ordered
*/
protected static final String NAME_EDEFAULT = null;
+
/**
* The cached value of the '{@link #getName() <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
@@ -113,6 +134,7 @@
* @ordered
*/
protected String name = NAME_EDEFAULT;
+
/**
* The default value of the '{@link #getResource() <em>Resource</em>}' attribute.
* <!-- begin-user-doc -->
@@ -122,6 +144,7 @@
* @ordered
*/
protected static final IResource RESOURCE_EDEFAULT = null;
+
/**
* The cached value of the '{@link #getResource() <em>Resource</em>}' attribute.
* <!-- begin-user-doc -->
@@ -131,6 +154,57 @@
* @ordered
*/
protected IResource resource = RESOURCE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLocalVersionID() <em>Local Version ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocalVersionID()
+ * @generated
+ * @ordered
+ */
+ protected static final String LOCAL_VERSION_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLocalVersionID() <em>Local Version ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocalVersionID()
+ * @generated
+ * @ordered
+ */
+ protected String localVersionID = LOCAL_VERSION_ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getFileRevision() <em>File Revision</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFileRevision()
+ * @generated
+ * @ordered
+ */
+ protected static final IFileRevision FILE_REVISION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFileRevision() <em>File Revision</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFileRevision()
+ * @generated
+ * @ordered
+ */
+ protected IFileRevision fileRevision = FILE_REVISION_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getInfoAtt() <em>Info Att</em>}' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInfoAtt()
+ * @generated
+ * @ordered
+ */
+ protected EMap<String, String> infoAtt;
+
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -260,6 +334,74 @@
* <!-- end-user-doc -->
* @generated
*/
+ public String getLocalVersionID() {
+ return localVersionID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLocalVersionID(String newLocalVersionID) {
+ String oldLocalVersionID = localVersionID;
+ localVersionID = newLocalVersionID;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_FILE_VERSION__LOCAL_VERSION_ID, oldLocalVersionID, localVersionID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IFileRevision getFileRevision() {
+ return fileRevision;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFileRevision(IFileRevision newFileRevision) {
+ IFileRevision oldFileRevision = fileRevision;
+ fileRevision = newFileRevision;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_FILE_VERSION__FILE_REVISION, oldFileRevision, fileRevision));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EMap<String, String> getInfoAtt() {
+ if (infoAtt == null) {
+ infoAtt = new EcoreEMap<String,String>(RModelPackage.Literals.MAP_KEY_TO_INFO_ATTRIBUTES, MapKeyToInfoAttributesImpl.class, this, RModelPackage.R4E_FILE_VERSION__INFO_ATT);
+ }
+ return infoAtt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RModelPackage.R4E_FILE_VERSION__INFO_ATT:
+ return ((InternalEList<?>)getInfoAtt()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
@@ -273,6 +415,13 @@
return getName();
case RModelPackage.R4E_FILE_VERSION__RESOURCE:
return getResource();
+ case RModelPackage.R4E_FILE_VERSION__LOCAL_VERSION_ID:
+ return getLocalVersionID();
+ case RModelPackage.R4E_FILE_VERSION__FILE_REVISION:
+ return getFileRevision();
+ case RModelPackage.R4E_FILE_VERSION__INFO_ATT:
+ if (coreType) return getInfoAtt();
+ else return getInfoAtt().map();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -300,6 +449,15 @@
case RModelPackage.R4E_FILE_VERSION__RESOURCE:
setResource((IResource)newValue);
return;
+ case RModelPackage.R4E_FILE_VERSION__LOCAL_VERSION_ID:
+ setLocalVersionID((String)newValue);
+ return;
+ case RModelPackage.R4E_FILE_VERSION__FILE_REVISION:
+ setFileRevision((IFileRevision)newValue);
+ return;
+ case RModelPackage.R4E_FILE_VERSION__INFO_ATT:
+ ((EStructuralFeature.Setting)getInfoAtt()).set(newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -327,6 +485,15 @@
case RModelPackage.R4E_FILE_VERSION__RESOURCE:
setResource(RESOURCE_EDEFAULT);
return;
+ case RModelPackage.R4E_FILE_VERSION__LOCAL_VERSION_ID:
+ setLocalVersionID(LOCAL_VERSION_ID_EDEFAULT);
+ return;
+ case RModelPackage.R4E_FILE_VERSION__FILE_REVISION:
+ setFileRevision(FILE_REVISION_EDEFAULT);
+ return;
+ case RModelPackage.R4E_FILE_VERSION__INFO_ATT:
+ getInfoAtt().clear();
+ return;
}
super.eUnset(featureID);
}
@@ -349,6 +516,12 @@
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
case RModelPackage.R4E_FILE_VERSION__RESOURCE:
return RESOURCE_EDEFAULT == null ? resource != null : !RESOURCE_EDEFAULT.equals(resource);
+ case RModelPackage.R4E_FILE_VERSION__LOCAL_VERSION_ID:
+ return LOCAL_VERSION_ID_EDEFAULT == null ? localVersionID != null : !LOCAL_VERSION_ID_EDEFAULT.equals(localVersionID);
+ case RModelPackage.R4E_FILE_VERSION__FILE_REVISION:
+ return FILE_REVISION_EDEFAULT == null ? fileRevision != null : !FILE_REVISION_EDEFAULT.equals(fileRevision);
+ case RModelPackage.R4E_FILE_VERSION__INFO_ATT:
+ return infoAtt != null && !infoAtt.isEmpty();
}
return super.eIsSet(featureID);
}
@@ -373,6 +546,10 @@
result.append(name);
result.append(", resource: ");
result.append(resource);
+ result.append(", localVersionID: ");
+ result.append(localVersionID);
+ result.append(", fileRevision: ");
+ result.append(fileRevision);
result.append(')');
return result.toString();
}
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EItemImpl.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EItemImpl.java
index 02c8478..bf0ccb9 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EItemImpl.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EItemImpl.java
@@ -16,14 +16,18 @@
import java.util.Collection;
+import java.util.Date;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
import org.eclipse.emf.ecore.util.InternalEList;
import org.eclipse.mylyn.reviews.frame.core.model.Item;
import org.eclipse.mylyn.reviews.frame.core.model.ModelPackage;
@@ -48,6 +52,9 @@
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getFileContextList <em>File Context List</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getRepositoryRef <em>Repository Ref</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getProjectURIs <em>Project UR Is</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getAuthorRep <em>Author Rep</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getSubmitted <em>Submitted</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getInfoAtt <em>Info Att</em>}</li>
* </ul>
* </p>
*
@@ -175,6 +182,56 @@
protected EList<String> projectURIs;
/**
+ * The default value of the '{@link #getAuthorRep() <em>Author Rep</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAuthorRep()
+ * @generated
+ * @ordered
+ */
+ protected static final String AUTHOR_REP_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAuthorRep() <em>Author Rep</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAuthorRep()
+ * @generated
+ * @ordered
+ */
+ protected String authorRep = AUTHOR_REP_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSubmitted() <em>Submitted</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubmitted()
+ * @generated
+ * @ordered
+ */
+ protected static final Date SUBMITTED_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSubmitted() <em>Submitted</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubmitted()
+ * @generated
+ * @ordered
+ */
+ protected Date submitted = SUBMITTED_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getInfoAtt() <em>Info Att</em>}' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInfoAtt()
+ * @generated
+ * @ordered
+ */
+ protected EMap<String, String> infoAtt;
+
+ /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -382,11 +439,67 @@
* <!-- end-user-doc -->
* @generated
*/
+ public String getAuthorRep() {
+ return authorRep;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAuthorRep(String newAuthorRep) {
+ String oldAuthorRep = authorRep;
+ authorRep = newAuthorRep;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__AUTHOR_REP, oldAuthorRep, authorRep));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getSubmitted() {
+ return submitted;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSubmitted(Date newSubmitted) {
+ Date oldSubmitted = submitted;
+ submitted = newSubmitted;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__SUBMITTED, oldSubmitted, submitted));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EMap<String, String> getInfoAtt() {
+ if (infoAtt == null) {
+ infoAtt = new EcoreEMap<String,String>(RModelPackage.Literals.MAP_KEY_TO_INFO_ATTRIBUTES, MapKeyToInfoAttributesImpl.class, this, RModelPackage.R4E_ITEM__INFO_ATT);
+ }
+ return infoAtt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case RModelPackage.R4E_ITEM__FILE_CONTEXT_LIST:
return ((InternalEList<?>)getFileContextList()).basicRemove(otherEnd, msgs);
+ case RModelPackage.R4E_ITEM__INFO_ATT:
+ return ((InternalEList<?>)getInfoAtt()).basicRemove(otherEnd, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
@@ -417,6 +530,13 @@
return getRepositoryRef();
case RModelPackage.R4E_ITEM__PROJECT_UR_IS:
return getProjectURIs();
+ case RModelPackage.R4E_ITEM__AUTHOR_REP:
+ return getAuthorRep();
+ case RModelPackage.R4E_ITEM__SUBMITTED:
+ return getSubmitted();
+ case RModelPackage.R4E_ITEM__INFO_ATT:
+ if (coreType) return getInfoAtt();
+ else return getInfoAtt().map();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -456,6 +576,15 @@
getProjectURIs().clear();
getProjectURIs().addAll((Collection<? extends String>)newValue);
return;
+ case RModelPackage.R4E_ITEM__AUTHOR_REP:
+ setAuthorRep((String)newValue);
+ return;
+ case RModelPackage.R4E_ITEM__SUBMITTED:
+ setSubmitted((Date)newValue);
+ return;
+ case RModelPackage.R4E_ITEM__INFO_ATT:
+ ((EStructuralFeature.Setting)getInfoAtt()).set(newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -492,6 +621,15 @@
case RModelPackage.R4E_ITEM__PROJECT_UR_IS:
getProjectURIs().clear();
return;
+ case RModelPackage.R4E_ITEM__AUTHOR_REP:
+ setAuthorRep(AUTHOR_REP_EDEFAULT);
+ return;
+ case RModelPackage.R4E_ITEM__SUBMITTED:
+ setSubmitted(SUBMITTED_EDEFAULT);
+ return;
+ case RModelPackage.R4E_ITEM__INFO_ATT:
+ getInfoAtt().clear();
+ return;
}
super.eUnset(featureID);
}
@@ -520,6 +658,12 @@
return REPOSITORY_REF_EDEFAULT == null ? repositoryRef != null : !REPOSITORY_REF_EDEFAULT.equals(repositoryRef);
case RModelPackage.R4E_ITEM__PROJECT_UR_IS:
return projectURIs != null && !projectURIs.isEmpty();
+ case RModelPackage.R4E_ITEM__AUTHOR_REP:
+ return AUTHOR_REP_EDEFAULT == null ? authorRep != null : !AUTHOR_REP_EDEFAULT.equals(authorRep);
+ case RModelPackage.R4E_ITEM__SUBMITTED:
+ return SUBMITTED_EDEFAULT == null ? submitted != null : !SUBMITTED_EDEFAULT.equals(submitted);
+ case RModelPackage.R4E_ITEM__INFO_ATT:
+ return infoAtt != null && !infoAtt.isEmpty();
}
return super.eIsSet(featureID);
}
@@ -578,6 +722,10 @@
result.append(repositoryRef);
result.append(", ProjectURIs: ");
result.append(projectURIs);
+ result.append(", authorRep: ");
+ result.append(authorRep);
+ result.append(", submitted: ");
+ result.append(submitted);
result.append(')');
return result.toString();
}
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EParticipantImpl.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EParticipantImpl.java
index 8b3d6ba..1d90b98 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EParticipantImpl.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EParticipantImpl.java
@@ -17,12 +17,19 @@
import java.util.Collection;
+import java.util.Date;
import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EID;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EUserRole;
@@ -36,10 +43,10 @@
* The following features are implemented:
* <ul>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EParticipantImpl#getRoles <em>Roles</em>}</li>
- * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EParticipantImpl#getSpentTime <em>Spent Time</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EParticipantImpl#getFocusArea <em>Focus Area</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EParticipantImpl#isIsPartOfDecision <em>Is Part Of Decision</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EParticipantImpl#getReviewedContent <em>Reviewed Content</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EParticipantImpl#getTimeLog <em>Time Log</em>}</li>
* </ul>
* </p>
*
@@ -57,26 +64,6 @@
protected EList<R4EUserRole> roles;
/**
- * The default value of the '{@link #getSpentTime() <em>Spent Time</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getSpentTime()
- * @generated
- * @ordered
- */
- protected static final int SPENT_TIME_EDEFAULT = 0;
-
- /**
- * The cached value of the '{@link #getSpentTime() <em>Spent Time</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getSpentTime()
- * @generated
- * @ordered
- */
- protected int spentTime = SPENT_TIME_EDEFAULT;
-
- /**
* The default value of the '{@link #getFocusArea() <em>Focus Area</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -127,6 +114,16 @@
protected EList<R4EID> reviewedContent;
/**
+ * The cached value of the '{@link #getTimeLog() <em>Time Log</em>}' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTimeLog()
+ * @generated
+ * @ordered
+ */
+ protected EMap<Date, Integer> timeLog;
+
+ /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -162,27 +159,6 @@
* <!-- end-user-doc -->
* @generated
*/
- public int getSpentTime() {
- return spentTime;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setSpentTime(int newSpentTime) {
- int oldSpentTime = spentTime;
- spentTime = newSpentTime;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_PARTICIPANT__SPENT_TIME, oldSpentTime, spentTime));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
public String getFocusArea() {
return focusArea;
}
@@ -237,19 +213,46 @@
* <!-- end-user-doc -->
* @generated
*/
+ public EMap<Date, Integer> getTimeLog() {
+ if (timeLog == null) {
+ timeLog = new EcoreEMap<Date,Integer>(RModelPackage.Literals.MAP_DATE_TO_DURATION, MapDateToDurationImpl.class, this, RModelPackage.R4E_PARTICIPANT__TIME_LOG);
+ }
+ return timeLog;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case RModelPackage.R4E_PARTICIPANT__TIME_LOG:
+ return ((InternalEList<?>)getTimeLog()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case RModelPackage.R4E_PARTICIPANT__ROLES:
return getRoles();
- case RModelPackage.R4E_PARTICIPANT__SPENT_TIME:
- return getSpentTime();
case RModelPackage.R4E_PARTICIPANT__FOCUS_AREA:
return getFocusArea();
case RModelPackage.R4E_PARTICIPANT__IS_PART_OF_DECISION:
return isIsPartOfDecision();
case RModelPackage.R4E_PARTICIPANT__REVIEWED_CONTENT:
return getReviewedContent();
+ case RModelPackage.R4E_PARTICIPANT__TIME_LOG:
+ if (coreType) return getTimeLog();
+ else return getTimeLog().map();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -267,9 +270,6 @@
getRoles().clear();
getRoles().addAll((Collection<? extends R4EUserRole>)newValue);
return;
- case RModelPackage.R4E_PARTICIPANT__SPENT_TIME:
- setSpentTime((Integer)newValue);
- return;
case RModelPackage.R4E_PARTICIPANT__FOCUS_AREA:
setFocusArea((String)newValue);
return;
@@ -280,6 +280,9 @@
getReviewedContent().clear();
getReviewedContent().addAll((Collection<? extends R4EID>)newValue);
return;
+ case RModelPackage.R4E_PARTICIPANT__TIME_LOG:
+ ((EStructuralFeature.Setting)getTimeLog()).set(newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -295,9 +298,6 @@
case RModelPackage.R4E_PARTICIPANT__ROLES:
getRoles().clear();
return;
- case RModelPackage.R4E_PARTICIPANT__SPENT_TIME:
- setSpentTime(SPENT_TIME_EDEFAULT);
- return;
case RModelPackage.R4E_PARTICIPANT__FOCUS_AREA:
setFocusArea(FOCUS_AREA_EDEFAULT);
return;
@@ -307,6 +307,9 @@
case RModelPackage.R4E_PARTICIPANT__REVIEWED_CONTENT:
getReviewedContent().clear();
return;
+ case RModelPackage.R4E_PARTICIPANT__TIME_LOG:
+ getTimeLog().clear();
+ return;
}
super.eUnset(featureID);
}
@@ -321,14 +324,14 @@
switch (featureID) {
case RModelPackage.R4E_PARTICIPANT__ROLES:
return roles != null && !roles.isEmpty();
- case RModelPackage.R4E_PARTICIPANT__SPENT_TIME:
- return spentTime != SPENT_TIME_EDEFAULT;
case RModelPackage.R4E_PARTICIPANT__FOCUS_AREA:
return FOCUS_AREA_EDEFAULT == null ? focusArea != null : !FOCUS_AREA_EDEFAULT.equals(focusArea);
case RModelPackage.R4E_PARTICIPANT__IS_PART_OF_DECISION:
return isPartOfDecision != IS_PART_OF_DECISION_EDEFAULT;
case RModelPackage.R4E_PARTICIPANT__REVIEWED_CONTENT:
return reviewedContent != null && !reviewedContent.isEmpty();
+ case RModelPackage.R4E_PARTICIPANT__TIME_LOG:
+ return timeLog != null && !timeLog.isEmpty();
}
return super.eIsSet(featureID);
}
@@ -345,8 +348,6 @@
StringBuffer result = new StringBuffer(super.toString());
result.append(" (roles: ");
result.append(roles);
- result.append(", spentTime: ");
- result.append(spentTime);
result.append(", focusArea: ");
result.append(focusArea);
result.append(", isPartOfDecision: ");
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EReviewImpl.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EReviewImpl.java
index 349760e..6bdcdb0 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EReviewImpl.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EReviewImpl.java
@@ -47,7 +47,6 @@
* The following features are implemented:
* <ul>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EReviewImpl#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EReviewImpl#getCreationDate <em>Creation Date</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EReviewImpl#getProject <em>Project</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EReviewImpl#getComponents <em>Components</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EReviewImpl#getEntryCriteria <em>Entry Criteria</em>}</li>
@@ -90,26 +89,6 @@
protected String name = NAME_EDEFAULT;
/**
- * The default value of the '{@link #getCreationDate() <em>Creation Date</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getCreationDate()
- * @generated
- * @ordered
- */
- protected static final Date CREATION_DATE_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getCreationDate() <em>Creation Date</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getCreationDate()
- * @generated
- * @ordered
- */
- protected Date creationDate = CREATION_DATE_EDEFAULT;
-
- /**
* The default value of the '{@link #getProject() <em>Project</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -394,27 +373,6 @@
* <!-- end-user-doc -->
* @generated
*/
- public Date getCreationDate() {
- return creationDate;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setCreationDate(Date newCreationDate) {
- Date oldCreationDate = creationDate;
- creationDate = newCreationDate;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_REVIEW__CREATION_DATE, oldCreationDate, creationDate));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
public String getProject() {
return project;
}
@@ -835,8 +793,6 @@
switch (featureID) {
case RModelPackage.R4E_REVIEW__NAME:
return getName();
- case RModelPackage.R4E_REVIEW__CREATION_DATE:
- return getCreationDate();
case RModelPackage.R4E_REVIEW__PROJECT:
return getProject();
case RModelPackage.R4E_REVIEW__COMPONENTS:
@@ -888,9 +844,6 @@
case RModelPackage.R4E_REVIEW__NAME:
setName((String)newValue);
return;
- case RModelPackage.R4E_REVIEW__CREATION_DATE:
- setCreationDate((Date)newValue);
- return;
case RModelPackage.R4E_REVIEW__PROJECT:
setProject((String)newValue);
return;
@@ -952,9 +905,6 @@
case RModelPackage.R4E_REVIEW__NAME:
setName(NAME_EDEFAULT);
return;
- case RModelPackage.R4E_REVIEW__CREATION_DATE:
- setCreationDate(CREATION_DATE_EDEFAULT);
- return;
case RModelPackage.R4E_REVIEW__PROJECT:
setProject(PROJECT_EDEFAULT);
return;
@@ -1014,8 +964,6 @@
switch (featureID) {
case RModelPackage.R4E_REVIEW__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
- case RModelPackage.R4E_REVIEW__CREATION_DATE:
- return CREATION_DATE_EDEFAULT == null ? creationDate != null : !CREATION_DATE_EDEFAULT.equals(creationDate);
case RModelPackage.R4E_REVIEW__PROJECT:
return PROJECT_EDEFAULT == null ? project != null : !PROJECT_EDEFAULT.equals(project);
case RModelPackage.R4E_REVIEW__COMPONENTS:
@@ -1062,8 +1010,6 @@
StringBuffer result = new StringBuffer(super.toString());
result.append(" (name: ");
result.append(name);
- result.append(", creationDate: ");
- result.append(creationDate);
result.append(", project: ");
result.append(project);
result.append(", components: ");
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EUserImpl.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EUserImpl.java
index 9dc0f97..565b738 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EUserImpl.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EUserImpl.java
@@ -26,10 +26,13 @@
import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
import org.eclipse.emf.ecore.util.EObjectContainmentEList;
import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.mylyn.reviews.frame.core.model.ModelPackage;
+import org.eclipse.mylyn.reviews.frame.core.model.ReviewComponent;
import org.eclipse.mylyn.reviews.frame.core.model.impl.UserImpl;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EComment;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EItem;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReview;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewComponent;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EUser;
import org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage;
@@ -40,6 +43,7 @@
* <p>
* The following features are implemented:
* <ul>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EUserImpl#isEnabled <em>Enabled</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EUserImpl#getGroupPaths <em>Group Paths</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EUserImpl#getSequenceIDCounter <em>Sequence ID Counter</em>}</li>
* <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EUserImpl#getAddedComments <em>Added Comments</em>}</li>
@@ -56,6 +60,26 @@
*/
public class R4EUserImpl extends UserImpl implements R4EUser {
/**
+ * The default value of the '{@link #isEnabled() <em>Enabled</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isEnabled()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ENABLED_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isEnabled() <em>Enabled</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isEnabled()
+ * @generated
+ * @ordered
+ */
+ protected boolean enabled = ENABLED_EDEFAULT;
+
+ /**
* The cached value of the '{@link #getGroupPaths() <em>Group Paths</em>}' attribute list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -218,6 +242,27 @@
* <!-- end-user-doc -->
* @generated
*/
+ public boolean isEnabled() {
+ return enabled;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEnabled(boolean newEnabled) {
+ boolean oldEnabled = enabled;
+ enabled = newEnabled;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_USER__ENABLED, oldEnabled, enabled));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public EList<String> getGroupPaths() {
if (groupPaths == null) {
groupPaths = new EDataTypeUniqueEList<String>(String.class, this, RModelPackage.R4E_USER__GROUP_PATHS);
@@ -427,6 +472,8 @@
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
+ case RModelPackage.R4E_USER__ENABLED:
+ return isEnabled();
case RModelPackage.R4E_USER__GROUP_PATHS:
return getGroupPaths();
case RModelPackage.R4E_USER__SEQUENCE_ID_COUNTER:
@@ -459,6 +506,9 @@
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
+ case RModelPackage.R4E_USER__ENABLED:
+ setEnabled((Boolean)newValue);
+ return;
case RModelPackage.R4E_USER__GROUP_PATHS:
getGroupPaths().clear();
getGroupPaths().addAll((Collection<? extends String>)newValue);
@@ -501,6 +551,9 @@
@Override
public void eUnset(int featureID) {
switch (featureID) {
+ case RModelPackage.R4E_USER__ENABLED:
+ setEnabled(ENABLED_EDEFAULT);
+ return;
case RModelPackage.R4E_USER__GROUP_PATHS:
getGroupPaths().clear();
return;
@@ -540,6 +593,8 @@
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
+ case RModelPackage.R4E_USER__ENABLED:
+ return enabled != ENABLED_EDEFAULT;
case RModelPackage.R4E_USER__GROUP_PATHS:
return groupPaths != null && !groupPaths.isEmpty();
case RModelPackage.R4E_USER__SEQUENCE_ID_COUNTER:
@@ -568,11 +623,55 @@
* @generated
*/
@Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == ReviewComponent.class) {
+ switch (derivedFeatureID) {
+ case RModelPackage.R4E_USER__ENABLED: return ModelPackage.REVIEW_COMPONENT__ENABLED;
+ default: return -1;
+ }
+ }
+ if (baseClass == R4EReviewComponent.class) {
+ switch (derivedFeatureID) {
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == ReviewComponent.class) {
+ switch (baseFeatureID) {
+ case ModelPackage.REVIEW_COMPONENT__ENABLED: return RModelPackage.R4E_USER__ENABLED;
+ default: return -1;
+ }
+ }
+ if (baseClass == R4EReviewComponent.class) {
+ switch (baseFeatureID) {
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public String toString() {
if (eIsProxy()) return super.toString();
StringBuffer result = new StringBuffer(super.toString());
- result.append(" (groupPaths: ");
+ result.append(" (enabled: ");
+ result.append(enabled);
+ result.append(", groupPaths: ");
result.append(groupPaths);
result.append(", sequenceIDCounter: ");
result.append(sequenceIDCounter);
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/RModelFactoryImpl.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/RModelFactoryImpl.java
index 6b974f9..12d66ec 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/RModelFactoryImpl.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/RModelFactoryImpl.java
@@ -14,6 +14,7 @@
*/
package org.eclipse.mylyn.reviews.r4e.core.model.impl;
+import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -32,9 +33,10 @@
import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomalyTextPosition;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomalyType;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EComment;
-import org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentEnum;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentClass;
import org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentType;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EContent;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EContextType;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EDecision;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EDelta;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EFileContext;
@@ -64,6 +66,7 @@
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.SerializeFactory;
import org.eclipse.mylyn.tasks.core.ITask;
+import org.eclipse.team.core.history.IFileRevision;
/**
* <!-- begin-user-doc -->
@@ -139,6 +142,8 @@
case RModelPackage.MAP_ID_TO_COMPONENT: return (EObject)createMapIDToComponent();
case RModelPackage.MAP_USER_ID_TO_USER_REVIEWS: return (EObject)createMapUserIDToUserReviews();
case RModelPackage.R4E_ANOMALY_TEXT_POSITION: return createR4EAnomalyTextPosition();
+ case RModelPackage.MAP_DATE_TO_DURATION: return (EObject)createMapDateToDuration();
+ case RModelPackage.MAP_KEY_TO_INFO_ATTRIBUTES: return (EObject)createMapKeyToInfoAttributes();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
}
@@ -164,12 +169,16 @@
return createR4EDecisionFromString(eDataType, initialValue);
case RModelPackage.R4E_REVIEW_TYPE:
return createR4EReviewTypeFromString(eDataType, initialValue);
- case RModelPackage.R4E_COMMENT_ENUM:
- return createR4ECommentEnumFromString(eDataType, initialValue);
+ case RModelPackage.R4E_COMMENT_CLASS:
+ return createR4ECommentClassFromString(eDataType, initialValue);
+ case RModelPackage.R4E_CONTEXT_TYPE:
+ return createR4EContextTypeFromString(eDataType, initialValue);
case RModelPackage.MYLYN_TASK:
return createMylynTaskFromString(eDataType, initialValue);
case RModelPackage.IRESOURCE:
return createIResourceFromString(eDataType, initialValue);
+ case RModelPackage.IFILE_REVISION:
+ return createIFileRevisionFromString(eDataType, initialValue);
default:
throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
}
@@ -195,12 +204,16 @@
return convertR4EDecisionToString(eDataType, instanceValue);
case RModelPackage.R4E_REVIEW_TYPE:
return convertR4EReviewTypeToString(eDataType, instanceValue);
- case RModelPackage.R4E_COMMENT_ENUM:
- return convertR4ECommentEnumToString(eDataType, instanceValue);
+ case RModelPackage.R4E_COMMENT_CLASS:
+ return convertR4ECommentClassToString(eDataType, instanceValue);
+ case RModelPackage.R4E_CONTEXT_TYPE:
+ return convertR4EContextTypeToString(eDataType, instanceValue);
case RModelPackage.MYLYN_TASK:
return convertMylynTaskToString(eDataType, instanceValue);
case RModelPackage.IRESOURCE:
return convertIResourceToString(eDataType, instanceValue);
+ case RModelPackage.IFILE_REVISION:
+ return convertIFileRevisionToString(eDataType, instanceValue);
default:
throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
}
@@ -471,6 +484,26 @@
* <!-- end-user-doc -->
* @generated
*/
+ public Map.Entry<Date, Integer> createMapDateToDuration() {
+ MapDateToDurationImpl mapDateToDuration = new MapDateToDurationImpl();
+ return mapDateToDuration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Map.Entry<String, String> createMapKeyToInfoAttributes() {
+ MapKeyToInfoAttributesImpl mapKeyToInfoAttributes = new MapKeyToInfoAttributesImpl();
+ return mapKeyToInfoAttributes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public R4ECommentType createR4ECommentType() {
R4ECommentTypeImpl r4ECommentType = new R4ECommentTypeImpl();
return r4ECommentType;
@@ -729,9 +762,9 @@
* <!-- end-user-doc -->
* @generated
*/
- public R4ECommentEnum createR4ECommentEnum(String literal) {
- R4ECommentEnum result = R4ECommentEnum.get(literal);
- if (result == null) throw new IllegalArgumentException("The value '" + literal + "' is not a valid enumerator of '" + RModelPackage.Literals.R4E_COMMENT_ENUM.getName() + "'");
+ public R4ECommentClass createR4ECommentClass(String literal) {
+ R4ECommentClass result = R4ECommentClass.get(literal);
+ if (result == null) throw new IllegalArgumentException("The value '" + literal + "' is not a valid enumerator of '" + RModelPackage.Literals.R4E_COMMENT_CLASS.getName() + "'");
return result;
}
@@ -740,8 +773,8 @@
* <!-- end-user-doc -->
* @generated
*/
- public R4ECommentEnum createR4ECommentEnumFromString(EDataType eDataType, String initialValue) {
- return createR4ECommentEnum(initialValue);
+ public R4ECommentClass createR4ECommentClassFromString(EDataType eDataType, String initialValue) {
+ return createR4ECommentClass(initialValue);
}
/**
@@ -749,7 +782,7 @@
* <!-- end-user-doc -->
* @generated
*/
- public String convertR4ECommentEnum(R4ECommentEnum instanceValue) {
+ public String convertR4ECommentClass(R4ECommentClass instanceValue) {
return instanceValue == null ? null : instanceValue.toString();
}
@@ -758,7 +791,45 @@
* <!-- end-user-doc -->
* @generated
*/
- public String convertR4ECommentEnumToString(EDataType eDataType, Object instanceValue) {
+ public String convertR4ECommentClassToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public R4EContextType createR4EContextType(String literal) {
+ R4EContextType result = R4EContextType.get(literal);
+ if (result == null) throw new IllegalArgumentException("The value '" + literal + "' is not a valid enumerator of '" + RModelPackage.Literals.R4E_CONTEXT_TYPE.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public R4EContextType createR4EContextTypeFromString(EDataType eDataType, String initialValue) {
+ return createR4EContextType(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertR4EContextType(R4EContextType instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertR4EContextTypeToString(EDataType eDataType, Object instanceValue) {
return instanceValue == null ? null : instanceValue.toString();
}
@@ -839,6 +910,42 @@
* <!-- end-user-doc -->
* @generated
*/
+ public IFileRevision createIFileRevision(String literal) {
+ return (IFileRevision)super.createFromString(RModelPackage.Literals.IFILE_REVISION, literal);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IFileRevision createIFileRevisionFromString(EDataType eDataType, String initialValue) {
+ return (IFileRevision)super.createFromString(eDataType, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertIFileRevision(IFileRevision instanceValue) {
+ return super.convertToString(RModelPackage.Literals.IFILE_REVISION, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertIFileRevisionToString(EDataType eDataType, Object instanceValue) {
+ return super.convertToString(eDataType, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public RModelPackage getRModelPackage() {
return (RModelPackage)getEPackage();
}
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/RModelPackageImpl.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/RModelPackageImpl.java
index 7472134..743e83f 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/RModelPackageImpl.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/RModelPackageImpl.java
@@ -31,9 +31,10 @@
import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomalyTextPosition;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomalyType;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EComment;
-import org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentEnum;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentClass;
import org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentType;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EContent;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EContextType;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EDecision;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EDelta;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EFileContext;
@@ -60,6 +61,7 @@
import org.eclipse.mylyn.reviews.r4e.core.model.RModelPackage;
import org.eclipse.mylyn.reviews.r4e.core.model.drules.DRModelPackage;
import org.eclipse.mylyn.tasks.core.ITask;
+import org.eclipse.team.core.history.IFileRevision;
/**
* <!-- begin-user-doc -->
@@ -283,6 +285,20 @@
* <!-- end-user-doc -->
* @generated
*/
+ private EClass mapDateToDurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass mapKeyToInfoAttributesEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
private EEnum r4EAnomalyStateEEnum = null;
/**
@@ -325,7 +341,14 @@
* <!-- end-user-doc -->
* @generated
*/
- private EEnum r4ECommentEnumEEnum = null;
+ private EEnum r4ECommentClassEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum r4EContextTypeEEnum = null;
/**
* <!-- begin-user-doc -->
@@ -349,6 +372,13 @@
private EDataType uriEDataType = null;
/**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType iFileRevisionEDataType = null;
+
+ /**
* Creates an instance of the model <b>Package</b>, registered with
* {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
* package URI value.
@@ -544,7 +574,7 @@
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getR4EReview_CreationDate() {
+ public EAttribute getR4EReview_Project() {
return (EAttribute)r4EReviewEClass.getEStructuralFeatures().get(1);
}
@@ -553,7 +583,7 @@
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getR4EReview_Project() {
+ public EAttribute getR4EReview_Components() {
return (EAttribute)r4EReviewEClass.getEStructuralFeatures().get(2);
}
@@ -562,7 +592,7 @@
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getR4EReview_Components() {
+ public EAttribute getR4EReview_EntryCriteria() {
return (EAttribute)r4EReviewEClass.getEStructuralFeatures().get(3);
}
@@ -571,7 +601,7 @@
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getR4EReview_EntryCriteria() {
+ public EAttribute getR4EReview_ExtraNotes() {
return (EAttribute)r4EReviewEClass.getEStructuralFeatures().get(4);
}
@@ -580,7 +610,7 @@
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getR4EReview_ExtraNotes() {
+ public EAttribute getR4EReview_Objectives() {
return (EAttribute)r4EReviewEClass.getEStructuralFeatures().get(5);
}
@@ -589,7 +619,7 @@
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getR4EReview_Objectives() {
+ public EAttribute getR4EReview_ReferenceMaterial() {
return (EAttribute)r4EReviewEClass.getEStructuralFeatures().get(6);
}
@@ -598,17 +628,8 @@
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getR4EReview_ReferenceMaterial() {
- return (EAttribute)r4EReviewEClass.getEStructuralFeatures().get(7);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
public EReference getR4EReview_Decision() {
- return (EReference)r4EReviewEClass.getEStructuralFeatures().get(8);
+ return (EReference)r4EReviewEClass.getEStructuralFeatures().get(7);
}
/**
@@ -617,7 +638,7 @@
* @generated
*/
public EAttribute getR4EReview_StartDate() {
- return (EAttribute)r4EReviewEClass.getEStructuralFeatures().get(9);
+ return (EAttribute)r4EReviewEClass.getEStructuralFeatures().get(8);
}
/**
@@ -626,7 +647,7 @@
* @generated
*/
public EAttribute getR4EReview_EndDate() {
- return (EAttribute)r4EReviewEClass.getEStructuralFeatures().get(10);
+ return (EAttribute)r4EReviewEClass.getEStructuralFeatures().get(9);
}
/**
@@ -635,7 +656,7 @@
* @generated
*/
public EAttribute getR4EReview_XmlVersion() {
- return (EAttribute)r4EReviewEClass.getEStructuralFeatures().get(11);
+ return (EAttribute)r4EReviewEClass.getEStructuralFeatures().get(10);
}
/**
@@ -644,7 +665,7 @@
* @generated
*/
public EReference getR4EReview_AnomalyTemplate() {
- return (EReference)r4EReviewEClass.getEStructuralFeatures().get(12);
+ return (EReference)r4EReviewEClass.getEStructuralFeatures().get(11);
}
/**
@@ -653,7 +674,7 @@
* @generated
*/
public EAttribute getR4EReview_Type() {
- return (EAttribute)r4EReviewEClass.getEStructuralFeatures().get(13);
+ return (EAttribute)r4EReviewEClass.getEStructuralFeatures().get(12);
}
/**
@@ -662,7 +683,7 @@
* @generated
*/
public EReference getR4EReview_UsersMap() {
- return (EReference)r4EReviewEClass.getEStructuralFeatures().get(14);
+ return (EReference)r4EReviewEClass.getEStructuralFeatures().get(13);
}
/**
@@ -671,7 +692,7 @@
* @generated
*/
public EReference getR4EReview_IdsMap() {
- return (EReference)r4EReviewEClass.getEStructuralFeatures().get(16);
+ return (EReference)r4EReviewEClass.getEStructuralFeatures().get(15);
}
/**
@@ -680,7 +701,7 @@
* @generated
*/
public EReference getR4EReview_CreatedBy() {
- return (EReference)r4EReviewEClass.getEStructuralFeatures().get(15);
+ return (EReference)r4EReviewEClass.getEStructuralFeatures().get(14);
}
/**
@@ -832,7 +853,7 @@
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getR4EAnomaly_FiexeByID() {
+ public EAttribute getR4EAnomaly_FixedByID() {
return (EAttribute)r4EAnomalyEClass.getEStructuralFeatures().get(15);
}
@@ -1084,7 +1105,7 @@
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getR4EParticipant_SpentTime() {
+ public EAttribute getR4EParticipant_FocusArea() {
return (EAttribute)r4EParticipantEClass.getEStructuralFeatures().get(1);
}
@@ -1093,7 +1114,7 @@
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getR4EParticipant_FocusArea() {
+ public EAttribute getR4EParticipant_IsPartOfDecision() {
return (EAttribute)r4EParticipantEClass.getEStructuralFeatures().get(2);
}
@@ -1102,8 +1123,8 @@
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getR4EParticipant_IsPartOfDecision() {
- return (EAttribute)r4EParticipantEClass.getEStructuralFeatures().get(3);
+ public EReference getR4EParticipant_ReviewedContent() {
+ return (EReference)r4EParticipantEClass.getEStructuralFeatures().get(3);
}
/**
@@ -1111,7 +1132,7 @@
* <!-- end-user-doc -->
* @generated
*/
- public EReference getR4EParticipant_ReviewedContent() {
+ public EReference getR4EParticipant_TimeLog() {
return (EReference)r4EParticipantEClass.getEStructuralFeatures().get(4);
}
@@ -1183,6 +1204,33 @@
* <!-- end-user-doc -->
* @generated
*/
+ public EAttribute getR4EItem_AuthorRep() {
+ return (EAttribute)r4EItemEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getR4EItem_Submitted() {
+ return (EAttribute)r4EItemEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getR4EItem_InfoAtt() {
+ return (EReference)r4EItemEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public EClass getR4ETextContent() {
return r4ETextContentEClass;
}
@@ -1354,6 +1402,24 @@
* <!-- end-user-doc -->
* @generated
*/
+ public EAttribute getR4EFileContext_Type() {
+ return (EAttribute)r4EFileContextEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getR4EFileContext_InfoAtt() {
+ return (EReference)r4EFileContextEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public EClass getR4EDelta() {
return r4EDeltaEClass;
}
@@ -1516,6 +1582,33 @@
* <!-- end-user-doc -->
* @generated
*/
+ public EAttribute getR4EFileVersion_LocalVersionID() {
+ return (EAttribute)r4EFileVersionEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getR4EFileVersion_FileRevision() {
+ return (EAttribute)r4EFileVersionEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getR4EFileVersion_InfoAtt() {
+ return (EReference)r4EFileVersionEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public EClass getMapNameToReview() {
return mapNameToReviewEClass;
}
@@ -1714,6 +1807,60 @@
* <!-- end-user-doc -->
* @generated
*/
+ public EClass getMapDateToDuration() {
+ return mapDateToDurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMapDateToDuration_Key() {
+ return (EAttribute)mapDateToDurationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMapDateToDuration_Value() {
+ return (EAttribute)mapDateToDurationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMapKeyToInfoAttributes() {
+ return mapKeyToInfoAttributesEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMapKeyToInfoAttributes_Key() {
+ return (EAttribute)mapKeyToInfoAttributesEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMapKeyToInfoAttributes_Value() {
+ return (EAttribute)mapKeyToInfoAttributesEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public EEnum getR4EAnomalyState() {
return r4EAnomalyStateEEnum;
}
@@ -1768,8 +1915,17 @@
* <!-- end-user-doc -->
* @generated
*/
- public EEnum getR4ECommentEnum() {
- return r4ECommentEnumEEnum;
+ public EEnum getR4ECommentClass() {
+ return r4ECommentClassEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getR4EContextType() {
+ return r4EContextTypeEEnum;
}
/**
@@ -1804,6 +1960,15 @@
* <!-- end-user-doc -->
* @generated
*/
+ public EDataType getIFileRevision() {
+ return iFileRevisionEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public RModelFactory getRModelFactory() {
return (RModelFactory)getEFactoryInstance();
}
@@ -1842,7 +2007,6 @@
r4EReviewEClass = createEClass(R4E_REVIEW);
createEAttribute(r4EReviewEClass, R4E_REVIEW__NAME);
- createEAttribute(r4EReviewEClass, R4E_REVIEW__CREATION_DATE);
createEAttribute(r4EReviewEClass, R4E_REVIEW__PROJECT);
createEAttribute(r4EReviewEClass, R4E_REVIEW__COMPONENTS);
createEAttribute(r4EReviewEClass, R4E_REVIEW__ENTRY_CRITERIA);
@@ -1875,7 +2039,7 @@
createEReference(r4EAnomalyEClass, R4E_ANOMALY__FIXED_IN_VERSION);
createEAttribute(r4EAnomalyEClass, R4E_ANOMALY__RULE_ID);
createEAttribute(r4EAnomalyEClass, R4E_ANOMALY__DECIDED_BY_ID);
- createEAttribute(r4EAnomalyEClass, R4E_ANOMALY__FIEXE_BY_ID);
+ createEAttribute(r4EAnomalyEClass, R4E_ANOMALY__FIXED_BY_ID);
createEAttribute(r4EAnomalyEClass, R4E_ANOMALY__FOLLOW_UP_BY_ID);
r4EFormalReviewEClass = createEClass(R4E_FORMAL_REVIEW);
@@ -1908,10 +2072,10 @@
r4EParticipantEClass = createEClass(R4E_PARTICIPANT);
createEAttribute(r4EParticipantEClass, R4E_PARTICIPANT__ROLES);
- createEAttribute(r4EParticipantEClass, R4E_PARTICIPANT__SPENT_TIME);
createEAttribute(r4EParticipantEClass, R4E_PARTICIPANT__FOCUS_AREA);
createEAttribute(r4EParticipantEClass, R4E_PARTICIPANT__IS_PART_OF_DECISION);
createEReference(r4EParticipantEClass, R4E_PARTICIPANT__REVIEWED_CONTENT);
+ createEReference(r4EParticipantEClass, R4E_PARTICIPANT__TIME_LOG);
r4EItemEClass = createEClass(R4E_ITEM);
createEAttribute(r4EItemEClass, R4E_ITEM__XML_VERSION);
@@ -1920,6 +2084,9 @@
createEReference(r4EItemEClass, R4E_ITEM__FILE_CONTEXT_LIST);
createEAttribute(r4EItemEClass, R4E_ITEM__REPOSITORY_REF);
createEAttribute(r4EItemEClass, R4E_ITEM__PROJECT_UR_IS);
+ createEAttribute(r4EItemEClass, R4E_ITEM__AUTHOR_REP);
+ createEAttribute(r4EItemEClass, R4E_ITEM__SUBMITTED);
+ createEReference(r4EItemEClass, R4E_ITEM__INFO_ATT);
r4ETextContentEClass = createEClass(R4E_TEXT_CONTENT);
createEAttribute(r4ETextContentEClass, R4E_TEXT_CONTENT__CONTENT);
@@ -1947,6 +2114,8 @@
createEReference(r4EFileContextEClass, R4E_FILE_CONTEXT__DELTAS);
createEReference(r4EFileContextEClass, R4E_FILE_CONTEXT__BASE);
createEReference(r4EFileContextEClass, R4E_FILE_CONTEXT__TARGET);
+ createEAttribute(r4EFileContextEClass, R4E_FILE_CONTEXT__TYPE);
+ createEReference(r4EFileContextEClass, R4E_FILE_CONTEXT__INFO_ATT);
r4EDeltaEClass = createEClass(R4E_DELTA);
createEReference(r4EDeltaEClass, R4E_DELTA__BASE);
@@ -1971,6 +2140,9 @@
createEAttribute(r4EFileVersionEClass, R4E_FILE_VERSION__REPOSITORY_PATH);
createEAttribute(r4EFileVersionEClass, R4E_FILE_VERSION__NAME);
createEAttribute(r4EFileVersionEClass, R4E_FILE_VERSION__RESOURCE);
+ createEAttribute(r4EFileVersionEClass, R4E_FILE_VERSION__LOCAL_VERSION_ID);
+ createEAttribute(r4EFileVersionEClass, R4E_FILE_VERSION__FILE_REVISION);
+ createEReference(r4EFileVersionEClass, R4E_FILE_VERSION__INFO_ATT);
mapNameToReviewEClass = createEClass(MAP_NAME_TO_REVIEW);
createEAttribute(mapNameToReviewEClass, MAP_NAME_TO_REVIEW__KEY);
@@ -2001,6 +2173,14 @@
r4EAnomalyTextPositionEClass = createEClass(R4E_ANOMALY_TEXT_POSITION);
createEReference(r4EAnomalyTextPositionEClass, R4E_ANOMALY_TEXT_POSITION__FILE);
+ mapDateToDurationEClass = createEClass(MAP_DATE_TO_DURATION);
+ createEAttribute(mapDateToDurationEClass, MAP_DATE_TO_DURATION__KEY);
+ createEAttribute(mapDateToDurationEClass, MAP_DATE_TO_DURATION__VALUE);
+
+ mapKeyToInfoAttributesEClass = createEClass(MAP_KEY_TO_INFO_ATTRIBUTES);
+ createEAttribute(mapKeyToInfoAttributesEClass, MAP_KEY_TO_INFO_ATTRIBUTES__KEY);
+ createEAttribute(mapKeyToInfoAttributesEClass, MAP_KEY_TO_INFO_ATTRIBUTES__VALUE);
+
// Create enums
r4EAnomalyStateEEnum = createEEnum(R4E_ANOMALY_STATE);
r4EAnomalyRankEEnum = createEEnum(R4E_ANOMALY_RANK);
@@ -2008,12 +2188,14 @@
r4EUserRoleEEnum = createEEnum(R4E_USER_ROLE);
r4EDecisionEEnum = createEEnum(R4E_DECISION);
r4EReviewTypeEEnum = createEEnum(R4E_REVIEW_TYPE);
- r4ECommentEnumEEnum = createEEnum(R4E_COMMENT_ENUM);
+ r4ECommentClassEEnum = createEEnum(R4E_COMMENT_CLASS);
+ r4EContextTypeEEnum = createEEnum(R4E_CONTEXT_TYPE);
// Create data types
mylynTaskEDataType = createEDataType(MYLYN_TASK);
iResourceEDataType = createEDataType(IRESOURCE);
uriEDataType = createEDataType(URI);
+ iFileRevisionEDataType = createEDataType(IFILE_REVISION);
}
/**
@@ -2058,6 +2240,7 @@
r4EFormalReviewEClass.getESuperTypes().add(this.getR4EReview());
r4ETextPositionEClass.getESuperTypes().add(this.getR4EPosition());
r4EUserEClass.getESuperTypes().add(theModelPackage.getUser());
+ r4EUserEClass.getESuperTypes().add(this.getR4EReviewComponent());
r4EParticipantEClass.getESuperTypes().add(this.getR4EUser());
r4EItemEClass.getESuperTypes().add(this.getR4EIDComponent());
r4EItemEClass.getESuperTypes().add(theModelPackage.getItem());
@@ -2093,7 +2276,6 @@
initEClass(r4EReviewEClass, R4EReview.class, "R4EReview", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getR4EReview_Name(), ecorePackage.getEString(), "name", null, 0, 1, R4EReview.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getR4EReview_CreationDate(), ecorePackage.getEDate(), "creationDate", null, 0, 1, R4EReview.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getR4EReview_Project(), ecorePackage.getEString(), "project", null, 0, 1, R4EReview.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getR4EReview_Components(), ecorePackage.getEString(), "components", null, 0, -1, R4EReview.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getR4EReview_EntryCriteria(), ecorePackage.getEString(), "entryCriteria", null, 0, 1, R4EReview.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -2126,7 +2308,7 @@
initEReference(getR4EAnomaly_FixedInVersion(), this.getR4EFileVersion(), null, "fixedInVersion", null, 0, 1, R4EAnomaly.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getR4EAnomaly_RuleID(), ecorePackage.getEString(), "ruleID", null, 0, 1, R4EAnomaly.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getR4EAnomaly_DecidedByID(), ecorePackage.getEString(), "decidedByID", null, 0, 1, R4EAnomaly.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getR4EAnomaly_FiexeByID(), ecorePackage.getEString(), "fiexeByID", null, 0, 1, R4EAnomaly.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getR4EAnomaly_FixedByID(), ecorePackage.getEString(), "fixedByID", null, 0, 1, R4EAnomaly.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getR4EAnomaly_FollowUpByID(), ecorePackage.getEString(), "followUpByID", null, 0, 1, R4EAnomaly.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(r4EFormalReviewEClass, R4EFormalReview.class, "R4EFormalReview", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -2159,10 +2341,10 @@
initEClass(r4EParticipantEClass, R4EParticipant.class, "R4EParticipant", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getR4EParticipant_Roles(), this.getR4EUserRole(), "roles", null, 0, -1, R4EParticipant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getR4EParticipant_SpentTime(), ecorePackage.getEInt(), "spentTime", null, 0, 1, R4EParticipant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getR4EParticipant_FocusArea(), ecorePackage.getEString(), "focusArea", null, 0, 1, R4EParticipant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getR4EParticipant_IsPartOfDecision(), ecorePackage.getEBoolean(), "isPartOfDecision", null, 0, 1, R4EParticipant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getR4EParticipant_ReviewedContent(), this.getR4EID(), null, "reviewedContent", null, 0, -1, R4EParticipant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getR4EParticipant_TimeLog(), this.getMapDateToDuration(), null, "timeLog", null, 0, -1, R4EParticipant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(r4EItemEClass, R4EItem.class, "R4EItem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getR4EItem_XmlVersion(), ecorePackage.getEString(), "xmlVersion", "1.0.0", 0, 1, R4EItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -2171,6 +2353,9 @@
initEReference(getR4EItem_FileContextList(), this.getR4EFileContext(), null, "fileContextList", null, 0, -1, R4EItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getR4EItem_RepositoryRef(), ecorePackage.getEString(), "repositoryRef", null, 0, 1, R4EItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getR4EItem_ProjectURIs(), ecorePackage.getEString(), "ProjectURIs", null, 0, -1, R4EItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getR4EItem_AuthorRep(), ecorePackage.getEString(), "authorRep", null, 0, 1, R4EItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getR4EItem_Submitted(), ecorePackage.getEDate(), "submitted", null, 0, 1, R4EItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getR4EItem_InfoAtt(), this.getMapKeyToInfoAttributes(), null, "infoAtt", null, 0, -1, R4EItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(r4ETextContentEClass, R4ETextContent.class, "R4ETextContent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getR4ETextContent_Content(), ecorePackage.getEString(), "content", null, 0, 1, R4ETextContent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -2198,13 +2383,15 @@
initEReference(getR4EFileContext_Deltas(), this.getR4EDelta(), null, "deltas", null, 0, -1, R4EFileContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getR4EFileContext_Base(), this.getR4EFileVersion(), null, "base", null, 0, 1, R4EFileContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getR4EFileContext_Target(), this.getR4EFileVersion(), null, "target", null, 1, 1, R4EFileContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getR4EFileContext_Type(), this.getR4EContextType(), "type", null, 0, 1, R4EFileContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getR4EFileContext_InfoAtt(), this.getMapKeyToInfoAttributes(), null, "infoAtt", null, 0, -1, R4EFileContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(r4EDeltaEClass, R4EDelta.class, "R4EDelta", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getR4EDelta_Base(), this.getR4EContent(), null, "base", null, 0, 1, R4EDelta.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getR4EDelta_Target(), this.getR4EContent(), null, "target", null, 1, 1, R4EDelta.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(r4ECommentTypeEClass, R4ECommentType.class, "R4ECommentType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getR4ECommentType_Type(), this.getR4ECommentEnum(), "type", null, 0, 1, R4ECommentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getR4ECommentType_Type(), this.getR4ECommentClass(), "type", null, 0, 1, R4ECommentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(mapToAnomalyTypeEClass, Map.Entry.class, "MapToAnomalyType", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getMapToAnomalyType_Key(), ecorePackage.getEString(), "key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -2222,6 +2409,9 @@
initEAttribute(getR4EFileVersion_RepositoryPath(), ecorePackage.getEString(), "repositoryPath", null, 0, 1, R4EFileVersion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getR4EFileVersion_Name(), ecorePackage.getEString(), "name", null, 0, 1, R4EFileVersion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getR4EFileVersion_Resource(), this.getIResource(), "resource", null, 0, 1, R4EFileVersion.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEAttribute(getR4EFileVersion_LocalVersionID(), ecorePackage.getEString(), "localVersionID", null, 0, 1, R4EFileVersion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getR4EFileVersion_FileRevision(), this.getIFileRevision(), "fileRevision", null, 0, 1, R4EFileVersion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getR4EFileVersion_InfoAtt(), this.getMapKeyToInfoAttributes(), null, "infoAtt", null, 0, -1, R4EFileVersion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(mapNameToReviewEClass, Map.Entry.class, "MapNameToReview", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getMapNameToReview_Key(), ecorePackage.getEString(), "key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -2252,6 +2442,14 @@
initEClass(r4EAnomalyTextPositionEClass, R4EAnomalyTextPosition.class, "R4EAnomalyTextPosition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getR4EAnomalyTextPosition_File(), this.getR4EFileVersion(), null, "file", null, 0, 1, R4EAnomalyTextPosition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEClass(mapDateToDurationEClass, Map.Entry.class, "MapDateToDuration", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getMapDateToDuration_Key(), ecorePackage.getEDate(), "key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMapDateToDuration_Value(), ecorePackage.getEIntegerObject(), "value", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(mapKeyToInfoAttributesEClass, Map.Entry.class, "MapKeyToInfoAttributes", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getMapKeyToInfoAttributes_Key(), ecorePackage.getEString(), "key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMapKeyToInfoAttributes_Value(), ecorePackage.getEString(), "value", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
// Initialize enums and add enum literals
initEEnum(r4EAnomalyStateEEnum, R4EAnomalyState.class, "R4EAnomalyState");
addEEnumLiteral(r4EAnomalyStateEEnum, R4EAnomalyState.R4E_ANOMALY_STATE_CREATED);
@@ -2260,8 +2458,8 @@
addEEnumLiteral(r4EAnomalyStateEEnum, R4EAnomalyState.R4E_ANOMALY_STATE_FIXED);
addEEnumLiteral(r4EAnomalyStateEEnum, R4EAnomalyState.R4E_ANOMALY_STATE_DUPLICATED);
addEEnumLiteral(r4EAnomalyStateEEnum, R4EAnomalyState.R4E_ANOMALY_STATE_REJECTED);
- addEEnumLiteral(r4EAnomalyStateEEnum, R4EAnomalyState.R4E_ANOMALY_STATE_POSTPONED);
- addEEnumLiteral(r4EAnomalyStateEEnum, R4EAnomalyState.R4E_ANOMALY_SATE_VERIFIED);
+ addEEnumLiteral(r4EAnomalyStateEEnum, R4EAnomalyState.R4E_ANOMALY_STATE_DEFERRED);
+ addEEnumLiteral(r4EAnomalyStateEEnum, R4EAnomalyState.R4E_ANOMALY_STATE_VERIFIED);
initEEnum(r4EAnomalyRankEEnum, R4EAnomalyRank.class, "R4EAnomalyRank");
addEEnumLiteral(r4EAnomalyRankEEnum, R4EAnomalyRank.R4E_ANOMALY_RANK_NONE);
@@ -2292,13 +2490,24 @@
addEEnumLiteral(r4EReviewTypeEEnum, R4EReviewType.R4E_REVIEW_TYPE_INFORMAL);
addEEnumLiteral(r4EReviewTypeEEnum, R4EReviewType.R4E_REVIEW_TYPE_FORMAL);
- initEEnum(r4ECommentEnumEEnum, R4ECommentEnum.class, "R4ECommentEnum");
- addEEnumLiteral(r4ECommentEnumEEnum, R4ECommentEnum.R4E_COMMENT_BASE);
+ initEEnum(r4ECommentClassEEnum, R4ECommentClass.class, "R4ECommentClass");
+ addEEnumLiteral(r4ECommentClassEEnum, R4ECommentClass.R4E_CLASS_ERRONEOUS);
+ addEEnumLiteral(r4ECommentClassEEnum, R4ECommentClass.R4E_CLASS_SUPERFLUOUS);
+ addEEnumLiteral(r4ECommentClassEEnum, R4ECommentClass.R4E_CLASS_IMPROVEMENT);
+ addEEnumLiteral(r4ECommentClassEEnum, R4ECommentClass.R4E_CLASS_QUESTION);
+
+ initEEnum(r4EContextTypeEEnum, R4EContextType.class, "R4EContextType");
+ addEEnumLiteral(r4EContextTypeEEnum, R4EContextType.R4E_UNDEFINED);
+ addEEnumLiteral(r4EContextTypeEEnum, R4EContextType.R4E_ADDED);
+ addEEnumLiteral(r4EContextTypeEEnum, R4EContextType.R4E_DELETED);
+ addEEnumLiteral(r4EContextTypeEEnum, R4EContextType.R4E_MODIFIED);
+ addEEnumLiteral(r4EContextTypeEEnum, R4EContextType.R4E_REPLACED);
// Initialize data types
initEDataType(mylynTaskEDataType, ITask.class, "MylynTask", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
initEDataType(iResourceEDataType, IResource.class, "IResource", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
initEDataType(uriEDataType, org.eclipse.emf.common.util.URI.class, "URI", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(iFileRevisionEDataType, IFileRevision.class, "IFileRevision", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
// Create resource
createResource(eNS_URI);
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/serial/impl/RModelFactoryExtImpl.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/serial/impl/RModelFactoryExtImpl.java
index 84f0a82..8efb3f8 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/serial/impl/RModelFactoryExtImpl.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/serial/impl/RModelFactoryExtImpl.java
@@ -235,7 +235,6 @@
R4EReviewState state = RModelFactory.eINSTANCE.createR4EReviewState();
state.setState(R4EReviewPhase.R4E_REVIEW_PHASE_STARTED);
review.setCreatedBy(participant);
- review.setCreationDate(now);
review.setStartDate(now);
review.getUsersMap().put(participant.getId(), participant);
review.setState(state);
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/util/RModelAdapterFactory.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/util/RModelAdapterFactory.java
index 6ba4a25..f019ba7 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/util/RModelAdapterFactory.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/util/RModelAdapterFactory.java
@@ -14,6 +14,7 @@
*/
package org.eclipse.mylyn.reviews.r4e.core.model.util;
+import java.util.Date;
import java.util.Map;
import org.eclipse.emf.common.notify.Adapter;
@@ -235,6 +236,14 @@
return createR4EAnomalyTextPositionAdapter();
}
@Override
+ public Adapter caseMapDateToDuration(Map.Entry<Date, Integer> object) {
+ return createMapDateToDurationAdapter();
+ }
+ @Override
+ public Adapter caseMapKeyToInfoAttributes(Map.Entry<String, String> object) {
+ return createMapKeyToInfoAttributesAdapter();
+ }
+ @Override
public Adapter caseReviewComponent(ReviewComponent object) {
return createReviewComponentAdapter();
}
@@ -719,6 +728,34 @@
}
/**
+ * Creates a new adapter for an object of class '{@link java.util.Map.Entry <em>Map Date To Duration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see java.util.Map.Entry
+ * @generated
+ */
+ public Adapter createMapDateToDurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link java.util.Map.Entry <em>Map Key To Info Attributes</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see java.util.Map.Entry
+ * @generated
+ */
+ public Adapter createMapKeyToInfoAttributesAdapter() {
+ return null;
+ }
+
+ /**
* Creates a new adapter for an object of class '{@link org.eclipse.mylyn.reviews.frame.core.model.ReviewComponent <em>Review Component</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/util/RModelSwitch.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/util/RModelSwitch.java
index 58fb063..7427dd2 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/util/RModelSwitch.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/util/RModelSwitch.java
@@ -14,6 +14,7 @@
*/
package org.eclipse.mylyn.reviews.r4e.core.model.util;
+import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -188,6 +189,8 @@
R4EUser r4EUser = (R4EUser)theEObject;
T result = caseR4EUser(r4EUser);
if (result == null) result = caseUser(r4EUser);
+ if (result == null) result = caseR4EReviewComponent(r4EUser);
+ if (result == null) result = caseReviewComponent(r4EUser);
if (result == null) result = defaultCase(theEObject);
return result;
}
@@ -196,6 +199,8 @@
T result = caseR4EParticipant(r4EParticipant);
if (result == null) result = caseR4EUser(r4EParticipant);
if (result == null) result = caseUser(r4EParticipant);
+ if (result == null) result = caseR4EReviewComponent(r4EParticipant);
+ if (result == null) result = caseReviewComponent(r4EParticipant);
if (result == null) result = defaultCase(theEObject);
return result;
}
@@ -360,6 +365,18 @@
if (result == null) result = defaultCase(theEObject);
return result;
}
+ case RModelPackage.MAP_DATE_TO_DURATION: {
+ @SuppressWarnings("unchecked") Map.Entry<Date, Integer> mapDateToDuration = (Map.Entry<Date, Integer>)theEObject;
+ T result = caseMapDateToDuration(mapDateToDuration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case RModelPackage.MAP_KEY_TO_INFO_ATTRIBUTES: {
+ @SuppressWarnings("unchecked") Map.Entry<String, String> mapKeyToInfoAttributes = (Map.Entry<String, String>)theEObject;
+ T result = caseMapKeyToInfoAttributes(mapKeyToInfoAttributes);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
default: return defaultCase(theEObject);
}
}
@@ -815,6 +832,36 @@
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>Map Date To Duration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Map Date To Duration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMapDateToDuration(Map.Entry<Date, Integer> object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Map Key To Info Attributes</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Map Key To Info Attributes</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMapKeyToInfoAttributes(Map.Entry<String, String> object) {
+ return null;
+ }
+
+ /**
* Returns the result of interpreting the object as an instance of '<em>Review Component</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/rfs/ReviewsRFSProxy.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/rfs/ReviewsRFSProxy.java
new file mode 100644
index 0000000..0d41e2e
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/rfs/ReviewsRFSProxy.java
@@ -0,0 +1,183 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * Contributors:
+ * Alvaro Sanchez-Leon - Initial API
+ *******************************************************************************/
+package org.eclipse.mylyn.reviews.r4e.core.rfs;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jgit.lib.Constants;
+import org.eclipse.jgit.lib.ObjectId;
+import org.eclipse.jgit.lib.ObjectInserter;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.lib.RepositoryCache.FileKey;
+import org.eclipse.jgit.storage.file.FileRepository;
+import org.eclipse.jgit.util.FS;
+import org.eclipse.mylyn.reviews.r4e.core.Activator;
+import org.eclipse.mylyn.reviews.r4e.core.rfs.spi.IRFSRegistry;
+import org.eclipse.mylyn.reviews.r4e.core.rfs.spi.ReviewsFileStorageException;
+import org.eclipse.mylyn.reviews.r4e.core.utils.filePermission.FileSupportCommandFactory;
+import org.eclipse.mylyn.reviews.r4e.core.versions.ReviewVersionsException;
+
+/**
+ * @author lmcalvs
+ *
+ */
+public class ReviewsRFSProxy implements IRFSRegistry {
+ // ------------------------------------------------------------------------
+ // Constants
+ // ------------------------------------------------------------------------
+
+ private static final String repoName = "R4EBareRepo.git";
+ private ObjectInserter fInserter = null;
+ private Repository fRepository = null;
+
+ // ------------------------------------------------------------------------
+ // Constructors
+ // ------------------------------------------------------------------------
+ /**
+ * @param aParentDir
+ * @throws IOException
+ */
+ public ReviewsRFSProxy(File aReviewGroupDir, boolean create) throws ReviewsFileStorageException {
+ File repoLoc = new File(aReviewGroupDir, repoName);
+ if (create) {
+ fRepository = initializeRepo(repoLoc);
+ } else {
+ fRepository = openRepository(repoLoc);
+ }
+
+ fInserter = fRepository.newObjectInserter();
+ }
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * @param aReviewGroupDir
+ * @return
+ * @throws ReviewVersionsException
+ */
+ private Repository initializeRepo(File aReviewGroupDir) throws ReviewsFileStorageException {
+ try {
+ Repository newRepo = new FileRepository(aReviewGroupDir);
+ newRepo.create(true);
+ newRepo.getConfig().setString("core", null, "sharedrepository", "0666");
+ newRepo.getConfig().save();
+
+ return newRepo;
+ } catch (IOException e) {
+ throw new ReviewsFileStorageException(e);
+ }
+ }
+
+ /**
+ * @param aReviewGroupDir
+ * @return
+ * @throws ReviewVersionsException
+ */
+ private Repository openRepository(File aReviewGroupDir) throws ReviewsFileStorageException {
+ Repository r;
+ try {
+ r = FileKey.exact(aReviewGroupDir, FS.DETECTED).open(true);
+ } catch (IOException e) {
+ throw new ReviewsFileStorageException(e);
+ }
+ return r;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.mylyn.reviews.r4e.core.rrepo.IBlobRegistry#registerReviewBlob(byte[])
+ */
+ public ObjectId registerReviewBlob(final byte[] content) throws Exception {
+ ObjectId id;
+
+ try {
+ id = fInserter.insert(Constants.OBJ_BLOB, content);
+ fInserter.flush();
+ FileSupportCommandFactory.getInstance().grantWritePermission(fRepository.getDirectory().getAbsolutePath());
+ } finally {
+ fInserter.release();
+ }
+
+ return id;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.mylyn.reviews.r4e.core.rrepo.IBlobRegistry#registerReviewBlob(java.io.File)
+ */
+ public ObjectId registerReviewBlob(final File aFromFile) throws ReviewsFileStorageException {
+ InputStream stream = null;
+ try {
+ stream = new FileInputStream(aFromFile);
+ } catch (FileNotFoundException e) {
+ throw new ReviewsFileStorageException(e);
+ }
+
+ ObjectId id;
+ try {
+ id = fInserter.insert(Constants.OBJ_BLOB, aFromFile.length(), stream);
+ fInserter.flush();
+ FileSupportCommandFactory.getInstance().grantWritePermission(fRepository.getDirectory().getAbsolutePath());
+ } catch (IOException e) {
+ throw new ReviewsFileStorageException(e);
+ } finally {
+ fInserter.release();
+ if (stream != null) {
+ try {
+ stream.close();
+ } catch (IOException e) {
+ StringBuilder sb = new StringBuilder("Exception: " + e.getMessage());
+ Activator.fTracer.traceDebug(sb.toString());
+ }
+ }
+ }
+
+ return id;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.mylyn.reviews.r4e.core.rrepo.IBlobRegistry#getBlobContent(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.jgit.lib.ObjectId)
+ */
+ public InputStream getBlobContent(IProgressMonitor monitor, ObjectId id) throws ReviewsFileStorageException {
+ InputStream resStream = null;
+
+ try {
+ resStream = fRepository.open(id, Constants.OBJ_BLOB).openStream();
+ } catch (Exception e) {
+ throw new ReviewsFileStorageException(e);
+ }
+
+ return resStream;
+ }
+
+ /**
+ * @return
+ */
+ public Repository getRepository() {
+ return fRepository;
+ }
+
+ /**
+ * Convenience method to close the repository data base
+ */
+ public void close() {
+ fRepository.close();
+ }
+
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/rfs/spi/IRFSRegistry.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/rfs/spi/IRFSRegistry.java
new file mode 100644
index 0000000..d932a62
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/rfs/spi/IRFSRegistry.java
@@ -0,0 +1,38 @@
+package org.eclipse.mylyn.reviews.r4e.core.rfs.spi;
+
+import java.io.File;
+import java.io.InputStream;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jgit.lib.ObjectId;
+import org.eclipse.mylyn.reviews.r4e.core.versions.ReviewVersionsException;
+
+public interface IRFSRegistry {
+
+ /**
+ * @param content
+ * @return
+ * @throws Exception
+ */
+ public abstract ObjectId registerReviewBlob(final byte[] content) throws Exception;
+
+ /**
+ * Register a blob by copying existing file content
+ *
+ * @param aFromFile
+ * @return
+ * @throws ReviewVersionsException
+ */
+ public abstract ObjectId registerReviewBlob(final File aFromFile) throws ReviewsFileStorageException;
+
+ /**
+ * @param monitor
+ * @param id
+ * - Blob type is expected
+ * @return - The stream shall be closed by the receiver
+ * @throws ReviewVersionsException
+ */
+ public abstract InputStream getBlobContent(IProgressMonitor monitor, ObjectId id)
+ throws ReviewsFileStorageException;
+
+}
\ No newline at end of file
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/rfs/spi/RFSRegistryFactory.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/rfs/spi/RFSRegistryFactory.java
new file mode 100644
index 0000000..238a90b
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/rfs/spi/RFSRegistryFactory.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * Contributors:
+ * Alvaro Sanchez-Leon - Initial API
+ *******************************************************************************/
+package org.eclipse.mylyn.reviews.r4e.core.rfs.spi;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewGroup;
+import org.eclipse.mylyn.reviews.r4e.core.rfs.ReviewsRFSProxy;
+
+/**
+ * @author lmcalvs
+ *
+ */
+public class RFSRegistryFactory {
+ private static final Map<R4EReviewGroup, ReviewsRFSProxy> fOpenStore = new HashMap<R4EReviewGroup, ReviewsRFSProxy>();
+
+ public static IRFSRegistry getRegistry(R4EReviewGroup aGroup) throws ReviewsFileStorageException {
+ // If still using the same group, return cached instance
+ ReviewsRFSProxy cachedGroupStorage = fOpenStore.get(aGroup);
+ if (cachedGroupStorage != null) {
+ return cachedGroupStorage;
+ }
+
+ // close previous review group storage
+ Set<R4EReviewGroup> groups = fOpenStore.keySet();
+ for (Iterator<R4EReviewGroup> iterator = groups.iterator(); iterator.hasNext();) {
+ R4EReviewGroup group = iterator.next();
+ ReviewsRFSProxy rfs = fOpenStore.get(group);
+ if (rfs != null) {
+ rfs.close();
+ }
+ }
+ fOpenStore.clear();
+
+ // Create new instance and cache it
+ File groupDir = new File(aGroup.getFolder());
+ ReviewsRFSProxy fsStore = new ReviewsRFSProxy(groupDir, false);
+ fOpenStore.put(aGroup, fsStore);
+
+ return fsStore;
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/rfs/spi/ReviewsFileStorageException.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/rfs/spi/ReviewsFileStorageException.java
new file mode 100644
index 0000000..8b7a8d1
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/rfs/spi/ReviewsFileStorageException.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * Contributors:
+ * Alvaro Sanchez-Leon - Initial API
+ *******************************************************************************/
+package org.eclipse.mylyn.reviews.r4e.core.rfs.spi;
+
+/**
+ * @author lmcalvs
+ *
+ */
+public class ReviewsFileStorageException extends Exception {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 2039821628997910836L;
+
+ // ------------------------------------------------------------------------
+ // Constructors
+ // ------------------------------------------------------------------------
+ /**
+ * @param aMessage
+ */
+ public ReviewsFileStorageException(String aMessage) {
+ super(aMessage);
+ }
+
+ /**
+ * @param aMessage
+ * @param aChainedExc
+ * - Original chained Exception
+ */
+ public ReviewsFileStorageException(String aMessage, Throwable aChainedExc) {
+ super(aMessage, aChainedExc);
+ }
+
+ /**
+ * @param aChainedExc
+ * Original chained Exception
+ */
+ public ReviewsFileStorageException(Throwable aChainedExc) {
+ super(aChainedExc);
+ }
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/utils/cmd/BaseSupportCommand.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/utils/cmd/BaseSupportCommand.java
index 5de4c68..60ad166 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/utils/cmd/BaseSupportCommand.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/utils/cmd/BaseSupportCommand.java
@@ -43,11 +43,6 @@
return new String("");
}
- int size = results.size();
- if (size == 0) {
- return new String("");
- }
-
// reasonable limit to 10 lines, if more lines needed, use method "execute"
StringBuilder result = new StringBuilder();
int maxLines = results.size() > 10 ? 10 : results.size();
@@ -99,7 +94,11 @@
}
}
- results = outputStream.getLines();
+ if (exitValue == 0) {
+ results = outputStream.getLines();
+ } else {
+ results = errorStream.getLines();
+ }
// Print errors, if any
if (notifyIfError) {
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/utils/filePermission/UnixPermission.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/utils/filePermission/UnixPermission.java
index 2cfa9a5..bdc3001 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/utils/filePermission/UnixPermission.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/utils/filePermission/UnixPermission.java
@@ -48,9 +48,10 @@
String ret = executeWithStringReturned(null, command, true /* wait */,
false /* ignore error */);
Activator.fTracer.traceInfo("changePermission() ret: " + ret);
- if (ret.length() > 0) {
+ if (ret.length() == 0) {
b = true;
- Activator.fTracer.traceInfo("Return msg from changePermission: " + ret);
+ } else {
+ Activator.fTracer.traceInfo("Return msg from changePermission: " + ret);
}
return b;
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/utils/filePermission/WindowPermission.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/utils/filePermission/WindowPermission.java
index 8c39d0a..b9741bb 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/utils/filePermission/WindowPermission.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/utils/filePermission/WindowPermission.java
@@ -14,6 +14,7 @@
*******************************************************************************/
package org.eclipse.mylyn.reviews.r4e.core.utils.filePermission;
+import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@@ -37,6 +38,9 @@
*/
public boolean grantWritePermission(String dir) throws IOException {
Boolean b = false;
+ File tstFile = new File(dir);
+ boolean isDirectory = tstFile.isDirectory();
+
// Activator.Tracer.traceInfo("Changing permissions for dir: " + dir);
// NOTE: The permissions can be changed by the file / folder owner only, i.e. This update shall be done right
@@ -46,7 +50,9 @@
command.add(dir); // filename or directory to modify
command.add("/grant");
command.add("Everyone:F");
- // command.add("/T"); // Change ACLs recursively
+ if (isDirectory) {
+ command.add("/T"); // Change ACLs recursively
+ }
String ret = executeWithStringReturned(null, command, true /* wait */,
true /* ignore error */);
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/versions/IReviewsVersions.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/versions/IReviewsVersions.java
new file mode 100644
index 0000000..316c31f
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/versions/IReviewsVersions.java
@@ -0,0 +1,136 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * Contributors:
+ * Alvaro Sanchez-Leon - Initial API
+ *******************************************************************************/
+/**
+ *
+ */
+package org.eclipse.mylyn.reviews.r4e.core.versions;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EFileContext;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EItem;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EUser;
+
+/**
+ * @author lmcalvs
+ *
+ */
+public interface IReviewsVersions {
+ // ------------------------------------------------------------------------
+ // Fields
+ // ------------------------------------------------------------------------
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+ /**
+ * Query for the support of the team provider associated to a given project
+ *
+ * @param project
+ * @return
+ */
+ public boolean isProviderSupported(IProject project);
+
+ /**
+ * @param project
+ * @return
+ * @throws ReviewVersionsException
+ */
+ public CommitDescriptor getLastCommitInfo(IProject project) throws ReviewVersionsException;
+
+ /**
+ * @param project
+ * @param commitId
+ * @return
+ * @throws ReviewVersionsException
+ */
+ public CommitDescriptor getCommitInfo(IProject project, String commitId) throws ReviewVersionsException;
+
+ /**
+ * Creates a Commit review item with the related file contexts derived from the commit NOTE: The R4EItem return is
+ * not associated to any EMF Resources
+ *
+ * @param project
+ * @param commiId
+ * @param reviewUser
+ * @return
+ * @throws ReviewVersionsException
+ */
+ public R4EItem createCommitReviewItem(IProject project, String commiId, R4EUser reviewUser)
+ throws ReviewVersionsException;
+
+ /**
+ * Obtain the repository information for the last commit of the given file
+ *
+ * @param workspaceFile
+ * @return
+ * @throws ReviewVersionsException
+ */
+ public FileVersionInfo getFileVersionInfo(IFile workspaceFile) throws ReviewVersionsException;
+
+ /**
+ * Request a compare session to open the compare editor for the associated context
+ *
+ * @param item
+ * @return - compare session id as a string
+ * @throws ReviewVersionsException
+ */
+ public String openCompareSession(R4EItem item) throws ReviewVersionsException;
+
+ /**
+ * @param session
+ * @param context
+ * @throws ReviewVersionsException
+ */
+ public void openCompareEditor(String session, R4EFileContext context) throws ReviewVersionsException;
+
+ /**
+ * @param session
+ */
+ public void closeCompareSession(String session);
+
+ public interface CommitDescriptor {
+ public String getId();
+
+ /**
+ * @return time, expressed as milliseconds since the epoch.
+ */
+ public Long getCommitDate();
+
+ public String getCommitter();
+
+ public String getAuthor();
+
+ public String getTitle();
+
+ public String getMessage();
+
+ public String[] getParentIDs();
+
+ /**
+ * Returns a list of paths to the affected elements
+ *
+ * @return
+ */
+ public String[] getChangeSet();
+ }
+
+ public interface FileVersionInfo {
+ public String getRepositoryPath();
+
+ public String getId();
+
+ public String getName();
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.egitproxy/.classpath b/org.eclipse.mylyn.reviews.r4e.egitproxy/.classpath
index 8a8f166..64c5e31 100644
--- a/org.eclipse.mylyn.reviews.r4e.egitproxy/.classpath
+++ b/org.eclipse.mylyn.reviews.r4e.egitproxy/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.mylyn.reviews.r4e.egitproxy/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.reviews.r4e.egitproxy/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..c234c99
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.egitproxy/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Tue Feb 15 13:31:25 PST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.eclipse.mylyn.reviews.r4e.feature/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.reviews.r4e.feature/.settings/org.eclipse.jdt.core.prefs
index f1554b1..e8f28d3 100644
--- a/org.eclipse.mylyn.reviews.r4e.feature/.settings/org.eclipse.jdt.core.prefs
+++ b/org.eclipse.mylyn.reviews.r4e.feature/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,4 @@
-#Tue May 12 20:42:43 PDT 2009
+#Wed Mar 02 16:00:04 PST 2011
eclipse.preferences.version=1
org.eclipse.jdt.core.codeComplete.argumentPrefixes=
org.eclipse.jdt.core.codeComplete.argumentSuffixes=
@@ -81,6 +81,7 @@
org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
@@ -88,9 +89,10 @@
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=48
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
@@ -137,10 +139,16 @@
org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
org.eclipse.jdt.core.formatter.compact_else_if=true
org.eclipse.jdt.core.formatter.continuation_indentation=2
org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
@@ -153,9 +161,14 @@
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
org.eclipse.jdt.core.formatter.indentation.size=4
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
@@ -338,5 +351,7 @@
org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/org.eclipse.mylyn.reviews.r4e.feature/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn.reviews.r4e.feature/.settings/org.eclipse.jdt.ui.prefs
index 8d68e73..d92dfc1 100644
--- a/org.eclipse.mylyn.reviews.r4e.feature/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.mylyn.reviews.r4e.feature/.settings/org.eclipse.jdt.ui.prefs
@@ -1,16 +1,16 @@
-#Thu Sep 11 16:27:18 PDT 2008
+#Wed Mar 02 16:00:08 PST 2011
cleanup_settings_version=2
eclipse.preferences.version=1
editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
formatter_profile=_Mylyn based on Eclipse
-formatter_settings_version=11
+formatter_settings_version=12
internal.default.compliance=default
org.eclipse.jdt.ui.exception.name=e
org.eclipse.jdt.ui.gettersetter.use.is=true
org.eclipse.jdt.ui.javadoc=false
org.eclipse.jdt.ui.keywordthis=false
org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2010 Tasktop Technologies and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * Tasktop Technologies - initial API and implementation\r\n *******************************************************************************/\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) ${year} Tasktop Technologies and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n * Tasktop Technologies - initial API and implementation\r\n *******************************************************************************/\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
sp_cleanup.add_default_serial_version_id=true
sp_cleanup.add_generated_serial_version_id=false
sp_cleanup.add_missing_annotations=true
diff --git a/org.eclipse.mylyn.reviews.r4e.help/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.reviews.r4e.help/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..3930a61
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.help/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Tue Feb 15 13:31:16 PST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/.classpath b/org.eclipse.mylyn.reviews.r4e.ui/.classpath
index 8a8f166..64c5e31 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/.classpath
+++ b/org.eclipse.mylyn.reviews.r4e.ui/.classpath
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.reviews.r4e.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..5eb9a80
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Tue Feb 15 13:31:09 PST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/META-INF/MANIFEST.MF b/org.eclipse.mylyn.reviews.r4e.ui/META-INF/MANIFEST.MF
index 83a5241..14dcaab 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.reviews.r4e.ui/META-INF/MANIFEST.MF
@@ -16,13 +16,27 @@
org.eclipse.jface.text;bundle-version="3.5.0",
org.eclipse.ui.editors;bundle-version="3.5.0",
org.eclipse.jdt.core;bundle-version="3.5.0",
- org.eclipse.cdt.core;bundle-version="5.0.0",
+ org.eclipse.cdt.core;bundle-version="5.0.0";resolution:=optional,
org.eclipse.mylyn.reviews.frame.core;bundle-version="0.1.0",
org.eclipse.mylyn.reviews.r4e.core;bundle-version="0.1.0",
org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.0",
+ org.eclipse.emf.ecore;bundle-version="2.5.0",
org.eclipse.core.expressions
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Import-Package: org.apache.commons.io;version="1.4.0",
org.eclipse.egit.ui.internal;version="0.9.1"
Bundle-Vendor: %providerName
+Export-Package: org.eclipse.mylyn.reviews.r4e.ui;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.ui.commands;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.ui.commands.filters;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.ui.commands.sorters;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.ui.dialogs;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.ui.editors;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.ui.filters;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.ui.model;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.ui.navigator;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.ui.preferences;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.ui.properties.general;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed;x-internal:=true,
+ org.eclipse.mylyn.reviews.r4e.ui.utils;x-internal:=true
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/plugin.xml b/org.eclipse.mylyn.reviews.r4e.ui/plugin.xml
index 0847908..4742ce9 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/plugin.xml
+++ b/org.eclipse.mylyn.reviews.r4e.ui/plugin.xml
@@ -33,7 +33,7 @@
<view
allowMultiple="false"
category="org.eclipse.mylyn.reviews.r4e.ui.navigatorViewCategory"
- class="org.eclipse.mylyn.reviews.r4e.ui.properties.R4EPropertiesView"
+ class="org.eclipse.mylyn.reviews.r4e.ui.properties.general.R4EPropertiesView"
icon="icons/elcl16/lnkprop_menu.gif"
id="org.eclipse.mylyn.reviews.r4e.ui.properties.R4EPropertiesView"
name="R4E Properties"
@@ -165,16 +165,11 @@
<visibleWhen
checkEnabled="false">
<and>
- <with
- variable="org.eclipse.mylyn.reviews.r4e.ui.commands.review">
- <not>
- <equals
- value="null">
- </equals>
- </not>
- </with>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.review.completed">
+ </test>
+ <test
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</and>
</visibleWhen>
@@ -391,18 +386,21 @@
</category>
<command
categoryId="org.eclipse.mylyn.reviews.r4e.ui.commands.reviewCategory"
+ defaultHandler="org.eclipse.mylyn.reviews.r4e.ui.commands.AddReviewItemHandler"
description="Add a Review Item to the Current Review"
id="org.eclipse.mylyn.reviews.r4e.ui.commands.AddReviewItem"
name="Add Review Item">
</command>
<command
categoryId="org.eclipse.mylyn.reviews.r4e.ui.commands.reviewCategory"
+ defaultHandler="org.eclipse.mylyn.reviews.r4e.ui.commands.AddAnomalyHandler"
description="Add an Anomaly to the Current Review"
id="org.eclipse.mylyn.reviews.r4e.ui.commands.AddAnomaly"
name="Add Anomaly">
</command>
<command
categoryId="org.eclipse.mylyn.reviews.r4e.ui.commands.reviewCategory"
+ defaultHandler="org.eclipse.mylyn.reviews.r4e.ui.commands.FindReviewItemsHandler"
description="Find Review Items from a given Project in Workspace"
id="org.eclipse.mylyn.reviews.r4e.ui.commands.FindReviewItems"
name="Find Review Items">
@@ -607,7 +605,11 @@
<sourceProvider
provider="org.eclipse.mylyn.reviews.r4e.ui.commands.ReviewState">
<variable
- name="org.eclipse.mylyn.reviews.r4e.ui.commands.review"
+ name="org.eclipse.mylyn.reviews.r4e.ui.commands.reviewCurrent"
+ priorityLevel="workbench">
+ </variable>
+ <variable
+ name="org.eclipse.mylyn.reviews.r4e.ui.commands.reviewCompleted"
priorityLevel="workbench">
</variable>
</sourceProvider>
@@ -624,68 +626,11 @@
<extension
point="org.eclipse.ui.handlers">
<handler
- class="org.eclipse.mylyn.reviews.r4e.ui.commands.AddReviewItemHandler"
- commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.AddReviewItem">
- <activeWhen>
- <and>
- <with
- variable="org.eclipse.mylyn.reviews.r4e.ui.commands.review">
- <not>
- <equals
- value="null">
- </equals>
- </not>
- </with>
- <test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
- </test>
- </and>
- </activeWhen>
- </handler>
- <handler
- class="org.eclipse.mylyn.reviews.r4e.ui.commands.AddAnomalyHandler"
- commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.AddAnomaly">
- <activeWhen>
- <and>
- <with
- variable="org.eclipse.mylyn.reviews.r4e.ui.commands.review">
- <not>
- <equals
- value="null">
- </equals>
- </not>
- </with>
- <test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
- </test>
- </and>
- </activeWhen>
- </handler>
- <handler
- class="org.eclipse.mylyn.reviews.r4e.ui.commands.FindReviewItemsHandler"
- commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.FindReviewItems">
- <activeWhen>
- <and>
- <with
- variable="org.eclipse.mylyn.reviews.r4e.ui.commands.review">
- <not>
- <equals
- value="null">
- </equals>
- </not>
- </with>
- <test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
- </test>
- </and>
- </activeWhen>
- </handler>
- <handler
class="org.eclipse.mylyn.reviews.r4e.ui.commands.SelectNextHandler"
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.SelectNext">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -694,7 +639,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.SelectPrevious">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -703,7 +648,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.Refresh">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -712,7 +657,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.ExpandAll">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -721,7 +666,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.CollapseAll">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -730,7 +675,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.LinkEditor">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -739,7 +684,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.LinkProperties">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -748,7 +693,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.filters.RemoveAll">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -757,7 +702,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.filters.CurrentReview">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -766,7 +711,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.filters.ReviewsOnly">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -775,7 +720,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.filters.Anomalies">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -784,7 +729,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.filters.ReviewedElems">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -793,7 +738,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.filters.ReviewsMy">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -802,7 +747,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.filters.ReviewsParticipant">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -811,7 +756,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.sorters.DefaultSort">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -820,7 +765,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.addLinkedAnomaly">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -829,7 +774,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.openEditor">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -838,7 +783,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.changeReviewState">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -847,7 +792,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.openElement">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -856,7 +801,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.closeElement">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -865,7 +810,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.addChildElement">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -874,7 +819,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.removeElement">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -883,7 +828,7 @@
commandId="org.eclipse.mylyn.reviews.r4e.ui.commands.restoreElement">
<enabledWhen>
<test
- property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpen">
+ property="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.dialogOpen">
</test>
</enabledWhen>
</handler>
@@ -908,6 +853,12 @@
<propertyTab
afterTab="org.eclipse.mylyn.reviews.r4e.ui.properties.propertyDetailedTab"
category="org.eclipse.mylyn.reviews.r4e.ui.properties.NavigatorPropertiesCategory"
+ id="org.eclipse.mylyn.reviews.r4e.ui.properties.propertyExtraTab"
+ label="Extra">
+ </propertyTab>
+ <propertyTab
+ afterTab="org.eclipse.mylyn.reviews.r4e.ui.properties.propertyExtraTab"
+ category="org.eclipse.mylyn.reviews.r4e.ui.properties.NavigatorPropertiesCategory"
id="org.eclipse.mylyn.reviews.r4e.ui.properties.propertyClassicTab"
label="All">
</propertyTab>
@@ -918,31 +869,55 @@
<propertySections
contributorId="org.eclipse.mylyn.reviews.r4e.ui.navigator.ReviewNavigatorView">
<propertySection
- class="org.eclipse.mylyn.reviews.r4e.ui.properties.ReviewGroupTabPropertySection"
- id="org.eclipse.mylyn.reviews.r4e.ui.properties.ReviewGroupSection"
+ class="org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed.ReviewGroupGeneralTabPropertySection"
+ id="org.eclipse.mylyn.reviews.r4e.ui.properties.ReviewGroupGeneralSection"
tab="org.eclipse.mylyn.reviews.r4e.ui.properties.propertyDetailedTab">
<input
type="org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIReviewGroup">
</input>
</propertySection>
<propertySection
- class="org.eclipse.mylyn.reviews.r4e.ui.properties.ReviewTabPropertySection"
- id="org.eclipse.mylyn.reviews.r4e.ui.properties.ReviewSection"
+ class="org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed.ReviewGroupExtraTabPropertySection"
+ id="org.eclipse.mylyn.reviews.r4e.ui.properties.ReviewGroupExtraSection"
+ tab="org.eclipse.mylyn.reviews.r4e.ui.properties.propertyExtraTab">
+ <input
+ type="org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIReviewGroup">
+ </input>
+ </propertySection>
+ <propertySection
+ class="org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed.ReviewGeneralTabPropertySection"
+ id="org.eclipse.mylyn.reviews.r4e.ui.properties.ReviewGeneralSection"
tab="org.eclipse.mylyn.reviews.r4e.ui.properties.propertyDetailedTab">
<input
type="org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIReview">
</input>
</propertySection>
<propertySection
- class="org.eclipse.mylyn.reviews.r4e.ui.properties.ParticipantTabPropertySection"
- id="org.eclipse.mylyn.reviews.r4e.ui.properties.ParticipantSection"
+ class="org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed.ReviewExtraTabPropertySection"
+ id="org.eclipse.mylyn.reviews.r4e.ui.properties.ReviewExtraSection"
+ tab="org.eclipse.mylyn.reviews.r4e.ui.properties.propertyExtraTab">
+ <input
+ type="org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIReview">
+ </input>
+ </propertySection>
+ <propertySection
+ class="org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed.ParticipantGeneralTabPropertySection"
+ id="org.eclipse.mylyn.reviews.r4e.ui.properties.ParticipantGeneralSection"
tab="org.eclipse.mylyn.reviews.r4e.ui.properties.propertyDetailedTab">
<input
type="org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIParticipant">
</input>
</propertySection>
<propertySection
- class="org.eclipse.mylyn.reviews.r4e.ui.properties.ReviewItemTabPropertySection"
+ class="org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed.ParticipantExtraTabPropertySection"
+ id="org.eclipse.mylyn.reviews.r4e.ui.properties.ParticipantExtraSection"
+ tab="org.eclipse.mylyn.reviews.r4e.ui.properties.propertyExtraTab">
+ <input
+ type="org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIParticipant">
+ </input>
+ </propertySection>
+ <propertySection
+ class="org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed.ReviewItemTabPropertySection"
id="org.eclipse.mylyn.reviews.r4e.ui.properties.ReviewItemSection"
tab="org.eclipse.mylyn.reviews.r4e.ui.properties.propertyDetailedTab">
<input
@@ -950,7 +925,7 @@
</input>
</propertySection>
<propertySection
- class="org.eclipse.mylyn.reviews.r4e.ui.properties.FileContextTabPropertySection"
+ class="org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed.FileContextTabPropertySection"
id="org.eclipse.mylyn.reviews.r4e.ui.properties.FileContextSection"
tab="org.eclipse.mylyn.reviews.r4e.ui.properties.propertyDetailedTab">
<input
@@ -958,7 +933,7 @@
</input>
</propertySection>
<propertySection
- class="org.eclipse.mylyn.reviews.r4e.ui.properties.SelectionTabPropertySection"
+ class="org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed.SelectionTabPropertySection"
id="org.eclipse.mylyn.reviews.r4e.ui.properties.SelectionSection"
tab="org.eclipse.mylyn.reviews.r4e.ui.properties.propertyDetailedTab">
<input
@@ -966,15 +941,23 @@
</input>
</propertySection>
<propertySection
- class="org.eclipse.mylyn.reviews.r4e.ui.properties.AnomalyTabPropertySection"
- id="org.eclipse.mylyn.reviews.r4e.ui.properties.AnomalySection"
+ class="org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed.AnomalyGeneralTabPropertySection"
+ id="org.eclipse.mylyn.reviews.r4e.ui.properties.AnomalyGeneralSection"
tab="org.eclipse.mylyn.reviews.r4e.ui.properties.propertyDetailedTab">
<input
- type="org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomaly">
+ type="org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomalyBasic">
</input>
</propertySection>
<propertySection
- class="org.eclipse.mylyn.reviews.r4e.ui.properties.CommentTabPropertySection"
+ class="org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed.AnomalyExtraTabPropertySection"
+ id="org.eclipse.mylyn.reviews.r4e.ui.properties.AnomalyExtraSection"
+ tab="org.eclipse.mylyn.reviews.r4e.ui.properties.propertyExtraTab">
+ <input
+ type="org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomalyExtended">
+ </input>
+ </propertySection>
+ <propertySection
+ class="org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed.CommentTabPropertySection"
id="org.eclipse.mylyn.reviews.r4e.ui.properties.CommentSection"
tab="org.eclipse.mylyn.reviews.r4e.ui.properties.propertyDetailedTab">
<input
@@ -995,10 +978,17 @@
point="org.eclipse.core.expressions.propertyTesters">
<propertyTester
class="org.eclipse.mylyn.reviews.r4e.ui.commands.DialogPropertyTester"
- id="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog.propertyTester"
- namespace="org.eclipse.mylyn.reviews.r4e.ui.commands"
+ id="org.eclipse.mylyn.reviews.r4e.ui.commands.dialogOpenPropertyTester"
+ namespace="org.eclipse.mylyn.reviews.r4e.ui.commands.dialog"
properties="dialogOpen"
type="java.lang.Object">
</propertyTester>
+ <propertyTester
+ class="org.eclipse.mylyn.reviews.r4e.ui.commands.CompletedPropertyTester"
+ id="org.eclipse.mylyn.reviews.r4e.ui.commands.completedPropertyTester"
+ namespace="org.eclipse.mylyn.reviews.r4e.ui.commands.review"
+ properties="completed"
+ type="java.lang.Object">
+ </propertyTester>
</extension>
</plugin>
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/AddAnomalyHandler.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/AddAnomalyHandler.java
index 41f33f6..cc83d2d 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/AddAnomalyHandler.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/AddAnomalyHandler.java
@@ -42,7 +42,7 @@
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
import org.eclipse.mylyn.reviews.r4e.ui.Activator;
import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIPosition;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomaly;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomalyBasic;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomalyContainer;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIComment;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIFileContext;
@@ -205,8 +205,8 @@
//File already exists, check if anomaly also exists
R4EUIAnomalyContainer anomalyContainer = (R4EUIAnomalyContainer) file.getAnomalyContainerElement();
if (null != anomalyContainer) {
- R4EUIAnomaly[] anomalies = (R4EUIAnomaly[])anomalyContainer.getChildren();
- for (R4EUIAnomaly uiAnomaly : anomalies) {
+ R4EUIAnomalyBasic[] anomalies = (R4EUIAnomalyBasic[])anomalyContainer.getChildren();
+ for (R4EUIAnomalyBasic uiAnomaly : anomalies) {
if (uiAnomaly.getPosition().isSameAs(aUIPosition)) {
isNewAnomaly = false;
addCommentToExistingAnomaly(uiAnomaly);
@@ -251,7 +251,7 @@
* @throws ResourceHandlingException
* @throws OutOfSyncException
*/
- private void addCommentToExistingAnomaly(R4EUIAnomaly aUIAnomaly) throws ResourceHandlingException, OutOfSyncException {
+ private void addCommentToExistingAnomaly(R4EUIAnomalyBasic aUIAnomaly) throws ResourceHandlingException, OutOfSyncException {
final R4EUIComment uiComment = aUIAnomaly.createComment();
if (null != uiComment) {
@@ -272,7 +272,7 @@
private void addAnomalyToExistingFileContext(R4EUIAnomalyContainer aContainer, IR4EUIPosition aUIPosition)
throws ResourceHandlingException, OutOfSyncException {
- final R4EUIAnomaly uiAnomaly = aContainer.createAnomaly((R4EUITextPosition) aUIPosition);
+ final R4EUIAnomalyBasic uiAnomaly = aContainer.createAnomaly((R4EUITextPosition) aUIPosition);
if (null != uiAnomaly) {
//Set focus to newly created anomaly comment
R4EUIModelController.getNavigatorView().getTreeViewer().expandToLevel(uiAnomaly, AbstractTreeViewer.ALL_LEVELS);
@@ -306,7 +306,7 @@
uiFileContext, R4EUIConstants.ANOMALIES_LABEL_NAME);
uiFileContext.addChildren(uiAnomalyContainer);
- final R4EUIAnomaly uiAnomaly = uiAnomalyContainer.createAnomaly((R4EUITextPosition) aUIPosition);
+ final R4EUIAnomalyBasic uiAnomaly = uiAnomalyContainer.createAnomaly((R4EUITextPosition) aUIPosition);
if (null != uiAnomaly) {
//Set focus to newly created anomaly comment
R4EUIModelController.getNavigatorView().getTreeViewer().expandToLevel(uiAnomaly, AbstractTreeViewer.ALL_LEVELS);
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/AddLinkedAnomalyHandler.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/AddLinkedAnomalyHandler.java
index 03553c7..7f0073e 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/AddLinkedAnomalyHandler.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/AddLinkedAnomalyHandler.java
@@ -29,7 +29,7 @@
import org.eclipse.mylyn.reviews.r4e.core.versions.ReviewVersionsException;
import org.eclipse.mylyn.reviews.r4e.ui.Activator;
import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIModelElement;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomaly;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomalyBasic;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomalyContainer;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIFileContext;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
@@ -96,7 +96,7 @@
fileContext.addChildren(container);
}
- final R4EUIAnomaly uiAnomaly = container.createAnomaly((R4EUITextPosition) aElement.getPosition());
+ final R4EUIAnomalyBasic uiAnomaly = container.createAnomaly((R4EUITextPosition) aElement.getPosition());
if (null != uiAnomaly) {
//Set focus to newly created anomaly comment
R4EUIModelController.getNavigatorView().getTreeViewer().expandToLevel(uiAnomaly, AbstractTreeViewer.ALL_LEVELS);
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/ChangeReviewStateHandler.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/ChangeReviewStateHandler.java
index e8dc303..190d40a 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/ChangeReviewStateHandler.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/ChangeReviewStateHandler.java
@@ -23,11 +23,16 @@
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
import org.eclipse.mylyn.reviews.r4e.ui.Activator;
import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIModelElement;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIReview;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
import org.eclipse.mylyn.reviews.r4e.ui.utils.UIUtils;
import org.eclipse.ui.handlers.HandlerUtil;
@@ -53,10 +58,20 @@
final IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
if (!selection.isEmpty()) {
IR4EUIModelElement element = null;
+ ErrorDialog dialog = null;
for (final Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {
try {
element = (IR4EUIModelElement) iterator.next();
Activator.Ftracer.traceInfo("Changing review state for element " + element.getName());
+ //We need to do a special check for R4EReviews
+ if (element instanceof R4EUIReview) {
+ if (!(((R4EUIReview)element).checkCompletionStatus())) {
+ dialog = new ErrorDialog(null, R4EUIConstants.REVIEW_NOT_COMPLETED_ERROR, "Review cannot be set to completed",
+ new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, "Some anomalies are not in the proper state to complete this review", null), IStatus.ERROR);
+ dialog.open();
+ return null;
+ }
+ }
element.setReviewed(!(element.isReviewed()));
} catch (ResourceHandlingException e) {
UIUtils.displayResourceErrorDialog(e);
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/CompletedPropertyTester.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/CompletedPropertyTester.java
new file mode 100644
index 0000000..7f4154d
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/CompletedPropertyTester.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class implements a property testers that looks for completed elements
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+
+package org.eclipse.mylyn.reviews.r4e.ui.commands;
+
+import org.eclipse.core.expressions.PropertyTester;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class CompletedPropertyTester extends PropertyTester {
+
+ /**
+ * Executes the property test determined by the parameter <code>property</code>.
+ *
+ * @param receiver the receiver of the property test
+ * @param property the property to test
+ * @param args additional arguments to evaluate the property. If no arguments are specified in
+ * the <code>test</code> expression an array of length 0 is passed
+ * @param expectedValue the expected value of the property. The value is either of type
+ * <code>java.lang.String</code> or a boxed base type. If no value was specified in
+ * the <code>test</code> expressions then <code>null</code> is passed
+ *
+ * @return returns <code>true</code> if the property is equal to the expected value; otherwise
+ * <code>false</code> is returned
+ * @see org.eclipse.core.expressions.IPropertyTester#test(Object receiver, String property, Object[] args, Object expectedValue)
+ */
+ public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
+ if (null == R4EUIModelController.getActiveReview()) return false;
+ return !R4EUIModelController.getActiveReview().isReviewed();
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/FindReviewItemsHandler.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/FindReviewItemsHandler.java
index 8fc37b0..12219ae 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/FindReviewItemsHandler.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/FindReviewItemsHandler.java
@@ -27,7 +27,7 @@
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.mylyn.reviews.r4e.ui.Activator;
-import org.eclipse.mylyn.reviews.r4e.ui.dialogs.R4EFindReviewItemsDialog;
+import org.eclipse.mylyn.reviews.r4e.ui.dialogs.FindReviewItemsDialog;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
import org.eclipse.ui.handlers.HandlerUtil;
@@ -91,7 +91,7 @@
//Fire up the find review items dialog to get the latest commit info for the first selection
R4EUIModelController.setDialogOpen(true);
- final R4EFindReviewItemsDialog dialog = new R4EFindReviewItemsDialog(R4EUIModelController.getNavigatorView().
+ final FindReviewItemsDialog dialog = new FindReviewItemsDialog(R4EUIModelController.getNavigatorView().
getSite().getWorkbenchWindow().getShell(), FIND_REVIEW_ITEMS_DIALOG_TITLE, FIND_REVIEW_ITEMS_DIALOG_VALUE,
FIND_REVIEW_ITEMS_DESCRIPTION_DIALOG_VALUE, project);
dialog.open();
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/RemoveElementHandler.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/RemoveElementHandler.java
index 97f3fa3..ea8d30f 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/RemoveElementHandler.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/RemoveElementHandler.java
@@ -55,10 +55,11 @@
final IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
if (!selection.isEmpty()) {
IR4EUIModelElement element = null;
+ MessageDialogWithToggle dialog = null;
for (final Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {
element = (IR4EUIModelElement) iterator.next();
Activator.Ftracer.traceInfo("Disable element " + element.getName());
- MessageDialogWithToggle dialog = MessageDialogWithToggle.openOkCancelConfirm(null,
+ dialog = MessageDialogWithToggle.openOkCancelConfirm(null,
"Disable element",
"Do you really want to disable this element?",
"Also delete from file (not supported yet)",
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/ReviewState.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/ReviewState.java
index 18deacf..9bf52cf 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/ReviewState.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/ReviewState.java
@@ -38,12 +38,12 @@
// ------------------------------------------------------------------------
/**
- * Field MY_STATE.
- * (value is ""org.eclipse.mylyn.reviews.r4e.ui.editors.commands.open"")
+ * Field REVIEW_CURRENT.
+ * (value is ""org.eclipse.mylyn.reviews.r4e.ui.commands.reviewCurrent"")
*/
- public static final String MY_REVIEW_STATE = "org.eclipse.mylyn.reviews.r4e.ui.commands.review";
+ public static final String REVIEW_CURRENT = "org.eclipse.mylyn.reviews.r4e.ui.commands.reviewCurrent";
-
+
// ------------------------------------------------------------------------
// Methods
// ------------------------------------------------------------------------
@@ -69,7 +69,7 @@
*/
public Map<String, R4EUIReview> getCurrentState() {
final Map<String, R4EUIReview> map = new HashMap<String, R4EUIReview>(1, 1);
- map.put(MY_REVIEW_STATE, R4EUIModelController.getActiveReview());
+ map.put(REVIEW_CURRENT, R4EUIModelController.getActiveReview());
return map;
}
@@ -79,14 +79,14 @@
* @see org.eclipse.ui.ISourceProvider#getProvidedSourceNames()
*/
public String[] getProvidedSourceNames() {
- return new String[] { MY_REVIEW_STATE };
+ return new String[] { REVIEW_CURRENT };
}
/**
* Method setReview.
* @param aOpenReview ReviewElement
*/
- public void setReview(R4EUIReview aOpenReview) {
- fireSourceChanged(ISources.WORKBENCH, ReviewState.MY_REVIEW_STATE, aOpenReview);
+ public void setCurrentReview(R4EUIReview aOpenReview) {
+ fireSourceChanged(ISources.WORKBENCH, REVIEW_CURRENT, aOpenReview);
}
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/SelectNextHandler.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/SelectNextHandler.java
index 4009520..948b386 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/SelectNextHandler.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/SelectNextHandler.java
@@ -27,7 +27,7 @@
import org.eclipse.mylyn.reviews.r4e.ui.Activator;
import org.eclipse.mylyn.reviews.r4e.ui.editors.EditorProxy;
import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIModelElement;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomaly;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomalyBasic;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIFileContext;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUISelection;
@@ -71,7 +71,7 @@
//Open the editor on FileContexts, selections amd anomalies
if (nextElement instanceof R4EUIFileContext ||
nextElement instanceof R4EUISelection ||
- nextElement instanceof R4EUIAnomaly) {
+ nextElement instanceof R4EUIAnomalyBasic) {
EditorProxy.openEditor(view.getSite().getPage(), nextSelection, false);
}
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/SelectPreviousHandler.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/SelectPreviousHandler.java
index cf71243..e73fe05 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/SelectPreviousHandler.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/commands/SelectPreviousHandler.java
@@ -27,7 +27,7 @@
import org.eclipse.mylyn.reviews.r4e.ui.Activator;
import org.eclipse.mylyn.reviews.r4e.ui.editors.EditorProxy;
import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIModelElement;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomaly;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomalyBasic;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIFileContext;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUISelection;
@@ -71,7 +71,7 @@
//Open the editor on FileContexts, selections amd anomalies
if (previousElement instanceof R4EUIFileContext ||
previousElement instanceof R4EUISelection ||
- previousElement instanceof R4EUIAnomaly) {
+ previousElement instanceof R4EUIAnomalyBasic) {
EditorProxy.openEditor(view.getSite().getPage(), previousSelection, false);
}
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/AnomalyInputDialog.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/AnomalyInputDialog.java
new file mode 100644
index 0000000..1188549
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/AnomalyInputDialog.java
@@ -0,0 +1,310 @@
+// $codepro.audit.disable com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.alwaysOverridetoString.alwaysOverrideToString, com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.constructorsOnlyInvokeFinalMethods, useForLoop, com.instantiations.assist.eclipse.analysis.deserializeabilitySecurity, com.instantiations.assist.eclipse.analysis.disallowReturnMutable, com.instantiations.assist.eclipse.analysis.enforceCloneableUsageSecurity, explicitThisUsage
+/*******************************************************************************
+ * Copyright (c) 2010 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class implements the dialog used to fill-in the Anomaly element details
+ * This is a modeless-like dialog
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+
+package org.eclipse.mylyn.reviews.r4e.ui.dialogs;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.IInputValidator;
+import org.eclipse.mylyn.reviews.r4e.ui.Activator;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.FormDialog;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.Section;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class AnomalyInputDialog extends FormDialog {
+
+ // ------------------------------------------------------------------------
+ // Constants
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field ADD_ANOMALY_DIALOG_TITLE.
+ * (value is ""Enter Anomaly details"")
+ */
+ private static final String ADD_ANOMALY_DIALOG_TITLE = "Enter Anomaly Details";
+
+ /**
+ * Field ADD_ANOMALY_DIALOG_VALUE.
+ * (value is ""Enter the Anomaly title:"")
+ */
+ private static final String ADD_ANOMALY_DIALOG_VALUE = "Anomaly Title: ";
+
+ /**
+ * Field ADD_COMMENT_DIALOG_VALUE.
+ * (value is ""Enter your comments for the new Anomaly:"")
+ */
+ private static final String ADD_DESCRIPTION_DIALOG_VALUE = "Anomaly Description: ";
+
+ /**
+ * Field BASIC_PARAMS_HEADER_MSG.
+ * (value is ""Enter the mandatory basic parameters for this anomaly"")
+ */
+ private static final String BASIC_PARAMS_HEADER_MSG = "Enter the mandatory basic parameters for this anomaly";
+
+
+ // ------------------------------------------------------------------------
+ // Member variables
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field fAnomalyTitleValue.
+ */
+ private String fAnomalyTitleValue = "";
+
+ /**
+ * Field fAnomalyTitleInputTextField.
+ */
+ private Text fAnomalyTitleInputTextField = null;
+
+ /**
+ * Field fAnomalyDescriptionValue.
+ */
+ private String fAnomalyDescriptionValue = "";
+
+ /**
+ * Field fAnomalyDescriptionInputTextField.
+ */
+ private Text fAnomalyDescriptionInputTextField;
+
+ /**
+ * The input validator, or <code>null</code> if none.
+ */
+ private final IInputValidator fValidator;
+
+
+ // ------------------------------------------------------------------------
+ // Constructors
+ // ------------------------------------------------------------------------
+
+ /**
+ * Constructor for R4EAnomalyInputDialog.
+ * @param aParentShell Shell
+ */
+ public AnomalyInputDialog(Shell aParentShell) {
+ super(aParentShell);
+ setBlockOnOpen(false);
+ fValidator = new R4EInputValidator();
+ }
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * Method buttonPressed.
+ * @param buttonId int
+ * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
+ */
+ @Override
+ protected void buttonPressed(int buttonId) {
+ if (buttonId == IDialogConstants.OK_ID) {
+ this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_WAIT));
+
+ //Validate Anomaly Title
+ String validateResult = validateEmptyInput(fAnomalyTitleInputTextField);
+ if (null != validateResult) {
+ //Validation of input failed
+ final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_ERROR, "No input given for Anomaly Title",
+ new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, validateResult, null), IStatus.ERROR);
+ dialog.open();
+ this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
+ return;
+ }
+ fAnomalyTitleValue = fAnomalyTitleInputTextField.getText();
+
+ //Validate Anomaly Comment
+ validateResult = validateEmptyInput(fAnomalyDescriptionInputTextField);
+ if (null != validateResult) {
+ //Validation of input failed
+ final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_ERROR, "No input given for Anomaly Comment",
+ new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, validateResult, null), IStatus.ERROR);
+ dialog.open();
+ this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
+ return;
+ }
+ fAnomalyDescriptionValue = fAnomalyDescriptionInputTextField.getText();
+
+ } else {
+ fAnomalyTitleValue = null;
+ fAnomalyDescriptionValue = null;
+ }
+ this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
+ super.buttonPressed(buttonId);
+ }
+
+ /**
+ * Method configureShell.
+ * @param shell Shell
+ * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+ */
+ @Override
+ protected void configureShell(Shell shell) {
+ super.configureShell(shell);
+ shell.setText(ADD_ANOMALY_DIALOG_TITLE);
+ }
+
+ /**
+ * Configures the dialog form and creates form content. Clients should
+ * override this method.
+ *
+ * @param mform
+ * the dialog form
+ */
+ @Override
+ protected void createFormContent(final IManagedForm mform) {
+
+ final FormToolkit toolkit = mform.getToolkit();
+ final ScrolledForm sform = mform.getForm();
+ sform.setExpandVertical(true);
+ final Composite composite = sform.getBody();
+ final GridLayout layout = new GridLayout(4, false);
+ composite.setLayout(layout);
+
+ //Grid data values
+ final GridData labelData = new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false);
+ final GridData textSingleData = new GridData(GridData.FILL, GridData.FILL, true, false);
+ textSingleData.horizontalSpan = 3;
+ final GridData textMultiData = new GridData(GridData.FILL, GridData.FILL, true, false);
+ textMultiData.horizontalSpan = 3;
+
+ //Basic parameters section
+ final Section basicSection = toolkit.createSection(composite, Section.DESCRIPTION | ExpandableComposite.TITLE_BAR |
+ ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+ final GridData basicSectionGridData = new GridData(GridData.FILL, GridData.FILL, true, false);
+ basicSectionGridData.horizontalSpan = 4;
+ basicSection.setLayoutData(basicSectionGridData);
+ basicSection.setText(R4EUIConstants.BASIC_PARAMS_HEADER);
+ basicSection.setDescription(BASIC_PARAMS_HEADER_MSG);
+ basicSection.addExpansionListener(new ExpansionAdapter()
+ {
+ @Override
+ public void expansionStateChanged(ExpansionEvent e){
+ getShell().setSize(getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT));
+ sform.reflow(true);
+ }
+ });
+
+ final Composite basicSectionClient = toolkit.createComposite(basicSection);
+ basicSectionClient.setLayout(layout);
+ basicSection.setClient(basicSectionClient);
+
+ //Anomaly Title
+ Label label = toolkit.createLabel(basicSectionClient, ADD_ANOMALY_DIALOG_VALUE);
+ label.setLayoutData(labelData);
+ fAnomalyTitleInputTextField = toolkit.createText(basicSectionClient, "", SWT.SINGLE);
+ fAnomalyTitleInputTextField.setLayoutData(textSingleData);
+
+ //Anomaly Description
+ label = toolkit.createLabel(basicSectionClient, ADD_DESCRIPTION_DIALOG_VALUE);
+ label.setLayoutData(labelData);
+ fAnomalyDescriptionInputTextField = toolkit.createText(basicSectionClient, "", SWT.MULTI | SWT.V_SCROLL);
+ textMultiData.heightHint = fAnomalyTitleInputTextField.getLineHeight() * 3;
+ fAnomalyDescriptionInputTextField.setLayoutData(textMultiData);
+ }
+
+ /**
+ * Method isResizable.
+ * @return boolean
+ * @see org.eclipse.jface.dialogs.Dialog#isResizable()
+ */
+ @Override
+ protected boolean isResizable() {
+ return true;
+ }
+
+ /**
+ * Returns the string typed into this input dialog.
+ * @return the anomaly title input string
+ */
+ public String getAnomalyTitleValue() {
+ return fAnomalyTitleValue;
+ }
+
+ /**
+ * Returns the string typed into this input dialog.
+ * @return the anomaly description input string
+ */
+ public String getAnomalyDescriptionValue() {
+ return fAnomalyDescriptionValue;
+ }
+
+ /**
+ * Method validateEmptyInput.
+ * @param aText Text
+ * @return String
+ */
+ private String validateEmptyInput(Text aText) {
+ return fValidator.isValid(aText.getText());
+ }
+
+ /**
+ * Method setShellStyle.
+ * @param newShellStyle int
+ */
+ @Override
+ protected void setShellStyle(int newShellStyle) {
+ int newstyle = newShellStyle & ~SWT.APPLICATION_MODAL; /* turn off APPLICATION_MODAL */
+ newstyle |= SWT.MODELESS; /* turn on MODELESS */
+ super.setShellStyle(newstyle);
+ }
+
+ /**
+ * Method open.
+ * @return int
+ */
+ @Override
+ public int open() {
+ super.open();
+ pumpMessages(); /* this will let the caller wait till OK, Cancel is pressed, but will let the other GUI responsive */
+ return super.getReturnCode();
+ }
+
+ /**
+ * Method pumpMessages.
+ */
+ protected void pumpMessages() {
+ final Shell sh = getShell();
+ final Display disp = sh.getDisplay();
+ while( !sh.isDisposed() ) { // $codepro.audit.disable methodInvocationInLoopCondition
+ if( !disp.readAndDispatch() ) disp.sleep();
+ }
+ disp.update();
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/CalendarDialog.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/CalendarDialog.java
new file mode 100644
index 0000000..2290221
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/CalendarDialog.java
@@ -0,0 +1,133 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class implements the dialog used to display and select a date in a calendar
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+
+package org.eclipse.mylyn.reviews.r4e.ui.dialogs;
+
+import java.util.Date;
+import java.util.GregorianCalendar;
+
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.DateTime;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.forms.FormDialog;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class CalendarDialog extends FormDialog {
+
+ // ------------------------------------------------------------------------
+ // Constants
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field ADD_CALENDAR_DIALOG_TITLE.
+ * (value is ""Select Date"")
+ */
+ private static final String ADD_CALENDAR_DIALOG_TITLE = "Select Date";
+
+
+ // ------------------------------------------------------------------------
+ // Member variables
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field fCalendar.
+ */
+ private DateTime fCalendar = null;
+ /**
+ * Field fDate.
+ */
+ private GregorianCalendar fDate = null;
+
+
+ // ------------------------------------------------------------------------
+ // Constructor
+ // ------------------------------------------------------------------------
+
+ /**
+ * Constructor for CalendarDialog.
+ * @param aParentShell Shell
+ */
+ public CalendarDialog(Shell aParentShell) {
+ super(aParentShell);
+ setBlockOnOpen(true);
+ }
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * Method configureShell.
+ * @param shell Shell
+ * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+ */
+ @Override
+ protected void configureShell(Shell shell) {
+ super.configureShell(shell);
+ shell.setText(ADD_CALENDAR_DIALOG_TITLE);
+ }
+
+ /**
+ * Method buttonPressed.
+ * @param buttonId int
+ * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
+ */
+ @Override
+ protected void buttonPressed(int buttonId) {
+ if (buttonId == IDialogConstants.OK_ID) {
+ fDate = new GregorianCalendar(fCalendar.getYear(), fCalendar.getMonth(), fCalendar.getDay());
+ }
+ super.buttonPressed(buttonId);
+ }
+
+ /**
+ * Configures the dialog form and creates form content. Clients should
+ * override this method.
+ *
+ * @param mform
+ * the dialog form
+ */
+ @Override
+ protected void createFormContent(final IManagedForm mform) {
+
+ final ScrolledForm sform = mform.getForm();
+ sform.setExpandVertical(true);
+ final Composite composite = sform.getBody();
+ final GridLayout layout = new GridLayout();
+ composite.setLayout(layout);
+ fCalendar = new DateTime(composite, SWT.CALENDAR | SWT.BORDER);
+ fCalendar.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
+ }
+
+ /**
+ * Method getDate.
+ * @return Date
+ */
+ public Date getDate() {
+ return fDate.getTime();
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/R4ECommentInputDialog.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/CommentInputDialog.java
similarity index 60%
rename from org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/R4ECommentInputDialog.java
rename to org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/CommentInputDialog.java
index 4265235..79a708c 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/R4ECommentInputDialog.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/CommentInputDialog.java
@@ -21,7 +21,6 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.IInputValidator;
@@ -29,13 +28,20 @@
import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.FormDialog;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.Section;
// ------------------------------------------------------------------------
// Constants
@@ -45,47 +51,44 @@
* @author lmcdubo
* @version $Revision: 1.0 $
*/
-public class R4ECommentInputDialog extends Dialog {
+public class CommentInputDialog extends FormDialog {
// ------------------------------------------------------------------------
// Constants
// ------------------------------------------------------------------------
/**
- * Field MINIMUM_DIALOG_AREA_HEIGHT.
- * (value is 150)
+ * Field ADD_COMMENT_DIALOG_TITLE.
+ * (value is ""Enter Comment details"")
*/
- private static final int MINIMUM_DIALOG_AREA_HEIGHT = 150;
+ private static final String ADD_COMMENT_DIALOG_TITLE = "Enter Comment Details";
+
+ /**
+ * Field ADD_COMMENT_DIALOG_VALUE.
+ * (value is ""Enter your new Comments for this Anomaly:"")
+ */
+ private static final String ADD_COMMENT_DIALOG_VALUE = "Comments Description:";
+ /**
+ * Field BASIC_PARAMS_HEADER_MSG.
+ * (value is ""Enter the mandatory basic parameters for this comment"")
+ */
+ private static final String BASIC_PARAMS_HEADER_MSG = "Enter the mandatory basic parameters for this comment";
+
// ------------------------------------------------------------------------
// Member variables
// ------------------------------------------------------------------------
-
- /**
- * The title of the dialog.
- */
- private final String fTitle;
-
- /**
- * The message to display, or <code>null</code> if none.
- */
- private final String fCommentMessage;
- /**
- * The input value; the empty string by default.
- */
+ /**
+ * Field fCommentValue.
+ */
private String fCommentValue = "";
-
- /**
- * Ok button widget.
- */
- private Button fOKButton;
- /**
- * Input text widget.
- */
- private Text fInputTextField;
+ /**
+ * Field fCommentInputTextField.
+ */
+ private Text fCommentInputTextField;
/**
* The input validator, or <code>null</code> if none.
@@ -100,15 +103,11 @@
/**
* Constructor for R4ECommentInputDialog.
* @param aParentShell Shell
- * @param aDialogTitle String
- * @param aCommentMessage String
*/
- public R4ECommentInputDialog(Shell aParentShell, String aDialogTitle, String aCommentMessage) {
+ public CommentInputDialog(Shell aParentShell) {
super(aParentShell);
setBlockOnOpen(false);
- fTitle = aDialogTitle;
- fCommentMessage = aCommentMessage;
- fValidator = new EmptyInputValidator();
+ fValidator = new R4EInputValidator();
}
@@ -126,7 +125,7 @@
if (buttonId == IDialogConstants.OK_ID) {
this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_WAIT));
//Validate Name
- final String validateResult = validateEmptyInput(fInputTextField);
+ final String validateResult = validateEmptyInput(fCommentInputTextField);
if (null != validateResult) {
//Validation of input failed
final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_ERROR, "No input given for Comment",
@@ -135,7 +134,7 @@
this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
return;
}
- fCommentValue = fInputTextField.getText();
+ fCommentValue = fCommentInputTextField.getText();
} else {
fCommentValue = null;
}
@@ -151,71 +150,61 @@
@Override
protected void configureShell(Shell shell) {
super.configureShell(shell);
- if (null != fTitle) {
- shell.setText(fTitle);
- }
- }
-
- /**
- * Method createDialogArea.
- * @param parent Composite
- * @return Control
- * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
- */
- @Override
- protected Control createDialogArea(Composite parent) {
- // create composite
- final Composite composite = (Composite) super.createDialogArea(parent);
-
- // create Comment message label
- if (null != fCommentMessage) {
- final Label label = new Label(composite, SWT.WRAP);
- label.setText(fCommentMessage);
- final GridData labelData = new GridData(GridData.FILL, GridData.FILL, true, false);
- labelData.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
- label.setLayoutData(labelData);
- label.setFont(parent.getFont());
- }
-
- //create Comment input text field
- fInputTextField = new Text(composite, getInputTextStyle() | SWT.V_SCROLL);
- fInputTextField.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
- composite.getShell().setMinimumSize(convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH),
- convertHorizontalDLUsToPixels(MINIMUM_DIALOG_AREA_HEIGHT));
- applyDialogFont(composite);
- return composite;
- }
-
- /**
- * Method createButtonsForButtonBar.
- * @param parent Composite
- * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
- */
- @Override
- protected void createButtonsForButtonBar(Composite parent) {
- // create OK and Cancel buttons by default
- fOKButton = createButton(parent, IDialogConstants.OK_ID,
- IDialogConstants.OK_LABEL, true);
- createButton(parent, IDialogConstants.CANCEL_ID,
- IDialogConstants.CANCEL_LABEL, false);
- //do this here because setting the text will set enablement on the ok
- // button
- fInputTextField.setFocus();
- if (null != fCommentValue) {
- fInputTextField.setText(fCommentValue);
- fInputTextField.selectAll();
- }
+ shell.setText(ADD_COMMENT_DIALOG_TITLE);
}
/**
- * Returns the style bits that should be used for the input text field.
- * Defaults to a single line entry. Subclasses may override.
- * @since 3.4
- * @return the integer style bits that should be used when creating the input text
+ * Configures the dialog form and creates form content. Clients should
+ * override this method.
+ *
+ * @param mform
+ * the dialog form
*/
- protected int getInputTextStyle() {
- return SWT.MULTI | SWT.WRAP ;
- }
+ @Override
+ protected void createFormContent(final IManagedForm mform) {
+
+ final FormToolkit toolkit = mform.getToolkit();
+ final ScrolledForm sform = mform.getForm();
+ sform.setExpandVertical(true);
+ final Composite composite = sform.getBody();
+ final GridLayout layout = new GridLayout(4, false);
+ composite.setLayout(layout);
+
+ //Grid data values
+ final GridData labelData = new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false);
+ final GridData textSingleData = new GridData(GridData.FILL, GridData.FILL, true, false);
+ textSingleData.horizontalSpan = 3;
+ final GridData textMultiData = new GridData(GridData.FILL, GridData.FILL, true, false);
+ textMultiData.horizontalSpan = 3;
+
+ //Basic parameters section
+ final Section basicSection = toolkit.createSection(composite, Section.DESCRIPTION | ExpandableComposite.TITLE_BAR |
+ ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+ final GridData basicSectionGridData = new GridData(GridData.FILL, GridData.FILL, true, false);
+ basicSectionGridData.horizontalSpan = 4;
+ basicSection.setLayoutData(basicSectionGridData);
+ basicSection.setText(R4EUIConstants.BASIC_PARAMS_HEADER);
+ basicSection.setDescription(BASIC_PARAMS_HEADER_MSG);
+ basicSection.addExpansionListener(new ExpansionAdapter()
+ {
+ @Override
+ public void expansionStateChanged(ExpansionEvent e){
+ getShell().setSize(getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT));
+ sform.reflow(true);
+ }
+ });
+
+ final Composite basicSectionClient = toolkit.createComposite(basicSection);
+ basicSectionClient.setLayout(layout);
+ basicSection.setClient(basicSectionClient);
+
+ //Comment Description
+ final Label label = toolkit.createLabel(basicSectionClient, ADD_COMMENT_DIALOG_VALUE);
+ label.setLayoutData(labelData);
+ fCommentInputTextField = toolkit.createText(basicSectionClient, "", SWT.MULTI | SWT.V_SCROLL);
+ textMultiData.heightHint = fCommentInputTextField.getLineHeight() * 3;
+ fCommentInputTextField.setLayoutData(textMultiData);
+ }
/**
* Method isResizable.
@@ -225,22 +214,6 @@
protected boolean isResizable() {
return true;
}
-
- /**
- * Returns the ok button.
- * @return the ok button
- */
- protected Button getOkButton() {
- return fOKButton;
- }
-
- /**
- * Returns the text area.
- * @return the comment text area
- */
- protected Text getCommentText() {
- return fInputTextField;
- }
/**
* Returns the string typed into this input dialog.
@@ -257,7 +230,7 @@
*/
private String validateEmptyInput(Text aText) {
if (null != fValidator) {
- return ((EmptyInputValidator) fValidator).isValid(aText.getText());
+ return fValidator.isValid(aText.getText());
}
return null;
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/EmptyInputValidator.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/EmptyInputValidator.java
deleted file mode 100644
index 8582200..0000000
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/EmptyInputValidator.java
+++ /dev/null
@@ -1,56 +0,0 @@
-// $codepro.audit.disable com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.alwaysOverridetoString.alwaysOverrideToString, com.instantiations.assist.eclipse.analysis.deserializeabilitySecurity, com.instantiations.assist.eclipse.analysis.enforceCloneableUsageSecurity, packageJavadoc
-/*******************************************************************************
- * Copyright (c) 2010 Ericsson Research Canada
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Description:
- *
- * This class implements the dialog used to validate that a String received
- * is not null or empty
- *
- * Contributors:
- * Sebastien Dubois - Created for Mylyn Review R4E project
- *
- ******************************************************************************/
-
-package org.eclipse.mylyn.reviews.r4e.ui.dialogs;
-
-import org.eclipse.jface.dialogs.IInputValidator;
-
-/**
- * @author lmcdubo
- * @version $Revision: 1.0 $
- */
-public class EmptyInputValidator implements IInputValidator {
-
- // ------------------------------------------------------------------------
- // Constants
- // ------------------------------------------------------------------------
-
- /**
- * Field EMPTY_VALIDATION_ERROR_MESSAGE.
- * (value is ""No input given"")
- */
- private static final String EMPTY_VALIDATION_ERROR_MESSAGE = "No Input given";
-
-
- // ------------------------------------------------------------------------
- // Methods
- // ------------------------------------------------------------------------
-
- /**
- * Method isValid.
- * @param newText String
- * @return String
- * @see org.eclipse.jface.dialogs.IInputValidator#isValid(String)
- */
- public String isValid(String newText) {
- if (null == newText || 0 == newText.length()) return EMPTY_VALIDATION_ERROR_MESSAGE;
- return null;
- }
-
-}
\ No newline at end of file
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/R4EFindReviewItemsDialog.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/FindReviewItemsDialog.java
similarity index 99%
rename from org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/R4EFindReviewItemsDialog.java
rename to org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/FindReviewItemsDialog.java
index dbe28ab..f794276 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/R4EFindReviewItemsDialog.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/FindReviewItemsDialog.java
@@ -66,7 +66,7 @@
* @author lmcdubo
* @version $Revision: 1.0 $
*/
-public class R4EFindReviewItemsDialog extends Dialog {
+public class FindReviewItemsDialog extends Dialog {
// ------------------------------------------------------------------------
// Constants
@@ -126,7 +126,7 @@
* @param aItemComponentsMessage String
* @param aInputProject IProject
*/
- public R4EFindReviewItemsDialog(Shell aParentShell, String aDialogTitle, String aItemDetailsMessage,
+ public FindReviewItemsDialog(Shell aParentShell, String aDialogTitle, String aItemDetailsMessage,
String aItemComponentsMessage, IProject aInputProject) {
super(aParentShell);
setBlockOnOpen(true);
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/ParticipantInputDialog.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/ParticipantInputDialog.java
new file mode 100644
index 0000000..3cd9448
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/ParticipantInputDialog.java
@@ -0,0 +1,327 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class implements the dialog used to fill-in the Participant element details.
+ * This is a modal dialog
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+
+package org.eclipse.mylyn.reviews.r4e.ui.dialogs;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.IInputValidator;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EUserRole;
+import org.eclipse.mylyn.reviews.r4e.ui.Activator;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.EditableListWidget;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.FormDialog;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.Section;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class ParticipantInputDialog extends FormDialog {
+
+ // ------------------------------------------------------------------------
+ // Constants
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field ADD_PARTICIPANT_DIALOG_TITLE.
+ * (value is ""Enter Review details"")
+ */
+ private static final String ADD_PARTICIPANT_DIALOG_TITLE = "Enter Participant Details";
+
+ /**
+ * Field ADD_PARTICIPANT_ID_DIALOG_VALUE.
+ * (value is ""Participant Id: "")
+ */
+ private static final String ADD_PARTICIPANT_ID_DIALOG_VALUE = "Id: ";
+
+ /**
+ * Field PARTICIPANT_ROLES.
+ */
+ private static final String[] PARTICIPANT_ROLES = { R4EUIConstants.USER_ROLE_LEAD,
+ R4EUIConstants.USER_ROLE_AUTHOR, R4EUIConstants.USER_ROLE_REVIEWER };
+
+
+ // ------------------------------------------------------------------------
+ // Member variables
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field fParticipantIdValue.
+ */
+ private String fParticipantIdValue = "";
+
+ /**
+ * Field fParticipantIdInputTextField.
+ */
+ private Text fParticipantIdInputTextField;
+
+ /**
+ * Field fAvailableComponents.
+ */
+ private EditableListWidget fRoleTypes = null;
+
+ /**
+ * Field fRolesValue.
+ */
+ private List<R4EUserRole> fRolesValue = null;
+
+ /**
+ * Field fFocusAreaValue.
+ */
+ private String fFocusAreaValue = "";
+
+ /**
+ * Field fFocusAreaTextField.
+ */
+ private Text fFocusAreaTextField;
+
+ /**
+ * The input validator, or <code>null</code> if none.
+ */
+ private final IInputValidator fValidator;
+
+
+ // ------------------------------------------------------------------------
+ // Constructors
+ // ------------------------------------------------------------------------
+
+ /**
+ * Constructor for ParticipantInputDialog.
+ * @param aParentShell Shell
+ */
+ public ParticipantInputDialog(Shell aParentShell) {
+ super(aParentShell);
+ setBlockOnOpen(true);
+ fValidator = new R4EInputValidator();
+ }
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * Method buttonPressed.
+ * @param buttonId int
+ * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
+ */
+ @Override
+ protected void buttonPressed(int buttonId) {
+ if (buttonId == IDialogConstants.OK_ID) {
+ this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_WAIT));
+
+ //Validate Participant Id
+ String validateResult = validateEmptyInput(fParticipantIdInputTextField);
+ if (null != validateResult) {
+ //Validation of input failed
+ final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_ERROR, "No input given for Participant Id",
+ new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, validateResult, null), IStatus.ERROR);
+ dialog.open();
+ this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
+ return;
+ }
+ fParticipantIdValue = fParticipantIdInputTextField.getText();
+
+ //Validate Roles (optional)
+ fRolesValue = new ArrayList<R4EUserRole>();
+ for (Item item : fRoleTypes.getItems()) {
+ //Review type (no validation needed as this is a read-only combo box
+ if (item.getText().equals(R4EUIConstants.USER_ROLE_LEAD)) {
+ fRolesValue.add(R4EUserRole.R4E_ROLE_LEAD);
+ }
+ else if (item.getText().equals(R4EUIConstants.USER_ROLE_AUTHOR)) {
+ fRolesValue.add(R4EUserRole.R4E_ROLE_AUTHOR);
+ }
+ else if (item.getText().equals(R4EUIConstants.USER_ROLE_REVIEWER)) {
+ fRolesValue.add(R4EUserRole.R4E_ROLE_REVIEWER);
+ }
+ }
+
+ //Validate Focus Area (optional)
+ validateResult = validateEmptyInput(fFocusAreaTextField);
+ if (null == validateResult) {
+ fFocusAreaValue = fFocusAreaTextField.getText();
+ }
+ } else {
+ fParticipantIdValue = null;
+ fFocusAreaValue = null;
+ }
+ this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
+ super.buttonPressed(buttonId);
+ }
+
+ /**
+ * Method configureShell.
+ * @param shell Shell
+ * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+ */
+ @Override
+ protected void configureShell(Shell shell) {
+ super.configureShell(shell);
+ shell.setText(ADD_PARTICIPANT_DIALOG_TITLE);
+ }
+
+ /**
+ * Configures the dialog form and creates form content. Clients should
+ * override this method.
+ *
+ * @param mform
+ * the dialog form
+ */
+ @Override
+ protected void createFormContent(final IManagedForm mform) {
+
+ final FormToolkit toolkit = mform.getToolkit();
+ final ScrolledForm sform = mform.getForm();
+ sform.setExpandVertical(true);
+ final Composite composite = sform.getBody();
+ final GridLayout layout = new GridLayout(4, false);
+ composite.setLayout(layout);
+
+ //Grid data values
+ final GridData labelData = new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false);
+ final GridData textSingleData = new GridData(GridData.FILL, GridData.FILL, true, false);
+ textSingleData.horizontalSpan = 3;
+ final GridData textMultiData = new GridData(GridData.FILL, GridData.FILL, true, false);
+ textMultiData.horizontalSpan = 3;
+
+ //Basic parameters section
+ final Section basicSection = toolkit.createSection(composite, Section.DESCRIPTION | ExpandableComposite.TITLE_BAR |
+ ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+ final GridData basicSectionGridData = new GridData(GridData.FILL, GridData.FILL, true, false);
+ basicSectionGridData.horizontalSpan = 4;
+ basicSection.setLayoutData(basicSectionGridData);
+ basicSection.setText("Basic Parameters");
+ basicSection.setDescription("Enter the mandatory basic parameters for this participant");
+ basicSection.addExpansionListener(new ExpansionAdapter()
+ {
+ @Override
+ public void expansionStateChanged(ExpansionEvent e){
+ getShell().setSize(getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT));
+ sform.reflow(true);
+ }
+ });
+
+ final Composite basicSectionClient = toolkit.createComposite(basicSection);
+ basicSectionClient.setLayout(layout);
+ basicSection.setClient(basicSectionClient);
+
+ //Participant Id
+ Label label = toolkit.createLabel(basicSectionClient, ADD_PARTICIPANT_ID_DIALOG_VALUE);
+ label.setLayoutData(labelData);
+ fParticipantIdInputTextField = toolkit.createText(basicSectionClient, "", SWT.SINGLE);
+ fParticipantIdInputTextField.setLayoutData(textSingleData);
+
+ //Extra parameters section
+ final Section extraSection = toolkit.createSection(composite, Section.DESCRIPTION | ExpandableComposite.TITLE_BAR |
+ ExpandableComposite.TWISTIE);
+ final GridData extraSectionGridData = new GridData(GridData.FILL, GridData.FILL, true, false);
+ extraSectionGridData.horizontalSpan = 4;
+ extraSection.setLayoutData(extraSectionGridData);
+ extraSection.setText("Extra Parameters");
+ extraSection.setDescription("Enter the optional extra parameters for this participant");
+ extraSection.addExpansionListener(new ExpansionAdapter()
+ {
+ @Override
+ public void expansionStateChanged(ExpansionEvent e){
+ getShell().setSize(getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT));
+ sform.reflow(true);
+ }
+ });
+
+ final Composite extraSectionClient = toolkit.createComposite(extraSection);
+ extraSectionClient.setLayout(layout);
+ extraSection.setClient(extraSectionClient);
+
+ //Roles
+ label = toolkit.createLabel(extraSectionClient, "Roles: ");
+ label.setLayoutData(labelData);
+ fRoleTypes = new EditableListWidget(toolkit, extraSectionClient, textSingleData, null, 0, CCombo.class,
+ PARTICIPANT_ROLES);
+
+ //Focus Area
+ label = toolkit.createLabel(extraSectionClient, "Focus Area: ");
+ label.setLayoutData(labelData);
+ fFocusAreaTextField = toolkit.createText(extraSectionClient, "", SWT.MULTI | SWT.V_SCROLL);
+ fFocusAreaTextField.setLayoutData(textMultiData);
+ }
+
+ /**
+ * Method isResizable.
+ * @return boolean
+ * @see org.eclipse.jface.dialogs.Dialog#isResizable()
+ */
+ @Override
+ protected boolean isResizable() {
+ return true;
+ }
+
+ /**
+ * Returns the participant role values
+ * @return the participant roles as a List
+ */
+ public List<R4EUserRole> getParticipantRolesValue() {
+ return fRolesValue;
+ }
+
+ /**
+ * Returns the string typed into this input dialog.
+ * @return the participant id input string
+ */
+ public String getParticipantIdValue() {
+ return fParticipantIdValue;
+ }
+
+ /**
+ * Returns the string typed into this input dialog.
+ * @return the focus area input string
+ */
+ public String getFocusAreaValue() {
+ return fFocusAreaValue;
+ }
+
+ /**
+ * Method validateEmptyInput.
+ * @param aText Text
+ * @return String
+ */
+ private String validateEmptyInput(Text aText) {
+ return fValidator.isValid(aText.getText());
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/R4EAnomalyInputDialog.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/R4EAnomalyInputDialog.java
deleted file mode 100644
index b8f6307..0000000
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/R4EAnomalyInputDialog.java
+++ /dev/null
@@ -1,355 +0,0 @@
-// $codepro.audit.disable com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.alwaysOverridetoString.alwaysOverrideToString, com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.constructorsOnlyInvokeFinalMethods, useForLoop, com.instantiations.assist.eclipse.analysis.deserializeabilitySecurity, com.instantiations.assist.eclipse.analysis.disallowReturnMutable, com.instantiations.assist.eclipse.analysis.enforceCloneableUsageSecurity, explicitThisUsage
-/*******************************************************************************
- * Copyright (c) 2010 Ericsson Research Canada
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Description:
- *
- * This class implements the dialog used to fill-in the Anomaly element details
- * This is a modeless-like dialog
- *
- * Contributors:
- * Sebastien Dubois - Created for Mylyn Review R4E project
- *
- ******************************************************************************/
-
-package org.eclipse.mylyn.reviews.r4e.ui.dialogs;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.mylyn.reviews.r4e.ui.Activator;
-import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @author lmcdubo
- * @version $Revision: 1.0 $
- */
-public class R4EAnomalyInputDialog extends Dialog {
-
- // ------------------------------------------------------------------------
- // Constants
- // ------------------------------------------------------------------------
-
- /**
- * Field MINIMUM_DIALOG_AREA_HEIGHT.
- * (value is 150)
- */
- private static final int MINIMUM_DIALOG_AREA_HEIGHT = 150;
-
- /**
- * The title of the dialog.
- */
- private final String fTitle;
-
- /**
- * The message to display, or <code>null</code> if none.
- */
- private final String fCommentMessage;
-
- /**
- * The input value; the empty string by default.
- */
- private String fCommentValue = "";
-
- /**
- * Input text widget.
- */
- private Text fCommentInputTextField;
-
- /**
- * Field fAnomalyMessage.
- */
- private String fAnomalyMessage = null;
-
- /**
- * Field fAnomalyValue.
- */
- private String fAnomalyValue = "";
-
- /**
- * Field fAnomalyInputTextField.
- */
- private Text fAnomalyInputTextField = null;
-
- /**
- * Ok button widget.
- */
- private Button fOKButton;
-
- /**
- * The input validator, or <code>null</code> if none.
- */
- private final IInputValidator fValidator;
-
-
- // ------------------------------------------------------------------------
- // Constructors
- // ------------------------------------------------------------------------
-
- /**
- * Constructor for R4EAnomalyInputDialog.
- * @param aParentShell Shell
- * @param aDialogTitle String
- * @param aAnomalyMessage String
- * @param aCommentMessage String
- */
- public R4EAnomalyInputDialog(Shell aParentShell, String aDialogTitle, String aAnomalyMessage,
- String aCommentMessage) {
- super(aParentShell);
- setBlockOnOpen(false);
- fTitle = aDialogTitle;
- fAnomalyMessage = aAnomalyMessage;
- fCommentMessage = aCommentMessage;
- fValidator = new EmptyInputValidator();
- }
-
-
- // ------------------------------------------------------------------------
- // Methods
- // ------------------------------------------------------------------------
-
- /**
- * Method buttonPressed.
- * @param buttonId int
- * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
- */
- @Override
- protected void buttonPressed(int buttonId) {
- if (buttonId == IDialogConstants.OK_ID) {
- this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_WAIT));
-
- //Validate Anomaly Title
- String validateResult = validateEmptyInput(fAnomalyInputTextField);
- if (null != validateResult) {
- //Validation of input failed
- final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_ERROR, "No input given for Anomaly Title",
- new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, validateResult, null), IStatus.ERROR);
- dialog.open();
- this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
- return;
- }
- fAnomalyValue = fAnomalyInputTextField.getText();
-
- //Validate Anomaly Comment
- validateResult = validateEmptyInput(fCommentInputTextField);
- if (null != validateResult) {
- //Validation of input failed
- final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_ERROR, "No input given for Anomaly Comment",
- new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, validateResult, null), IStatus.ERROR);
- dialog.open();
- this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
- return;
- }
- fCommentValue = fCommentInputTextField.getText();
-
- } else {
- fAnomalyValue = null;
- fCommentValue = null;
- }
- this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
- super.buttonPressed(buttonId);
- }
-
- /**
- * Method configureShell.
- * @param shell Shell
- * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
- */
- @Override
- protected void configureShell(Shell shell) {
- super.configureShell(shell);
- if (null != fTitle) {
- shell.setText(fTitle);
- }
- }
-
- /**
- * Method createDialogArea.
- * @param parent Composite
- * @return Control
- * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
- */
- @Override
- protected Control createDialogArea(Composite parent) {
-
- // create composite
- final Composite composite = (Composite) super.createDialogArea(parent);
-
- // create Anomaly Title message label
- if (null != fAnomalyMessage) {
- final Label label = new Label(composite, SWT.WRAP);
- label.setText(fAnomalyMessage);
- final GridData anomalyLabelData = new GridData(GridData.FILL, GridData.FILL, true, false);
- anomalyLabelData.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
- label.setLayoutData(anomalyLabelData);
- label.setFont(parent.getFont());
- }
-
- //create Anomaly Title input text field
- fAnomalyInputTextField = new Text(composite, getInputTextStyle());
- fAnomalyInputTextField.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
-
- // create Comment message label
- if (null != fCommentMessage) {
- final Label label = new Label(composite, SWT.WRAP);
- label.setText(fCommentMessage);
- final GridData commentLabelData = new GridData(GridData.FILL, GridData.FILL, true, false);
- commentLabelData.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
- label.setLayoutData(commentLabelData);
- label.setFont(parent.getFont());
- }
-
- //create Comment input text field
- fCommentInputTextField = new Text(composite, getInputTextStyle() | SWT.V_SCROLL);
- fCommentInputTextField.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
- composite.getShell().setMinimumSize(convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH),
- convertHorizontalDLUsToPixels(MINIMUM_DIALOG_AREA_HEIGHT));
-
- applyDialogFont(composite);
- return composite;
- }
-
- /**
- * Method createButtonsForButtonBar.
- * @param parent Composite
- * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
- */
- @Override
- protected void createButtonsForButtonBar(Composite parent) {
- // create OK and Cancel buttons by default
- fOKButton = createButton(parent, IDialogConstants.OK_ID,
- IDialogConstants.OK_LABEL, true);
- createButton(parent, IDialogConstants.CANCEL_ID,
- IDialogConstants.CANCEL_LABEL, false);
- //do this here because setting the text will set enablement on the ok button
- fAnomalyInputTextField.setFocus();
- if (null != fAnomalyValue) {
- fAnomalyInputTextField.setText(fAnomalyValue);
- fAnomalyInputTextField.selectAll();
- }
- }
-
- /**
- * Returns the style bits that should be used for the input text field.
- * Defaults to a single line entry. Subclasses may override.
- * @since 3.4
- * @return the integer style bits that should be used when creating the input text
- */
- protected int getInputTextStyle() {
- return SWT.MULTI | SWT.WRAP;
- }
-
- /**
- * Method isResizable.
- * @return boolean
- * @see org.eclipse.jface.dialogs.Dialog#isResizable()
- */
- @Override
- protected boolean isResizable() {
- return true;
- }
-
- /**
- * Returns the ok button.
- * @return the ok button
- */
- protected Button getOkButton() {
- return fOKButton;
- }
-
- /**
- * Returns the text area.
- * @return the anomaly title text area
- */
- protected Text getAnomalyText() {
- return fAnomalyInputTextField;
- }
-
- /**
- * Returns the string typed into this input dialog.
- * @return the anomaly title input string
- */
- public String getAnomalyValue() {
- return fAnomalyValue;
- }
-
- /**
- * Returns the text area.
- * @return the comment text area
- */
- protected Text getCommentText() {
- return fCommentInputTextField;
- }
-
- /**
- * Returns the string typed into this input dialog.
- * @return the comment input string
- */
- public String getCommentValue() {
- return fCommentValue;
- }
-
- /**
- * Method validateEmptyInput.
- * @param aText Text
- * @return String
- */
- private String validateEmptyInput(Text aText) {
- if (null != fValidator) {
- return ((EmptyInputValidator) fValidator).isValid(aText.getText());
- }
- return null;
- }
-
- /**
- * Method setShellStyle.
- * @param newShellStyle int
- */
- @Override
- protected void setShellStyle(int newShellStyle) {
- int newstyle = newShellStyle & ~SWT.APPLICATION_MODAL; /* turn off APPLICATION_MODAL */
- newstyle |= SWT.MODELESS; /* turn on MODELESS */
- super.setShellStyle(newstyle);
- }
-
- /**
- * Method open.
- * @return int
- */
- @Override
- public int open() {
- super.open();
- pumpMessages(); /* this will let the caller wait till OK, Cancel is pressed, but will let the other GUI responsive */
- //return retVal;
- return super.getReturnCode();
- }
-
- /**
- * Method pumpMessages.
- */
- protected void pumpMessages() {
- final Shell sh = getShell();
- final Display disp = sh.getDisplay();
- while( !sh.isDisposed() ) { // $codepro.audit.disable methodInvocationInLoopCondition
- if( !disp.readAndDispatch() ) disp.sleep();
- }
- disp.update();
- }
-}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/FolderInputValidator.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/R4EInputValidator.java
similarity index 91%
rename from org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/FolderInputValidator.java
rename to org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/R4EInputValidator.java
index f897757..7f99c14 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/FolderInputValidator.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/R4EInputValidator.java
@@ -28,7 +28,7 @@
* @author lmcdubo
* @version $Revision: 1.0 $
*/
-public class FolderInputValidator implements IInputValidator {
+public class R4EInputValidator implements IInputValidator {
// ------------------------------------------------------------------------
// Constants
@@ -69,7 +69,7 @@
* @return String
* @see org.eclipse.jface.dialogs.IInputValidator#isValid(String)
*/
- public String isValid(String newText) {
+ public String isFolderValid(String newText) { // $codepro.audit.disable booleanMethodNamingConvention
if (null == newText || 0 == newText.length()) return FOLDER_VALIDATION_ERROR_MESSAGE;
final File folder = new File (newText);
if (folder.exists()) return null;
@@ -81,7 +81,7 @@
* @param newText String
* @return String
*/
- public String isGroupExists(String newText) { // $codepro.audit.disable booleanMethodNamingConvention
+ public String isFileExists(String newText) { // $codepro.audit.disable booleanMethodNamingConvention
final File dir = new File(newText);
final File[] files = dir.listFiles(new WildcardFileFilter(GROUP_WILDCARD_NAME));
@@ -94,7 +94,7 @@
* @param newText String
* @return String
*/
- public String isEmpty(String newText) { // $codepro.audit.disable booleanMethodNamingConvention
+ public String isValid(String newText) { // $codepro.audit.disable booleanMethodNamingConvention
if (null == newText || 0 == newText.length()) return EMPTY_VALIDATION_ERROR_MESSAGE;
return null;
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/R4EReviewGroupInputDialog.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/R4EReviewGroupInputDialog.java
deleted file mode 100644
index 2ba0b55..0000000
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/R4EReviewGroupInputDialog.java
+++ /dev/null
@@ -1,466 +0,0 @@
-// $codepro.audit.disable com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.alwaysOverridetoString.alwaysOverrideToString, com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.constructorsOnlyInvokeFinalMethods, com.instantiations.assist.eclipse.analysis.deserializeabilitySecurity, com.instantiations.assist.eclipse.analysis.disallowReturnMutable, com.instantiations.assist.eclipse.analysis.enforceCloneableUsageSecurity, explicitThisUsage
-/*******************************************************************************
- * Copyright (c) 2010 Ericsson Research Canada
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Description:
- *
- * This class implements the dialog used to fill-in the Review Group element
- * details. This is a modal dialog
- *
- * Contributors:
- * Sebastien Dubois - Created for Mylyn Review R4E project
- *
- ******************************************************************************/
-
-package org.eclipse.mylyn.reviews.r4e.ui.dialogs;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.mylyn.reviews.r4e.ui.Activator;
-import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author lmcdubo
- * @version $Revision: 1.0 $
- */
-public class R4EReviewGroupInputDialog extends Dialog {
-
- // ------------------------------------------------------------------------
- // Constants
- // ------------------------------------------------------------------------
-
- /**
- * Field MINIMUM_DIALOG_AREA_HEIGHT.
- * (value is 200)
- */
- private static final int MINIMUM_DIALOG_AREA_HEIGHT = 200;
-
- /**
- * Field NUM_COLUMNS_FOLDER_INPUT_COMPOSITE.
- * (value is 2)
- */
- private static final int NUM_COLUMNS_FOLDER_INPUT_COMPOSITE = 2;
-
- /**
- * The title of the dialog.
- */
- private final String fTitle;
-
- /**
- * The message to display, or <code>null</code> if none.
- */
- private final String fGroupNameMessage;
-
- /**
- * The input value; the empty string by default.
- */
- private String fGroupNameValue = "";
-
- /**
- * Input text widget.
- */
- private Text fGroupNameInputTextField;
-
- /**
- * Field fGroupFolderMessage.
- */
- private String fGroupFolderMessage = null;
-
- /**
- * Field fGroupFolderValue.
- */
- private String fGroupFolderValue = "";
-
- /**
- * Field fGroupFolderInputTextField.
- */
- private Text fGroupFolderInputTextField = null;
-
- /**
- * Field fGroupFolderInputButton.
- */
- private Button fGroupFolderInputButton = null;
-
- /**
- * Field fGroupDescriptionMessage.
- */
- private String fGroupDescriptionMessage = null;
-
- /**
- * Field fGroupDescriptionValue.
- */
- private String fGroupDescriptionValue = "";
-
- /**
- * Field fGroupDescriptionInputTextField.
- */
- private Text fGroupDescriptionInputTextField = null;
-
- /**
- * Ok button widget.
- */
- private Button fOKButton;
-
- /**
- * The input validator, or <code>null</code> if none.
- */
- private final IInputValidator fValidator;
-
-
- // ------------------------------------------------------------------------
- // Constructors
- // ------------------------------------------------------------------------
-
- /**
- * Constructor for R4EReviewGroupInputDialog.
- * @param aParentShell Shell
- * @param aDialogTitle String
- * @param aGroupNameMessage String
- * @param aGroupFolderMessage String
- * @param aGroupDescriptionMessage String
- */
- public R4EReviewGroupInputDialog(Shell aParentShell, String aDialogTitle, String aGroupNameMessage,
- String aGroupFolderMessage, String aGroupDescriptionMessage) {
- super(aParentShell);
- setBlockOnOpen(true);
- fTitle = aDialogTitle;
- fGroupNameMessage = aGroupNameMessage;
- fGroupFolderMessage = aGroupFolderMessage;
- fGroupDescriptionMessage = aGroupDescriptionMessage;
- fValidator = new FolderInputValidator();
- }
-
-
- // ------------------------------------------------------------------------
- // Methods
- // ------------------------------------------------------------------------
-
- /**
- * Method buttonPressed.
- * @param buttonId int
- * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
- */
- @Override
- protected void buttonPressed(int buttonId) {
- if (buttonId == IDialogConstants.OK_ID) {
- this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_WAIT));
- //Validate Name
- String validateResult = validateEmptyInput(fGroupNameInputTextField);
- if (null != validateResult) {
- //Validate of input failed
- final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_ERROR, "No input given for Group Name",
- new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, validateResult, null), IStatus.ERROR);
- dialog.open();
- this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
- return;
- }
-
- //Validate Folder
- validateResult = validateInput(fGroupFolderInputTextField);
- if (null != validateResult) {
- //Validate of input failed
- final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_ERROR, "Invalid input folder",
- new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, validateResult, null), IStatus.ERROR);
- dialog.open();
- this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
- return;
- }
-
- validateResult = validateGroupExists(fGroupFolderInputTextField);
- if (null != validateResult) {
- //Validate of input failed
- final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_ERROR, "Invalid input folder",
- new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, validateResult, null), IStatus.ERROR);
- dialog.open();
- this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
- return;
- }
-
- //Validate Description
- validateResult = validateEmptyInput(fGroupDescriptionInputTextField);
- if (null != validateResult) {
- //Validate of input failed
- final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_WARNING, "No input given for Group Description",
- new Status(IStatus.WARNING, Activator.PLUGIN_ID, 0, validateResult, null), IStatus.WARNING);
- dialog.open();
- }
- fGroupNameValue = fGroupNameInputTextField.getText();
- fGroupFolderValue = fGroupFolderInputTextField.getText();
- fGroupDescriptionValue = fGroupDescriptionInputTextField.getText();
- } else {
- fGroupNameValue = null;
- fGroupFolderValue = null;
- fGroupDescriptionValue = null;
- }
- this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
- super.buttonPressed(buttonId);
- }
-
- /**
- * Method configureShell.
- * @param shell Shell
- * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
- */
- @Override
- protected void configureShell(Shell shell) {
- super.configureShell(shell);
- if (null != fTitle) {
- shell.setText(fTitle);
- }
- }
-
- /**
- * Method createDialogArea.
- * @param parent Composite
- * @return Control
- * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
- */
- @Override
- protected Control createDialogArea(Composite parent) {
-
- // create composite
- final Composite composite = (Composite) super.createDialogArea(parent);
-
- // create Group Name message label
- if (null != fGroupNameMessage) {
- final Label label = new Label(composite, SWT.WRAP);
- label.setText(fGroupNameMessage);
- final GridData groupNameLabelData = new GridData(GridData.FILL, GridData.FILL, true, false);
- groupNameLabelData.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
- label.setLayoutData(groupNameLabelData);
- label.setFont(parent.getFont());
- }
-
- //create Group Name input text field
- fGroupNameInputTextField = new Text(composite, getInputTextStyle());
- fGroupNameInputTextField.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
-
- // create Group Folder input composite
- final Composite folderComposite = new Composite(composite, SWT.NONE);
- final GridLayout layout = new GridLayout(NUM_COLUMNS_FOLDER_INPUT_COMPOSITE, false);
- folderComposite.setLayout(layout);
- folderComposite.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-
- // create Group Folder message label
- if (null != fGroupFolderMessage) {
- final Label label = new Label(folderComposite, SWT.WRAP);
- label.setText(fGroupFolderMessage);
- final GridData reviewFolderLabelData = new GridData(GridData.FILL, GridData.END, true, false);
- reviewFolderLabelData.horizontalSpan = NUM_COLUMNS_FOLDER_INPUT_COMPOSITE;
- label.setLayoutData(reviewFolderLabelData);
- label.setFont(parent.getFont());
- }
-
- // create Group Folder text field and button
- fGroupFolderInputTextField = new Text(folderComposite, getInputTextStyle());
- fGroupFolderInputTextField.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, true, false));
- fGroupFolderInputButton = new Button(folderComposite, SWT.NONE);
- fGroupFolderInputButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJ_FOLDER).createImage()); // $codepro.audit.disable methodChainLength
- fGroupFolderInputButton.setLayoutData(new GridData(GridData.END, GridData.CENTER, false, false));
- fGroupFolderInputButton.addSelectionListener(new SelectionAdapter() { // $codepro.audit.disable com.instantiations.assist.eclipse.analysis.avoidInnerClasses
- @SuppressWarnings("synthetic-access")
- @Override
- public void widgetSelected(SelectionEvent event) {
- fGroupFolderInputTextField.setText(folderButtonPressed());
- }
- });
-
- // create Group Description message label
- if (null != fGroupDescriptionMessage) {
- final Label label = new Label(composite, SWT.WRAP);
- label.setText(fGroupDescriptionMessage);
- final GridData reviewDescriptionLabelData = new GridData(GridData.FILL, GridData.FILL, true, false);
- reviewDescriptionLabelData.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
- label.setLayoutData(reviewDescriptionLabelData);
- label.setFont(parent.getFont());
- }
-
- //create Group Description input text field
- fGroupDescriptionInputTextField = new Text(composite, getInputTextStyle() | SWT.V_SCROLL);
- fGroupDescriptionInputTextField.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
- composite.getShell().setMinimumSize(convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH),
- convertHorizontalDLUsToPixels(MINIMUM_DIALOG_AREA_HEIGHT));
-
- applyDialogFont(composite);
- return composite;
- }
-
- /**
- * Method folderButtonPressed.
- * @return String
- */
- protected String folderButtonPressed() {
- //Open folder dialog
- final DirectoryDialog dialog = new DirectoryDialog(getShell(), SWT.SHEET);
- dialog.setMessage("Select Folder...");
- String dir = dialog.open();
- if (null != dir) {
- dir = dir.trim();
- if (0 == dir.length()) {
- return null;
- }
- }
- return dir;
- }
-
- /**
- * Method createButtonsForButtonBar.
- * @param parent Composite
- * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
- */
- @Override
- protected void createButtonsForButtonBar(Composite parent) {
- // create OK and Cancel buttons by default
- fOKButton = createButton(parent, IDialogConstants.OK_ID,
- IDialogConstants.OK_LABEL, true);
- createButton(parent, IDialogConstants.CANCEL_ID,
- IDialogConstants.CANCEL_LABEL, false);
- //do this here because setting the text will set enablement on the ok button
- fGroupNameInputTextField.setFocus();
- if (null != fGroupNameValue) {
- fGroupNameInputTextField.setText(fGroupNameValue);
- fGroupNameInputTextField.selectAll();
- }
- }
-
- /**
- * Returns the style bits that should be used for the input text field.
- * Defaults to a single line entry. Subclasses may override.
- * @since 3.4
- * @return the integer style bits that should be used when creating the input text
- */
- protected int getInputTextStyle() {
- return SWT.MULTI | SWT.WRAP ;
- }
-
- /**
- * Method isResizable.
- * @return boolean
- * @see org.eclipse.jface.dialogs.Dialog#isResizable()
- */
- @Override
- protected boolean isResizable() {
- return true;
- }
-
- /**
- * Returns the ok button.
- * @return the ok button
- */
- protected Button getOkButton() {
- return fOKButton;
- }
-
- /**
- * Returns the text area.
- * @return the group name text area
- */
- protected Text getGroupNameText() {
- return fGroupNameInputTextField;
- }
-
- /**
- * Returns the string typed into this input dialog.
- * @return the group name input string
- */
- public String getGroupNameValue() {
- return fGroupNameValue;
- }
-
- /**
- * Returns the text area.
- * @return the group folder text area
- */
- protected Text getGroupFolderText() {
- return fGroupNameInputTextField;
- }
-
- /**
- * Returns the string typed into this input dialog.
- * @return the group folder input string
- */
- public String getGroupFolderValue() {
- return fGroupFolderValue;
- }
-
- /**
- * Returns the text area.
- * @return the group description text area
- */
- protected Text getGroupDescriptionText() {
- return fGroupDescriptionInputTextField;
- }
-
- /**
- * Returns the string typed into this input dialog.
- * @return the group description input string
- */
- public String getGroupDescriptionValue() {
- return fGroupDescriptionValue;
- }
-
- /**
- * Validates the input.
- * <p>
- * The default implementation of this framework method delegates the request
- * to the supplied input validator object; if it finds the input invalid,
- * the error message is displayed in the dialog's message line. This hook
- * method is called whenever the text changes in the input field.
- * </p>
- * @param aText Text
- * @return String
- */
- protected String validateInput(Text aText) {
- if (null != fValidator) {
- return fValidator.isValid(aText.getText());
- }
- return null;
- }
-
- /**
- * Method validateGroupExists.
- * @param aText Text
- * @return String
- */
- private String validateGroupExists(Text aText) {
- if (null != fValidator) {
- return ((FolderInputValidator) fValidator).isGroupExists(aText.getText());
- }
- return null;
- }
-
- /**
- * Method validateEmptyInput.
- * @param aText Text
- * @return String
- */
- private String validateEmptyInput(Text aText) {
- if (null != fValidator) {
- return ((FolderInputValidator) fValidator).isEmpty(aText.getText());
- }
- return null;
- }
-}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/R4EReviewInputDialog.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/R4EReviewInputDialog.java
deleted file mode 100644
index 1a5d4b5..0000000
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/R4EReviewInputDialog.java
+++ /dev/null
@@ -1,321 +0,0 @@
-// $codepro.audit.disable com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.alwaysOverridetoString.alwaysOverrideToString, com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.constructorsOnlyInvokeFinalMethods, com.instantiations.assist.eclipse.analysis.deserializeabilitySecurity, com.instantiations.assist.eclipse.analysis.disallowReturnMutable, com.instantiations.assist.eclipse.analysis.enforceCloneableUsageSecurity, explicitThisUsage
-/*******************************************************************************
- * Copyright (c) 2010 Ericsson Research Canada
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Description:
- *
- * This class implements the dialog used to fill-in the Review element details
- * This is a modal dialog
- *
- * Contributors:
- * Sebastien Dubois - Created for Mylyn Review R4E project
- *
- ******************************************************************************/
-
-package org.eclipse.mylyn.reviews.r4e.ui.dialogs;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.mylyn.reviews.r4e.ui.Activator;
-import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @author lmcdubo
- * @version $Revision: 1.0 $
- */
-public class R4EReviewInputDialog extends Dialog {
-
- // ------------------------------------------------------------------------
- // Constants
- // ------------------------------------------------------------------------
-
- /**
- * Field MINIMUM_DIALOG_AREA_HEIGHT.
- * (value is 150)
- */
- private static final int MINIMUM_DIALOG_AREA_HEIGHT = 150;
-
-
- // ------------------------------------------------------------------------
- // Member variables
- // ------------------------------------------------------------------------
-
- /**
- * The title of the dialog.
- */
- private final String fTitle;
-
- /**
- * The message to display, or <code>null</code> if none.
- */
- private final String fReviewNameMessage;
-
- /**
- * The input value; the empty string by default.
- */
- private String fReviewNameValue = "";
-
- /**
- * Input text widget.
- */
- private Text fReviewNameInputTextField;
-
- /**
- * Field fReviewDescriptionMessage.
- */
- private String fReviewDescriptionMessage = null;
-
- /**
- * Field fReviewDescriptionValue.
- */
- private String fReviewDescriptionValue = "";
-
- /**
- * Field fReviewDescriptionInputTextField.
- */
- private Text fReviewDescriptionInputTextField = null;
-
- /**
- * Ok button widget.
- */
- private Button fOKButton;
-
- /**
- * The input validator, or <code>null</code> if none.
- */
- private final IInputValidator fValidator;
-
-
- // ------------------------------------------------------------------------
- // Constructors
- // ------------------------------------------------------------------------
-
- /**
- * Constructor for R4EReviewInputDialog.
- * @param aParentShell Shell
- * @param aDialogTitle String
- * @param aReviewNameMessage String
- * @param aReviewDescriptionMessage String
- */
- public R4EReviewInputDialog(Shell aParentShell, String aDialogTitle, String aReviewNameMessage,
- String aReviewDescriptionMessage) {
- super(aParentShell);
- setBlockOnOpen(true);
- fTitle = aDialogTitle;
- fReviewNameMessage = aReviewNameMessage;
- fReviewDescriptionMessage = aReviewDescriptionMessage;
- fValidator = new EmptyInputValidator();
- }
-
-
- // ------------------------------------------------------------------------
- // Methods
- // ------------------------------------------------------------------------
-
- /**
- * Method buttonPressed.
- * @param buttonId int
- * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
- */
- @Override
- protected void buttonPressed(int buttonId) {
- if (buttonId == IDialogConstants.OK_ID) {
- this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_WAIT));
-
- //Validate Review Name
- String validateResult = validateEmptyInput(fReviewNameInputTextField);
- if (null != validateResult) {
- //Validation of input failed
- final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_ERROR, "No input given for Review Name",
- new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, validateResult, null), IStatus.ERROR);
- dialog.open();
- this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
- return;
- }
- fReviewNameValue = fReviewNameInputTextField.getText();
-
- //Validate Review Description
- validateResult = validateEmptyInput(fReviewNameInputTextField);
- if (null != validateResult) {
- //Validation of input failed
- final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_ERROR, "No input given for Review Description",
- new Status(IStatus.WARNING, Activator.PLUGIN_ID, 0, validateResult, null), IStatus.WARNING);
- dialog.open();
- }
- fReviewDescriptionValue = fReviewDescriptionInputTextField.getText();
- } else {
- fReviewNameValue = null;
- fReviewDescriptionValue = null;
- }
- this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
- super.buttonPressed(buttonId);
- }
-
- /**
- * Method configureShell.
- * @param shell Shell
- * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
- */
- @Override
- protected void configureShell(Shell shell) {
- super.configureShell(shell);
- if (null != fTitle) {
- shell.setText(fTitle);
- }
- }
-
- /**
- * Method createDialogArea.
- * @param parent Composite
- * @return Control
- * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
- */
- @Override
- protected Control createDialogArea(Composite parent) {
-
- // create composite
- final Composite composite = (Composite) super.createDialogArea(parent);
-
- // create Review Name message label
- if (null != fReviewNameMessage) {
- final Label label = new Label(composite, SWT.WRAP);
- label.setText(fReviewNameMessage);
- final GridData reviewNameLabelData = new GridData(GridData.FILL, GridData.FILL, true, false);
- reviewNameLabelData.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
- label.setLayoutData(reviewNameLabelData);
- label.setFont(parent.getFont());
- }
-
- //create Review Name input text field
- fReviewNameInputTextField = new Text(composite, getInputTextStyle());
- fReviewNameInputTextField.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
-
- // create Review Description message label
- if (null != fReviewDescriptionMessage) {
- final Label label = new Label(composite, SWT.WRAP);
- label.setText(fReviewDescriptionMessage);
- final GridData reviewDescriptionLabelData = new GridData(GridData.FILL, GridData.FILL, true, false);
- reviewDescriptionLabelData.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
- label.setLayoutData(reviewDescriptionLabelData);
- label.setFont(parent.getFont());
- }
-
- //create Review Description input text field
- fReviewDescriptionInputTextField = new Text(composite, getInputTextStyle() | SWT.V_SCROLL);
- fReviewDescriptionInputTextField.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
- composite.getShell().setMinimumSize(convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH),
- convertHorizontalDLUsToPixels(MINIMUM_DIALOG_AREA_HEIGHT));
-
- applyDialogFont(composite);
- return composite;
- }
-
- /**
- * Method createButtonsForButtonBar.
- * @param parent Composite
- * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
- */
- @Override
- protected void createButtonsForButtonBar(Composite parent) {
- // create OK and Cancel buttons by default
- fOKButton = createButton(parent, IDialogConstants.OK_ID,
- IDialogConstants.OK_LABEL, true);
- createButton(parent, IDialogConstants.CANCEL_ID,
- IDialogConstants.CANCEL_LABEL, false);
- //do this here because setting the text will set enablement on the ok button
- fReviewNameInputTextField.setFocus();
- if (null != fReviewNameValue) {
- fReviewNameInputTextField.setText(fReviewNameValue);
- fReviewNameInputTextField.selectAll();
- }
- }
-
- /**
- * Returns the style bits that should be used for the input text field.
- * Defaults to a single line entry. Subclasses may override.
- * @since 3.4
- * @return the integer style bits that should be used when creating the input text
- */
- protected int getInputTextStyle() {
- return SWT.MULTI | SWT.WRAP ;
- }
-
- /**
- * Method isResizable.
- * @return boolean
- * @see org.eclipse.jface.dialogs.Dialog#isResizable()
- */
- @Override
- protected boolean isResizable() {
- return true;
- }
-
- /**
- * Returns the ok button.
- * @return the ok button
- */
- protected Button getOkButton() {
- return fOKButton;
- }
-
- /**
- * Returns the text area.
- * @return the review name text area
- */
- protected Text getReviewNameText() {
- return fReviewNameInputTextField;
- }
-
- /**
- * Returns the string typed into this input dialog.
- * @return the review name input string
- */
- public String getReviewNameValue() {
- return fReviewNameValue;
- }
-
- /**
- * Returns the text area.
- * @return the review description text area
- */
- protected Text getReviewDescriptionText() {
- return fReviewDescriptionInputTextField;
- }
-
- /**
- * Returns the string typed into this input dialog.
- * @return the review description input string
- */
- public String getReviewDescriptionValue() {
- return fReviewDescriptionValue;
- }
-
- /**
- * Method validateEmptyInput.
- * @param aText Text
- * @return String
- */
- private String validateEmptyInput(Text aText) {
- if (null != fValidator) {
- return ((EmptyInputValidator) fValidator).isValid(aText.getText());
- }
- return null;
- }
-}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/ReviewGroupInputDialog.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/ReviewGroupInputDialog.java
new file mode 100644
index 0000000..c17e296
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/ReviewGroupInputDialog.java
@@ -0,0 +1,549 @@
+// $codepro.audit.disable com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.alwaysOverridetoString.alwaysOverrideToString, com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.constructorsOnlyInvokeFinalMethods, com.instantiations.assist.eclipse.analysis.deserializeabilitySecurity, com.instantiations.assist.eclipse.analysis.disallowReturnMutable, com.instantiations.assist.eclipse.analysis.enforceCloneableUsageSecurity, explicitThisUsage
+/*******************************************************************************
+ * Copyright (c) 2010 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class implements the dialog used to fill-in the Review Group element
+ * details. This is a modal dialog
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+
+package org.eclipse.mylyn.reviews.r4e.ui.dialogs;
+
+import java.util.ArrayList;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.IInputValidator;
+import org.eclipse.mylyn.reviews.r4e.ui.Activator;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.EditableListWidget;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.forms.FormDialog;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.Section;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class ReviewGroupInputDialog extends FormDialog {
+
+ // ------------------------------------------------------------------------
+ // Constants
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field ADD_REVIEW_GROUP_DIALOG_TITLE.
+ * (value is ""Enter Review Group details"")
+ */
+ private static final String ADD_REVIEW_GROUP_DIALOG_TITLE = "Enter Review Group Details";
+
+ /**
+ * Field ADD_REVIEW_GROUP_NAME_DIALOG_VALUE.
+ * (value is ""Enter the Review Group Name:"")
+ */
+ private static final String ADD_REVIEW_GROUP_NAME_DIALOG_VALUE = "Group Name:";
+
+ /**
+ * Field ADD_REVIEW_GROUP_FOLDER_DIALOG_VALUE.
+ * (value is ""Enter the Review Group Folder:"")
+ */
+ private static final String ADD_REVIEW_GROUP_FOLDER_DIALOG_VALUE = "Group Folder:";
+
+ /**
+ * Field ADD_REVIEW_GROUP_DESCRIPTION_DIALOG_VALUE.
+ * (value is ""Enter the Review Group Description:"")
+ */
+ private static final String ADD_REVIEW_GROUP_DESCRIPTION_DIALOG_VALUE = "Group Description:";
+
+ /**
+ * Field ADD_REVIEW_GROUP_AVAILABLE_PROJECTS_DIALOG_VALUE.
+ * (value is ""Available Projects:"")
+ */
+ private static final String ADD_REVIEW_GROUP_AVAILABLE_PROJECTS_DIALOG_VALUE = "Available Projects:";
+
+ /**
+ * Field ADD_REVIEW_GROUP_AVAILABLE_COMPONENTS_DIALOG_VALUE.
+ * (value is ""Available Components:"")
+ */
+ private static final String ADD_REVIEW_GROUP_AVAILABLE_COMPONENTS_DIALOG_VALUE = "Available Components:";
+
+ /**
+ * Field ADD_REVIEW_GROUP_ENTRY_CRITERIA_DIALOG_VALUE.
+ * (value is ""Default Entry Criteria:"")
+ */
+ private static final String ADD_REVIEW_GROUP_ENTRY_CRITERIA_DIALOG_VALUE = "Default Entry Criteria:";
+
+ /**
+ * Field BASIC_PARAMS_HEADER_MSG.
+ * (value is ""Enter the mandatory basic parameters for this Review Group"")
+ */
+ private static final String BASIC_PARAMS_HEADER_MSG = "Enter the mandatory basic parameters for this Review Group";
+
+ /**
+ * Field EXTRA_PARAMS_HEADER_MSG.
+ * (value is ""Enter the optional extra parameters for this Review Group"")
+ */
+ private static final String EXTRA_PARAMS_HEADER_MSG = "Enter the optional extra parameters for this Review Group";
+
+
+ // ------------------------------------------------------------------------
+ // Member variables
+ // ------------------------------------------------------------------------
+
+ /**
+ * The input value; the empty string by default.
+ */
+ private String fGroupNameValue = "";
+
+ /**
+ * Input text widget.
+ */
+ private Text fGroupNameInputTextField;
+
+ /**
+ * Field fGroupFolderValue.
+ */
+ private String fGroupFolderValue = "";
+
+ /**
+ * Field fGroupFolderInputTextField.
+ */
+ private Text fGroupFolderInputTextField = null;
+
+ /**
+ * Field fGroupDescriptionValue.
+ */
+ private String fGroupDescriptionValue = "";
+
+ /**
+ * Field fGroupDescriptionInputTextField.
+ */
+ private Text fGroupDescriptionInputTextField = null;
+
+ /**
+ * Field fAvailableProjectsValues.
+ */
+ private String[] fAvailableProjectsValues = null;
+
+ /**
+ * Field fAvailableProjects.
+ */
+ private EditableListWidget fAvailableProjects = null;
+
+ /**
+ * Field fAvailableComponentsValues.
+ */
+ private String[] fAvailableComponentsValues = null;
+
+ /**
+ * Field fAvailableComponents.
+ */
+ private EditableListWidget fAvailableComponents = null;
+
+ /**
+ * Field fDefaultEntryCriteriaValue.
+ */
+ private String fDefaultEntryCriteriaValue = "";
+
+ /**
+ * Field fDefaultEntryCriteriaTextField.
+ */
+ private Text fDefaultEntryCriteriaTextField = null;
+
+ /**
+ * The input validator, or <code>null</code> if none.
+ */
+ private final IInputValidator fValidator;
+
+
+
+ // ------------------------------------------------------------------------
+ // Constructors
+ // ------------------------------------------------------------------------
+
+ /**
+ * Constructor for R4EReviewGroupInputDialog.
+ * @param aParentShell Shell
+ */
+ public ReviewGroupInputDialog(Shell aParentShell) {
+ super(aParentShell);
+ setBlockOnOpen(true);
+ fValidator = new R4EInputValidator();
+ }
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * Method buttonPressed.
+ * @param buttonId int
+ * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
+ */
+ @Override
+ protected void buttonPressed(int buttonId) {
+ if (buttonId == IDialogConstants.OK_ID) {
+ this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_WAIT));
+ //Validate Name
+ String validateResult = validateEmptyInput(fGroupNameInputTextField);
+ if (null != validateResult) {
+ //Validate of input failed
+ final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_ERROR, "No input given for Group Name",
+ new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, validateResult, null), IStatus.ERROR);
+ dialog.open();
+ this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
+ return;
+ }
+
+ //Validate Folder
+ validateResult = validateFolderInput(fGroupFolderInputTextField);
+ if (null != validateResult) {
+ //Validate of input failed
+ final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_ERROR, "Invalid input folder",
+ new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, validateResult, null), IStatus.ERROR);
+ dialog.open();
+ this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
+ return;
+ }
+
+ validateResult = validateGroupExists(fGroupFolderInputTextField);
+ if (null != validateResult) {
+ //Validate of input failed
+ final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_ERROR, "Invalid input folder",
+ new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, validateResult, null), IStatus.ERROR);
+ dialog.open();
+ this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
+ return;
+ }
+
+ //Validate Description
+ validateResult = validateEmptyInput(fGroupDescriptionInputTextField);
+ if (null != validateResult) {
+ //Validate of input failed
+ final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_WARNING, "No input given for Group Description",
+ new Status(IStatus.WARNING, Activator.PLUGIN_ID, 0, validateResult, null), IStatus.WARNING);
+ dialog.open();
+ }
+
+ //Validate Projects (optional)
+ final ArrayList<String> projectsValues = new ArrayList<String>();
+ for (Item item : fAvailableProjects.getItems()) {
+ validateResult = validateEmptyInput(item.getText());
+ if (null == validateResult) {
+ projectsValues.add(item.getText());
+ }
+ }
+ fAvailableProjectsValues = projectsValues.toArray(new String[projectsValues.size()]);
+
+ //Validate Components (optional)
+ final ArrayList<String> componentsValues = new ArrayList<String>();
+ for (Item item : fAvailableComponents.getItems()) {
+ validateResult = validateEmptyInput(item.getText());
+ if (null == validateResult) {
+ componentsValues.add(item.getText());
+ }
+ }
+ fAvailableComponentsValues = componentsValues.toArray(new String[componentsValues.size()]);
+
+ //Validate Entry Criteria (optional)
+ validateResult = validateEmptyInput(fDefaultEntryCriteriaTextField);
+ if (null == validateResult) {
+ fDefaultEntryCriteriaValue = fDefaultEntryCriteriaTextField.getText();
+ }
+
+ fGroupNameValue = fGroupNameInputTextField.getText();
+ fGroupFolderValue = fGroupFolderInputTextField.getText();
+ fGroupDescriptionValue = fGroupDescriptionInputTextField.getText();
+ } else {
+ fGroupNameValue = null;
+ fGroupFolderValue = null;
+ fGroupDescriptionValue = null;
+ fDefaultEntryCriteriaValue = null;
+ }
+ this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
+ super.buttonPressed(buttonId);
+ }
+
+ /**
+ * Method configureShell.
+ * @param shell Shell
+ * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+ */
+ @Override
+ protected void configureShell(Shell shell) {
+ super.configureShell(shell);
+ shell.setText(ADD_REVIEW_GROUP_DIALOG_TITLE);
+ }
+
+ /**
+ * Configures the dialog form and creates form content. Clients should
+ * override this method.
+ *
+ * @param mform
+ * the dialog form
+ */
+ @Override
+ protected void createFormContent(final IManagedForm mform) {
+
+ final FormToolkit toolkit = mform.getToolkit();
+ final ScrolledForm sform = mform.getForm();
+ sform.setExpandVertical(true);
+ final Composite composite = sform.getBody();
+ final GridLayout layout = new GridLayout(4, false);
+ composite.setLayout(layout);
+
+ //Grid data values
+ final GridData labelData = new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false);
+ final GridData textSingleData = new GridData(GridData.FILL, GridData.FILL, true, false);
+ textSingleData.horizontalSpan = 3;
+ final GridData textMultiData = new GridData(GridData.FILL, GridData.FILL, true, false);
+ textMultiData.horizontalSpan = 3;
+ final GridData buttonData = new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false);
+ buttonData.horizontalSpan = 1;
+
+ //Basic parameters section
+ final Section basicSection = toolkit.createSection(composite, Section.DESCRIPTION | ExpandableComposite.TITLE_BAR |
+ ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+ final GridData basicSectionGridData = new GridData(GridData.FILL, GridData.FILL, true, false);
+ basicSectionGridData.horizontalSpan = 4;
+ basicSection.setLayoutData(basicSectionGridData);
+ basicSection.setText(R4EUIConstants.BASIC_PARAMS_HEADER);
+ basicSection.setDescription(BASIC_PARAMS_HEADER_MSG);
+ basicSection.addExpansionListener(new ExpansionAdapter()
+ {
+ @Override
+ public void expansionStateChanged(ExpansionEvent e){
+ getShell().setSize(getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT));
+ sform.reflow(true);
+ }
+ });
+
+ final Composite basicSectionClient = toolkit.createComposite(basicSection);
+ basicSectionClient.setLayout(layout);
+ basicSection.setClient(basicSectionClient);
+
+ //Review Group Name
+ Label label = toolkit.createLabel(basicSectionClient, ADD_REVIEW_GROUP_NAME_DIALOG_VALUE);
+ label.setLayoutData(labelData);
+ fGroupNameInputTextField = toolkit.createText(basicSectionClient, "", SWT.SINGLE);
+ fGroupNameInputTextField.setLayoutData(textSingleData);
+
+ //Group Folder
+ label = toolkit.createLabel(basicSectionClient, ADD_REVIEW_GROUP_FOLDER_DIALOG_VALUE);
+ label.setLayoutData(labelData);
+ fGroupFolderInputTextField = toolkit.createText(basicSectionClient, "", SWT.SINGLE);
+ final GridData folderTextData = new GridData(GridData.FILL, GridData.BEGINNING, true, false);
+ folderTextData.horizontalSpan = 2;
+ fGroupFolderInputTextField.setLayoutData(folderTextData);
+ final Button folderButton = toolkit.createButton(basicSectionClient, "", SWT.NONE);
+ folderButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJ_FOLDER).createImage()); // $codepro.audit.disable methodChainLength
+ folderButton.setLayoutData(buttonData);
+ folderButton.addSelectionListener(new SelectionAdapter() { // $codepro.audit.disable com.instantiations.assist.eclipse.analysis.avoidInnerClasses
+ @SuppressWarnings("synthetic-access")
+ @Override
+ public void widgetSelected(SelectionEvent event) {
+ final String result = folderButtonPressed();
+ if (null == result) {
+ fGroupFolderInputTextField.setText("");
+ }
+ else {
+ fGroupFolderInputTextField.setText(result);
+ }
+ }
+ });
+
+ //Group Description
+ label = toolkit.createLabel(basicSectionClient, ADD_REVIEW_GROUP_DESCRIPTION_DIALOG_VALUE);
+ label.setLayoutData(labelData);
+ fGroupDescriptionInputTextField = toolkit.createText(basicSectionClient, "", SWT.MULTI | SWT.V_SCROLL);
+ textMultiData.heightHint = fGroupNameInputTextField.getLineHeight() * 3;
+ fGroupDescriptionInputTextField.setLayoutData(textMultiData);
+
+ //Extra parameters section
+ final Section extraSection = toolkit.createSection(composite, Section.DESCRIPTION | ExpandableComposite.TITLE_BAR |
+ ExpandableComposite.TWISTIE);
+ final GridData extraSectionGridData = new GridData(GridData.FILL, GridData.FILL, true, false);
+ extraSectionGridData.horizontalSpan = 4;
+ extraSection.setLayoutData(extraSectionGridData);
+ extraSection.setText(R4EUIConstants.EXTRA_PARAMS_HEADER);
+ extraSection.setDescription(EXTRA_PARAMS_HEADER_MSG);
+ extraSection.addExpansionListener(new ExpansionAdapter()
+ {
+ @Override
+ public void expansionStateChanged(ExpansionEvent e){
+ getShell().setSize(getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT));
+ sform.reflow(true);
+ }
+ });
+
+ final Composite extraSectionClient = toolkit.createComposite(extraSection);
+ extraSectionClient.setLayout(layout);
+ extraSection.setClient(extraSectionClient);
+
+ //Available Projects
+ label = toolkit.createLabel(extraSectionClient, ADD_REVIEW_GROUP_AVAILABLE_PROJECTS_DIALOG_VALUE);
+ label.setLayoutData(labelData);
+ fAvailableProjects = new EditableListWidget(toolkit, extraSectionClient, textSingleData, null, 0, Text.class, null);
+
+ //Available Components
+ label = toolkit.createLabel(extraSectionClient, ADD_REVIEW_GROUP_AVAILABLE_COMPONENTS_DIALOG_VALUE);
+ label.setLayoutData(labelData);
+ fAvailableComponents = new EditableListWidget(toolkit, extraSectionClient, textSingleData, null, 0, Text.class, null);
+
+ // Default Entry Criteria
+ label = toolkit.createLabel(extraSectionClient, ADD_REVIEW_GROUP_ENTRY_CRITERIA_DIALOG_VALUE);
+ label.setLayoutData(labelData);
+ fDefaultEntryCriteriaTextField = toolkit.createText(extraSectionClient, "", SWT.MULTI | SWT.V_SCROLL);
+ fDefaultEntryCriteriaTextField.setLayoutData(textMultiData);
+ }
+
+ /**
+ * Method folderButtonPressed.
+ * @return String
+ */
+ protected String folderButtonPressed() {
+ //Open folder dialog
+ final DirectoryDialog dialog = new DirectoryDialog(getShell(), SWT.SHEET);
+ dialog.setMessage("Select Folder...");
+ String dir = dialog.open();
+ if (null != dir) {
+ dir = dir.trim();
+ if (0 == dir.length()) {
+ return null;
+ }
+ }
+ return dir;
+ }
+
+ /**
+ * Method isResizable.
+ * @return boolean
+ * @see org.eclipse.jface.dialogs.Dialog#isResizable()
+ */
+ @Override
+ protected boolean isResizable() {
+ return true;
+ }
+
+ /**
+ * Returns the string typed into this input dialog.
+ * @return the group name input string
+ */
+ public String getGroupNameValue() {
+ return fGroupNameValue;
+ }
+
+ /**
+ * Returns the string typed into this input dialog.
+ * @return the group folder input string
+ */
+ public String getGroupFolderValue() {
+ return fGroupFolderValue;
+ }
+
+ /**
+ * Returns the string typed into this input dialog.
+ * @return the group description input string
+ */
+ public String getGroupDescriptionValue() {
+ return fGroupDescriptionValue;
+ }
+
+ /**
+ * Returns the strings typed into this input dialog.
+ * @return the Available projects input strings
+ */
+ public String[] getAvailableProjectsValues() {
+ return fAvailableProjectsValues;
+ }
+
+ /**
+ * Returns the strings typed into this input dialog.
+ * @return the Available components input strings
+ */
+ public String[] getAvailableComponentsValues() {
+ return fAvailableComponentsValues;
+ }
+
+ /**
+ * Returns the string typed into this input dialog.
+ * @return the Default entry criteria input string
+ */
+ public String getDefaultEntryCriteriaValue() {
+ return fDefaultEntryCriteriaValue;
+ }
+
+ /**
+ * Validates the input.
+ * <p>
+ * The default implementation of this framework method delegates the request
+ * to the supplied input validator object; if it finds the input invalid,
+ * the error message is displayed in the dialog's message line. This hook
+ * method is called whenever the text changes in the input field.
+ * </p>
+ * @param aText Text
+ * @return String
+ */
+ protected String validateFolderInput(Text aText) {
+ return ((R4EInputValidator) fValidator).isFolderValid(aText.getText());
+ }
+
+ /**
+ * Method validateGroupExists.
+ * @param aText Text
+ * @return String
+ */
+ private String validateGroupExists(Text aText) {
+ return ((R4EInputValidator) fValidator).isFileExists(aText.getText());
+ }
+
+ /**
+ * Method validateEmptyInput.
+ * @param aText Text
+ * @return String
+ */
+ private String validateEmptyInput(Text aText) {
+ return fValidator.isValid(aText.getText());
+ }
+
+ /**
+ * Method validateEmptyInput.
+ * @param aString String
+ * @return String
+ */
+ private String validateEmptyInput(String aString) {
+ return fValidator.isValid(aString);
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/ReviewInputDialog.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/ReviewInputDialog.java
new file mode 100644
index 0000000..6029980
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/dialogs/ReviewInputDialog.java
@@ -0,0 +1,562 @@
+// $codepro.audit.disable com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.alwaysOverridetoString.alwaysOverrideToString, com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.constructorsOnlyInvokeFinalMethods, com.instantiations.assist.eclipse.analysis.deserializeabilitySecurity, com.instantiations.assist.eclipse.analysis.disallowReturnMutable, com.instantiations.assist.eclipse.analysis.enforceCloneableUsageSecurity, explicitThisUsage
+/*******************************************************************************
+ * Copyright (c) 2010 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class implements the dialog used to fill-in the Review element details
+ * This is a modal dialog
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+
+package org.eclipse.mylyn.reviews.r4e.ui.dialogs;
+
+import java.util.ArrayList;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.IInputValidator;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewType;
+import org.eclipse.mylyn.reviews.r4e.ui.Activator;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIReviewGroup;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.EditableListWidget;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.FormDialog;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.Section;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class ReviewInputDialog extends FormDialog {
+
+ // ------------------------------------------------------------------------
+ // Constants
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field ADD_REVIEW_DIALOG_TITLE.
+ * (value is ""Enter Review details"")
+ */
+ private static final String ADD_REVIEW_DIALOG_TITLE = "Enter Review Details";
+
+ /**
+ * Field ADD_REVIEW_NAME_DIALOG_VALUE.
+ * (value is ""Review Name: "")
+ */
+ private static final String ADD_REVIEW_NAME_DIALOG_VALUE = "Review Name: ";
+
+ /**
+ * Field ADD_REVIEW_DESCRIPTION_DIALOG_VALUE.
+ * (value is ""Review Description: "")
+ */
+ private static final String ADD_REVIEW_DESCRIPTION_DIALOG_VALUE = "Review Description: ";
+
+ /**
+ * Field BASIC_PARAMS_HEADER_MSG.
+ * (value is ""Enter the mandatory basic parameters for this Review Group"")
+ */
+ private static final String BASIC_PARAMS_HEADER_MSG = "Enter the mandatory basic parameters for this Review";
+
+ /**
+ * Field EXTRA_PARAMS_HEADER_MSG.
+ * (value is ""Enter the optional extra parameters for this Review Group"")
+ */
+ private static final String EXTRA_PARAMS_HEADER_MSG = "Enter the optional extra parameters for this Review";
+
+ /**
+ * Field ADD_REVIEW_GROUP_PROJECT_DIALOG_VALUE.
+ * (value is ""Available Projects:"")
+ */
+ private static final String ADD_REVIEW_PROJECT_DIALOG_VALUE = "Project:";
+
+ /**
+ * Field ADD_REVIEW_GROUP_COMPONENTS_DIALOG_VALUE.
+ * (value is ""Available Components:"")
+ */
+ private static final String ADD_REVIEW_COMPONENTS_DIALOG_VALUE = "Components:";
+
+ /**
+ * Field ADD_REVIEW_GROUP_ENTRY_CRITERIA_DIALOG_VALUE.
+ * (value is ""Default Entry Criteria:"")
+ */
+ private static final String ADD_REVIEW_ENTRY_CRITERIA_DIALOG_VALUE = "Entry Criteria:";
+
+ /**
+ * Field ADD_REVIEW_GROUP_ENTRY_CRITERIA_DIALOG_VALUE.
+ * (value is ""Default Entry Criteria:"")
+ */
+ private static final String ADD_REVIEW_OBJECTIVES_DIALOG_VALUE = "Objectives:";
+
+ /**
+ * Field ADD_REVIEW_GROUP_ENTRY_CRITERIA_DIALOG_VALUE.
+ * (value is ""Default Entry Criteria:"")
+ */
+ private static final String ADD_REVIEW_REFERENCE_MATERIAL_DIALOG_VALUE = "Reference Material:";
+
+ /**
+ * Field REVIEW_TYPES.
+ */
+ private static final String[] REVIEW_TYPES = { R4EUIConstants.REVIEW_TYPE_BASIC,
+ R4EUIConstants.REVIEW_TYPE_INFORMAL, R4EUIConstants.REVIEW_TYPE_FORMAL };
+
+
+ // ------------------------------------------------------------------------
+ // Member variables
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field fReviewGroup.
+ */
+ protected final R4EUIReviewGroup fReviewGroup;
+
+ /**
+ * Field fReviewType.
+ */
+ private CCombo fReviewType = null;
+
+ /**
+ * Field fReviewTypeValue.
+ */
+ private R4EReviewType fReviewTypeValue;
+
+ /**
+ * The input value; the empty string by default.
+ */
+ private String fReviewNameValue = "";
+
+ /**
+ * Input text widget.
+ */
+ Text fReviewNameInputTextField;
+
+ /**
+ * Field fReviewDescriptionValue.
+ */
+ private String fReviewDescriptionValue = "";
+
+ /**
+ * Field fReviewDescriptionInputTextField.
+ */
+ private Text fReviewDescriptionInputTextField = null;
+
+ /**
+ * Field fProjectValue.
+ */
+ private String fProjectValue = "";
+
+ /**
+ * Field fProjectTextField.
+ */
+ private CCombo fProjectsCombo = null;
+
+ /**
+ * Field fComponentsValues.
+ */
+ private String[] fComponentsValues = null;
+
+ /**
+ * Field fAvailableComponents.
+ */
+ private EditableListWidget fComponents = null;
+
+ /**
+ * Field fEntryCriteriaValue.
+ */
+ private String fEntryCriteriaValue = "";
+
+ /**
+ * Field fEntryCriteriaTextField.
+ */
+ private Text fEntryCriteriaTextField = null;
+
+ /**
+ * Field fObjectivesValue.
+ */
+ private String fObjectivesValue = "";
+
+ /**
+ * Field fObjectivesTextField.
+ */
+ private Text fObjectivesTextField = null;
+
+ /**
+ * Field fReferenceMaterialValue.
+ */
+ private String fReferenceMaterialValue = "";
+
+ /**
+ * Field fReferenceMaterialTextField.
+ */
+ private Text fReferenceMaterialTextField = null;
+
+ /**
+ * The input validator, or <code>null</code> if none.
+ */
+ private final IInputValidator fValidator;
+
+
+ // ------------------------------------------------------------------------
+ // Constructors
+ // ------------------------------------------------------------------------
+
+ /**
+ * Constructor for R4EReviewInputDialog.
+ * @param aParentShell Shell
+ * @param aReviewGroup R4EUIReviewGroup
+ */
+ public ReviewInputDialog(Shell aParentShell, R4EUIReviewGroup aReviewGroup) {
+ super(aParentShell);
+ setBlockOnOpen(true);
+ fReviewGroup = aReviewGroup;
+ fValidator = new R4EInputValidator();
+ }
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * Method buttonPressed.
+ * @param buttonId int
+ * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
+ */
+ @Override
+ protected void buttonPressed(int buttonId) {
+ if (buttonId == IDialogConstants.OK_ID) {
+ this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_WAIT));
+
+ //Review type (no validation needed as this is a read-only combo box
+ if (fReviewType.getText().equals(R4EUIConstants.REVIEW_TYPE_FORMAL)) {
+ fReviewTypeValue = R4EReviewType.R4E_REVIEW_TYPE_FORMAL;
+ }
+ if (fReviewType.getText().equals(R4EUIConstants.REVIEW_TYPE_INFORMAL)) {
+ fReviewTypeValue = R4EReviewType.R4E_REVIEW_TYPE_INFORMAL;
+ } else {
+ fReviewTypeValue = R4EReviewType.R4E_REVIEW_TYPE_BASIC;
+ }
+
+ //Validate Review Name
+ String validateResult = validateEmptyInput(fReviewNameInputTextField);
+ if (null != validateResult) {
+ //Validation of input failed
+ final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_ERROR, "No input given for Review Type",
+ new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, validateResult, null), IStatus.ERROR);
+ dialog.open();
+ this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
+ return;
+ }
+ fReviewNameValue = fReviewNameInputTextField.getText();
+
+ //Validate Review Description
+ validateResult = validateEmptyInput(fReviewNameInputTextField);
+ if (null != validateResult) {
+ //Validation of input failed
+ final ErrorDialog dialog = new ErrorDialog(null, R4EUIConstants.DIALOG_TITLE_ERROR, "No input given for Review Description",
+ new Status(IStatus.WARNING, Activator.PLUGIN_ID, 0, validateResult, null), IStatus.WARNING);
+ dialog.open();
+ }
+ fReviewDescriptionValue = fReviewDescriptionInputTextField.getText();
+
+ //Validate Project (optional)
+ validateResult = validateEmptyInput(fProjectsCombo.getText());
+ if (null == validateResult) {
+ fProjectValue = fProjectsCombo.getText();
+ }
+
+ //Validate Components (optional)
+ final ArrayList<String> componentsValues = new ArrayList<String>();
+ for (Item item : fComponents.getItems()) {
+ validateResult = validateEmptyInput(item.getText());
+ if (null == validateResult) {
+ componentsValues.add(item.getText());
+ }
+ }
+ fComponentsValues = componentsValues.toArray(new String[componentsValues.size()]);
+
+ //Validate Entry Criteria (optional)
+ validateResult = validateEmptyInput(fEntryCriteriaTextField);
+ if (null == validateResult) {
+ fEntryCriteriaValue = fEntryCriteriaTextField.getText();
+ }
+
+ //Validate Objectives (optional)
+ validateResult = validateEmptyInput(fObjectivesTextField);
+ if (null == validateResult) {
+ fObjectivesValue = fObjectivesTextField.getText();
+ }
+
+ //Validate ReferenceMaterial (optional)
+ validateResult = validateEmptyInput(fReferenceMaterialTextField);
+ if (null == validateResult) {
+ fReferenceMaterialValue = fReferenceMaterialTextField.getText();
+ }
+ } else {
+ fReviewNameValue = null;
+ fReviewDescriptionValue = null;
+ fProjectValue = null;
+ fEntryCriteriaValue = null;
+ fObjectivesValue = null;
+ fReferenceMaterialValue = null;
+ }
+ this.getShell().setCursor(this.getShell().getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
+ super.buttonPressed(buttonId);
+ }
+
+ /**
+ * Method configureShell.
+ * @param shell Shell
+ * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+ */
+ @Override
+ protected void configureShell(Shell shell) {
+ super.configureShell(shell);
+ shell.setText(ADD_REVIEW_DIALOG_TITLE);
+ }
+
+ /**
+ * Configures the dialog form and creates form content. Clients should
+ * override this method.
+ *
+ * @param mform
+ * the dialog form
+ */
+ @Override
+ protected void createFormContent(final IManagedForm mform) {
+
+ final FormToolkit toolkit = mform.getToolkit();
+ final ScrolledForm sform = mform.getForm();
+ sform.setExpandVertical(true);
+ final Composite composite = sform.getBody();
+ final GridLayout layout = new GridLayout(4, false);
+ composite.setLayout(layout);
+
+ //Grid data values
+ final GridData labelData = new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false);
+ final GridData textSingleData = new GridData(GridData.FILL, GridData.FILL, true, false);
+ textSingleData.horizontalSpan = 3;
+ final GridData textMultiData = new GridData(GridData.FILL, GridData.FILL, true, false);
+ textMultiData.horizontalSpan = 3;
+
+ //Review Type
+ Label label = toolkit.createLabel(composite, "Review Type: ");
+ label.setLayoutData(labelData);
+ fReviewType = new CCombo(composite, SWT.BORDER | SWT.READ_ONLY);
+ fReviewType.setItems(REVIEW_TYPES);
+ fReviewType.select(0);
+ fReviewType.setLayoutData(textSingleData);
+
+ //Basic parameters section
+ final Section basicSection = toolkit.createSection(composite, Section.DESCRIPTION | ExpandableComposite.TITLE_BAR |
+ ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+ final GridData basicSectionGridData = new GridData(GridData.FILL, GridData.FILL, true, false);
+ basicSectionGridData.horizontalSpan = 4;
+ basicSection.setLayoutData(basicSectionGridData);
+ basicSection.setText(R4EUIConstants.BASIC_PARAMS_HEADER);
+ basicSection.setDescription(BASIC_PARAMS_HEADER_MSG);
+ basicSection.addExpansionListener(new ExpansionAdapter()
+ {
+ @Override
+ public void expansionStateChanged(ExpansionEvent e){
+ getShell().setSize(getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT));
+ sform.reflow(true);
+ }
+ });
+
+ final Composite basicSectionClient = toolkit.createComposite(basicSection);
+ basicSectionClient.setLayout(layout);
+ basicSection.setClient(basicSectionClient);
+
+ //Review Name
+ label = toolkit.createLabel(basicSectionClient, ADD_REVIEW_NAME_DIALOG_VALUE);
+ label.setLayoutData(labelData);
+ fReviewNameInputTextField = toolkit.createText(basicSectionClient, "", SWT.SINGLE);
+ fReviewNameInputTextField.setLayoutData(textSingleData);
+
+ //Review Description
+ label = toolkit.createLabel(basicSectionClient, ADD_REVIEW_DESCRIPTION_DIALOG_VALUE);
+ label.setLayoutData(labelData);
+ fReviewDescriptionInputTextField = toolkit.createText(basicSectionClient, "", SWT.MULTI | SWT.V_SCROLL);
+ textMultiData.heightHint = fReviewNameInputTextField.getLineHeight() * 3;
+ fReviewDescriptionInputTextField.setLayoutData(textMultiData);
+
+ //Extra parameters section
+ final Section extraSection = toolkit.createSection(composite, Section.DESCRIPTION | ExpandableComposite.TITLE_BAR |
+ ExpandableComposite.TWISTIE);
+ final GridData extraSectionGridData = new GridData(GridData.FILL, GridData.FILL, true, false);
+ extraSectionGridData.horizontalSpan = 4;
+ extraSection.setLayoutData(extraSectionGridData);
+ extraSection.setText(R4EUIConstants.EXTRA_PARAMS_HEADER);
+ extraSection.setDescription(EXTRA_PARAMS_HEADER_MSG);
+ extraSection.addExpansionListener(new ExpansionAdapter()
+ {
+ @Override
+ public void expansionStateChanged(ExpansionEvent e){
+ getShell().setSize(getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT));
+ sform.reflow(true);
+ }
+ });
+
+ final Composite extraSectionClient = toolkit.createComposite(extraSection);
+ extraSectionClient.setLayout(layout);
+ extraSection.setClient(extraSectionClient);
+
+ //Project
+ label = toolkit.createLabel(extraSectionClient, ADD_REVIEW_PROJECT_DIALOG_VALUE);
+ label.setLayoutData(labelData);
+ fProjectsCombo = new CCombo(extraSectionClient, SWT.BORDER | SWT.READ_ONLY);
+ final String[] projects = (String[]) fReviewGroup.getReviewGroup().getAvailableProjects().toArray();
+ if (0 == projects.length) fProjectsCombo.setEnabled(false);
+ fProjectsCombo.setItems(projects);
+ final GridData data1 = new GridData(GridData.FILL, GridData.FILL, true, false);
+ data1.horizontalSpan = 3;
+ fProjectsCombo.setLayoutData(data1);
+
+ //Components
+ label = toolkit.createLabel(extraSectionClient, ADD_REVIEW_COMPONENTS_DIALOG_VALUE);
+ label.setLayoutData(labelData);
+ final String[] components = (String[]) fReviewGroup.getReviewGroup().getAvailableComponents().toArray();
+ fComponents = new EditableListWidget(toolkit, extraSectionClient, textSingleData, null, 0, CCombo.class,
+ components);
+ if (0 == components.length) fComponents.setEnabled(false);
+
+ //Entry Criteria
+ label = toolkit.createLabel(extraSectionClient, ADD_REVIEW_ENTRY_CRITERIA_DIALOG_VALUE);
+ label.setLayoutData(labelData);
+ fEntryCriteriaTextField = toolkit.createText(extraSectionClient, "", SWT.MULTI | SWT.V_SCROLL);
+ if (null != fReviewGroup.getGroup().getDefaultEntryCriteria()) {
+ fEntryCriteriaTextField.setText(fReviewGroup.getGroup().getDefaultEntryCriteria());
+ }
+ fEntryCriteriaTextField.setLayoutData(textMultiData);
+
+ //Objectives
+ label = toolkit.createLabel(extraSectionClient, ADD_REVIEW_OBJECTIVES_DIALOG_VALUE);
+ label.setLayoutData(labelData);
+ fObjectivesTextField = toolkit.createText(extraSectionClient, "", SWT.MULTI | SWT.V_SCROLL);
+ fObjectivesTextField.setLayoutData(textMultiData);
+
+ //Reference Material
+ label = toolkit.createLabel(extraSectionClient, ADD_REVIEW_REFERENCE_MATERIAL_DIALOG_VALUE);
+ label.setLayoutData(labelData);
+ fReferenceMaterialTextField = toolkit.createText(extraSectionClient, "", SWT.MULTI | SWT.V_SCROLL);
+ fReferenceMaterialTextField.setLayoutData(textMultiData);
+ }
+
+ /**
+ * Method isResizable.
+ * @return boolean
+ * @see org.eclipse.jface.dialogs.Dialog#isResizable()
+ */
+ @Override
+ protected boolean isResizable() {
+ return true;
+ }
+
+ /**
+ * Returns the text area.
+ * @return the review name text area
+ */
+ public R4EReviewType getReviewTypeValue() {
+ return fReviewTypeValue;
+ }
+
+ /**
+ * Returns the string typed into this input dialog.
+ * @return the review name input string
+ */
+ public String getReviewNameValue() {
+ return fReviewNameValue;
+ }
+
+ /**
+ * Returns the string typed into this input dialog.
+ * @return the review description input string
+ */
+ public String getReviewDescriptionValue() {
+ return fReviewDescriptionValue;
+ }
+
+ /**
+ * Returns the string typed into this input dialog.
+ * @return the project input string
+ */
+ public String getProjectValue() {
+ return fProjectValue;
+ }
+
+ /**
+ * Returns the strings typed into this input dialog.
+ * @return the components input strings
+ */
+ public String[] getComponentsValues() {
+ return fComponentsValues;
+ }
+
+ /**
+ * Returns the string typed into this input dialog.
+ * @return the entry criteria input string
+ */
+ public String getEntryCriteriaValue() {
+ return fEntryCriteriaValue;
+ }
+
+ /**
+ * Returns the string typed into this input dialog.
+ * @return the objectives input string
+ */
+ public String getObjectivesValue() {
+ return fObjectivesValue;
+ }
+
+ /**
+ * Returns the string typed into this input dialog.
+ * @return the reference material input string
+ */
+ public String getReferenceMaterialValue() {
+ return fReferenceMaterialValue;
+ }
+
+ /**
+ * Method validateEmptyInput.
+ * @param aText Text
+ * @return String
+ */
+ private String validateEmptyInput(Text aText) {
+ return fValidator.isValid(aText.getText());
+ }
+
+ /**
+ * Method validateEmptyInput.
+ * @param aString String
+ * @return String
+ */
+ private String validateEmptyInput(String aString) {
+ return fValidator.isValid(aString);
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/editors/EditorProxy.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/editors/EditorProxy.java
index 4caf508..6183a2f 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/editors/EditorProxy.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/editors/EditorProxy.java
@@ -44,7 +44,7 @@
import org.eclipse.mylyn.reviews.r4e.ui.Activator;
import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIModelElement;
import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIPosition;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomaly;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomalyBasic;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIComment;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIFileContext;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIReviewItem;
@@ -109,12 +109,12 @@
//Also check to get the position we should put the cursor on and the highlight range in the editor
/*if (element instanceof R4EUIAnomalyContainer) {
targetFileEditable = true;
- } else */if (element instanceof R4EUIAnomaly) {
+ } else */if (element instanceof R4EUIAnomalyBasic) {
//targetFileEditable = true;
- position = ((R4EUIAnomaly)element).getPosition();
+ position = ((R4EUIAnomalyBasic)element).getPosition();
} else if (element instanceof R4EUIComment) {
//targetFileEditable = true;
- position = ((R4EUIAnomaly)element.getParent()).getPosition();
+ position = ((R4EUIAnomalyBasic)element.getParent()).getPosition();
} else if (element instanceof R4EUISelection) {
position = ((R4EUISelection)element).getPosition();
//container = (R4EUISelectionContainer) ((R4EUISelection)element).getParent();
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/filters/LinePositionComparator.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/filters/LinePositionComparator.java
index 8067f20..7773e5a 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/filters/LinePositionComparator.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/filters/LinePositionComparator.java
@@ -23,7 +23,7 @@
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerComparator;
import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIPosition;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomaly;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomalyBasic;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUISelection;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUITextPosition;
@@ -58,9 +58,9 @@
if (e1 instanceof R4EUISelection) {
position1 = ((R4EUISelection)e1).getPosition();
position2 = ((R4EUISelection)e2).getPosition();
- } else if (e1 instanceof R4EUIAnomaly) {
- position1 = ((R4EUIAnomaly)e1).getPosition();
- position2 = ((R4EUIAnomaly)e2).getPosition();
+ } else if (e1 instanceof R4EUIAnomalyBasic) {
+ position1 = ((R4EUIAnomalyBasic)e1).getPosition();
+ position2 = ((R4EUIAnomalyBasic)e2).getPosition();
} else {
return 0;
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIAnomaly.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIAnomalyBasic.java
similarity index 92%
rename from org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIAnomaly.java
rename to org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIAnomalyBasic.java
index d3ad9b8..ca83f95 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIAnomaly.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIAnomalyBasic.java
@@ -32,17 +32,17 @@
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
import org.eclipse.mylyn.reviews.r4e.ui.Activator;
-import org.eclipse.mylyn.reviews.r4e.ui.dialogs.R4ECommentInputDialog;
+import org.eclipse.mylyn.reviews.r4e.ui.dialogs.CommentInputDialog;
import org.eclipse.mylyn.reviews.r4e.ui.navigator.ReviewNavigatorContentProvider;
import org.eclipse.mylyn.reviews.r4e.ui.preferences.PreferenceConstants;
-import org.eclipse.mylyn.reviews.r4e.ui.properties.AnomalyProperties;
+import org.eclipse.mylyn.reviews.r4e.ui.properties.general.AnomalyGeneralProperties;
import org.eclipse.ui.views.properties.IPropertySource;
/**
* @author lmcdubo
* @version $Revision: 1.0 $
*/
-public class R4EUIAnomaly extends R4EUIModelElement {
+public class R4EUIAnomalyBasic extends R4EUIModelElement {
// ------------------------------------------------------------------------
// Constants
@@ -78,18 +78,6 @@
*/
private static final String REMOVE_ELEMENT_COMMAND_TOOLTIP = "Disable (and Optionally Remove) this Anomaly " +
"from its parent file or review";
-
- /**
- * Field ADD_COMMENT_DIALOG_TITLE.
- * (value is ""Enter Comment details"")
- */
- private static final String ADD_COMMENT_DIALOG_TITLE = "Enter Comment Details";
-
- /**
- * Field ADD_COMMENT_DIALOG_VALUE.
- * (value is ""Enter your new Comments for this Anomaly:"")
- */
- private static final String ADD_COMMENT_DIALOG_VALUE = "Enter your New Comments for this Anomaly:";
// ------------------------------------------------------------------------
@@ -99,7 +87,7 @@
/**
* Field fAnomaly.
*/
- private final R4EAnomaly fAnomaly;
+ protected final R4EAnomaly fAnomaly;
/**
* Field fComments.
@@ -122,7 +110,7 @@
* @param aAnomaly R4EAnomaly
* @param aPosition IR4EUIPosition
*/
- public R4EUIAnomaly(IR4EUIModelElement aParent, R4EAnomaly aAnomaly, IR4EUIPosition aPosition) {
+ public R4EUIAnomalyBasic(IR4EUIModelElement aParent, R4EAnomaly aAnomaly, IR4EUIPosition aPosition) {
super(aParent, ((null == aPosition) ? aAnomaly.getTitle() : aPosition.toString()), buildAnomalyToolTip(aAnomaly));
fAnomaly = aAnomaly;
fComments = new ArrayList<R4EUIComment>();
@@ -144,7 +132,7 @@
@Override
public Object getAdapter(@SuppressWarnings("rawtypes") Class adapter) {
if (IR4EUIModelElement.class.equals(adapter)) return this;
- if (IPropertySource.class.equals(adapter)) return new AnomalyProperties(this);
+ if (IPropertySource.class.equals(adapter)) return new AnomalyGeneralProperties(this);
return null;
}
@@ -176,8 +164,8 @@
//Get comment from user and set it in model data
R4EComment tempComment = null;
R4EUIModelController.setDialogOpen(true);
- final R4ECommentInputDialog dialog = new R4ECommentInputDialog(R4EUIModelController.getNavigatorView(). // $codepro.audit.disable methodChainLength
- getSite().getWorkbenchWindow().getShell(), ADD_COMMENT_DIALOG_TITLE, ADD_COMMENT_DIALOG_VALUE);
+ final CommentInputDialog dialog = new CommentInputDialog(R4EUIModelController.getNavigatorView(). // $codepro.audit.disable methodChainLength
+ getSite().getWorkbenchWindow().getShell());
final int result = dialog.open();
if (result == Window.OK) {
tempComment = RModelFactory.eINSTANCE.createR4EComment();
@@ -355,8 +343,8 @@
//Get comment details from user
R4EUIModelController.setDialogOpen(true);
- final R4ECommentInputDialog dialog = new R4ECommentInputDialog(R4EUIModelController.getNavigatorView(). // $codepro.audit.disable methodChainLength
- getSite().getWorkbenchWindow().getShell(), ADD_COMMENT_DIALOG_TITLE, ADD_COMMENT_DIALOG_VALUE);
+ final CommentInputDialog dialog = new CommentInputDialog(R4EUIModelController.getNavigatorView(). // $codepro.audit.disable methodChainLength
+ getSite().getWorkbenchWindow().getShell());
final int result = dialog.open();
if (result == Window.OK) {
@@ -470,6 +458,7 @@
*/
@Override
public boolean isOpenEditorCmd() {
+ if (!(getParent() instanceof R4EUIFileContext)) return false;
if (isEnabled() && null != ((R4EUIFileContext)getParent().getParent()).getTargetFile()) return true;
return false;
}
@@ -481,7 +470,7 @@
*/
@Override
public boolean isAddChildElementCmd() {
- if (isEnabled()) return true;
+ if (isEnabled() && !(R4EUIModelController.getActiveReview().isReviewed())) return true;
return false;
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIAnomalyContainer.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIAnomalyContainer.java
index ba288e9..0662218 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIAnomalyContainer.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIAnomalyContainer.java
@@ -32,11 +32,14 @@
import org.eclipse.mylyn.reviews.frame.core.model.Location;
import org.eclipse.mylyn.reviews.frame.core.model.Topic;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomalyState;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomalyTextPosition;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EContent;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EDecision;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewComponent;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewType;
import org.eclipse.mylyn.reviews.r4e.core.model.RModelFactory;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
@@ -46,7 +49,7 @@
import org.eclipse.mylyn.reviews.r4e.core.versions.ReviewsVersionsIF.FileVersionInfo;
import org.eclipse.mylyn.reviews.r4e.core.versions.ReviewsVersionsIFFactory;
import org.eclipse.mylyn.reviews.r4e.ui.Activator;
-import org.eclipse.mylyn.reviews.r4e.ui.dialogs.R4EAnomalyInputDialog;
+import org.eclipse.mylyn.reviews.r4e.ui.dialogs.AnomalyInputDialog;
import org.eclipse.mylyn.reviews.r4e.ui.navigator.ReviewNavigatorContentProvider;
import org.eclipse.mylyn.reviews.r4e.ui.preferences.PreferenceConstants;
import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
@@ -79,24 +82,6 @@
* (value is ""Add a new global anomaly to the current review item"")
*/
private static final String ADD_CHILD_ELEMENT_COMMAND_TOOLTIP = "Add a New Global Anomaly to the Current Review Item";
-
- /**
- * Field ADD_ANOMALY_DIALOG_TITLE.
- * (value is ""Enter Anomaly details"")
- */
- private static final String ADD_ANOMALY_DIALOG_TITLE = "Enter Anomaly Details";
-
- /**
- * Field ADD_ANOMALY_DIALOG_VALUE.
- * (value is ""Enter the Anomaly title:"")
- */
- private static final String ADD_ANOMALY_DIALOG_VALUE = "Enter the Anomaly Title:";
-
- /**
- * Field ADD_COMMENT_DIALOG_VALUE.
- * (value is ""Enter your comments for the new Anomaly:"")
- */
- private static final String ADD_DESCRIPTION_DIALOG_VALUE = "Enter the Anomaly Description:";
// ------------------------------------------------------------------------
@@ -106,7 +91,7 @@
/**
* Field fAnomalies.
*/
- private final List<R4EUIAnomaly> fAnomalies;
+ private final List<R4EUIAnomalyBasic> fAnomalies;
// ------------------------------------------------------------------------
@@ -120,7 +105,7 @@
*/
public R4EUIAnomalyContainer(IR4EUIModelElement aParent, String aName) {
super(aParent, aName, null);
- fAnomalies = new ArrayList<R4EUIAnomaly>();
+ fAnomalies = new ArrayList<R4EUIAnomalyBasic>();
setImage(ANOMALY_CONTAINER_ICON_FILE);
}
@@ -140,14 +125,13 @@
//Get comment from user and set it in model data
R4EAnomaly tempAnomaly = null;
R4EUIModelController.setDialogOpen(true);
- final R4EAnomalyInputDialog dialog = new R4EAnomalyInputDialog(R4EUIModelController.getNavigatorView(). // $codepro.audit.disable methodChainLength
- getSite().getWorkbenchWindow().getShell(), ADD_ANOMALY_DIALOG_TITLE, ADD_ANOMALY_DIALOG_VALUE,
- ADD_DESCRIPTION_DIALOG_VALUE);
+ final AnomalyInputDialog dialog = new AnomalyInputDialog(R4EUIModelController.getNavigatorView(). // $codepro.audit.disable methodChainLength
+ getSite().getWorkbenchWindow().getShell());
final int result = dialog.open();
if (result == Window.OK) {
tempAnomaly = RModelFactory.eINSTANCE.createR4EAnomaly();
- tempAnomaly.setTitle(dialog.getAnomalyValue());
- tempAnomaly.setDescription(dialog.getCommentValue());
+ tempAnomaly.setTitle(dialog.getAnomalyTitleValue());
+ tempAnomaly.setDescription(dialog.getAnomalyDescriptionValue());
}
// else Window.CANCEL
R4EUIModelController.setDialogOpen(false);
@@ -164,7 +148,7 @@
*/
@Override
public IR4EUIModelElement[] getChildren() { // $codepro.audit.disable
- return fAnomalies.toArray(new R4EUIAnomaly[fAnomalies.size()]);
+ return fAnomalies.toArray(new R4EUIAnomalyBasic[fAnomalies.size()]);
}
/**
@@ -185,7 +169,7 @@
@Override
public void close() {
//Remove all children references
- R4EUIAnomaly anomaly = null;
+ R4EUIAnomalyBasic anomaly = null;
final int anomaliesSize = fAnomalies.size();
for (int i = 0; i < anomaliesSize; i++) {
@@ -205,7 +189,7 @@
@Override
public void open() {
- R4EUIAnomaly uiAnomaly = null;
+ R4EUIAnomalyBasic uiAnomaly = null;
final IR4EUIModelElement parentElement = getParent();
if (parentElement instanceof R4EUIFileContext) {
@@ -227,12 +211,18 @@
for (int j = 0; j < locationsSize; j++) {
position = new R4EUITextPosition(
((R4EContent)anomalies.get(i).getLocation().get(j)).getLocation()); // $codepro.audit.disable methodChainLength
- uiAnomaly = new R4EUIAnomaly(this, anomalies.get(i), position);
+ if (((R4EUIReview)getParent().getParent().getParent()).getReview().getType().equals(R4EReviewType.R4E_REVIEW_TYPE_BASIC)) {
+ uiAnomaly = new R4EUIAnomalyBasic(this, anomalies.get(i), position);
+ } else {
+ uiAnomaly = new R4EUIAnomalyExtended(this, anomalies.get(i), position);
+ uiAnomaly.setName(R4EUIAnomalyExtended.getStateString(anomalies.get(i).getState()) + ": " + uiAnomaly.getName());
+ }
+
addChildren(uiAnomaly);
uiAnomaly.open();
}
} else {
- uiAnomaly = new R4EUIAnomaly(this, anomalies.get(i), null);
+ uiAnomaly = new R4EUIAnomalyBasic(this, anomalies.get(i), null);
addChildren(uiAnomaly);
uiAnomaly.open();
}
@@ -252,7 +242,12 @@
if (anomaly.isEnabled() || Activator.getDefault().getPreferenceStore().
getBoolean(PreferenceConstants.P_SHOW_DISABLED)) {
if (0 == anomaly.getLocation().size()) {
- uiAnomaly = new R4EUIAnomaly(this, anomaly, null);
+ if (((R4EUIReview)getParent()).getReview().getType().equals(R4EReviewType.R4E_REVIEW_TYPE_BASIC)) {
+ uiAnomaly = new R4EUIAnomalyBasic(this, anomaly, null);
+ } else {
+ uiAnomaly = new R4EUIAnomalyExtended(this, anomaly, null);
+ uiAnomaly.setName(R4EUIAnomalyExtended.getStateString(anomaly.getState()) + ": " + getName());
+ }
addChildren(uiAnomaly);
uiAnomaly.open();
}
@@ -273,7 +268,7 @@
public boolean isEnabled() {
if (getParent().isEnabled()) {
if (0 == fAnomalies.size()) return true;
- for (R4EUIAnomaly anomaly : fAnomalies) {
+ for (R4EUIAnomalyBasic anomaly : fAnomalies) {
if (anomaly.isEnabled()) return true;
}
}
@@ -287,7 +282,7 @@
*/
@Override
public void addChildren(IR4EUIModelElement aChildToAdd) {
- fAnomalies.add((R4EUIAnomaly) aChildToAdd);
+ fAnomalies.add((R4EUIAnomalyBasic) aChildToAdd);
aChildToAdd.addListener((ReviewNavigatorContentProvider) R4EUIModelController.getNavigatorView().getTreeViewer().getContentProvider());
fireAdd(aChildToAdd);
}
@@ -304,7 +299,17 @@
public IR4EUIModelElement createChildren(R4EReviewComponent aModelComponent) throws ResourceHandlingException, OutOfSyncException {
final String user = R4EUIModelController.getReviewer();
final R4EAnomaly anomaly = R4EUIModelController.FModelExt.createR4EAnomaly(((R4EUIReview)getParent()).getParticipant(user, true));
- final R4EUIAnomaly addedChild = new R4EUIAnomaly(this, anomaly, null);
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(anomaly,
+ R4EUIModelController.getReviewer());
+ anomaly.setTitle(((R4EAnomaly)aModelComponent).getTitle()); //This is needed as the global anomaly title is displayed in the navigator view
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ R4EUIAnomalyBasic addedChild = null;
+ if (R4EUIModelController.getActiveReview().getReview().getType().equals(R4EReviewType.R4E_REVIEW_TYPE_BASIC)) {
+ addedChild = new R4EUIAnomalyBasic(this, anomaly, null);
+ } else {
+ addedChild = new R4EUIAnomalyExtended(this, anomaly, null);
+ ((R4EUIAnomalyExtended)addedChild).updateState(R4EAnomalyState.R4E_ANOMALY_STATE_ASSIGNED);
+ }
addedChild.setModelData(aModelComponent);
addChildren(addedChild);
return addedChild;
@@ -317,15 +322,14 @@
* @throws ResourceHandlingException
* @throws OutOfSyncException
*/
- public R4EUIAnomaly createAnomaly(R4EUITextPosition aUiPosition) throws ResourceHandlingException, OutOfSyncException {
+ public R4EUIAnomalyBasic createAnomaly(R4EUITextPosition aUiPosition) throws ResourceHandlingException, OutOfSyncException {
- R4EUIAnomaly uiAnomaly = null;
+ R4EUIAnomalyBasic uiAnomaly = null;
//Get anomaliy details from user
R4EUIModelController.setDialogOpen(true);
- final R4EAnomalyInputDialog dialog = new R4EAnomalyInputDialog(R4EUIModelController.getNavigatorView(). // $codepro.audit.disable methodChainLength
- getSite().getWorkbenchWindow().getShell(), ADD_ANOMALY_DIALOG_TITLE, ADD_ANOMALY_DIALOG_VALUE,
- ADD_DESCRIPTION_DIALOG_VALUE);
+ final AnomalyInputDialog dialog = new AnomalyInputDialog(R4EUIModelController.getNavigatorView(). // $codepro.audit.disable methodChainLength
+ getSite().getWorkbenchWindow().getShell());
final int result = dialog.open();
if (result == Window.OK) {
@@ -336,8 +340,8 @@
final R4EAnomaly anomaly = R4EUIModelController.FModelExt.createR4EAnomaly(participant);
Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(anomaly, R4EUIModelController.getReviewer());
- anomaly.setTitle(dialog.getAnomalyValue());
- anomaly.setDescription(dialog.getCommentValue());
+ anomaly.setTitle(dialog.getAnomalyTitleValue());
+ anomaly.setDescription(dialog.getAnomalyDescriptionValue());
R4EUIModelController.FResourceUpdater.checkIn(bookNum);
//Set data in the anomaly created
@@ -375,9 +379,14 @@
R4EUIModelController.FResourceUpdater.checkIn(bookNum);
//Create and set UI model element
- uiAnomaly = new R4EUIAnomaly(this, anomaly, aUiPosition);
+ if (uiReview.getReview().getType().equals(R4EReviewType.R4E_REVIEW_TYPE_BASIC)) {
+ uiAnomaly = new R4EUIAnomalyBasic(this, anomaly, aUiPosition);
+ } else {
+ uiAnomaly = new R4EUIAnomalyExtended(this, anomaly, aUiPosition);
+ ((R4EUIAnomalyExtended)uiAnomaly).updateState(R4EAnomalyState.R4E_ANOMALY_STATE_ASSIGNED);
+ }
aUiPosition.setPositionInModel(position);
- uiAnomaly.setToolTip(R4EUIAnomaly.buildAnomalyToolTip(anomaly)); //Also set UI tooltip immediately
+ uiAnomaly.setToolTip(R4EUIAnomalyBasic.buildAnomalyToolTip(anomaly)); //Also set UI tooltip immediately
addChildren(uiAnomaly);
}
@@ -398,7 +407,7 @@
*/
@Override
public void removeChildren(IR4EUIModelElement aChildToRemove, boolean aFileRemove) throws ResourceHandlingException, OutOfSyncException {
- final R4EUIAnomaly removedElement = fAnomalies.get(fAnomalies.indexOf(aChildToRemove));
+ final R4EUIAnomalyBasic removedElement = fAnomalies.get(fAnomalies.indexOf(aChildToRemove));
//Also recursively remove all children
removedElement.removeAllChildren(aFileRemove);
@@ -431,7 +440,7 @@
@Override
public void removeAllChildren(boolean aFileRemove) throws ResourceHandlingException, OutOfSyncException {
//Recursively remove all children
- for (R4EUIAnomaly anomaly : fAnomalies) {
+ for (R4EUIAnomalyBasic anomaly : fAnomalies) {
removeChildren(anomaly, aFileRemove);
}
}
@@ -447,8 +456,8 @@
public void addListener(ReviewNavigatorContentProvider aProvider) {
fListener = aProvider;
if (null != fAnomalies) {
- R4EUIAnomaly element = null;
- for (final Iterator<R4EUIAnomaly> iterator = fAnomalies.iterator(); iterator.hasNext();) {
+ R4EUIAnomalyBasic element = null;
+ for (final Iterator<R4EUIAnomalyBasic> iterator = fAnomalies.iterator(); iterator.hasNext();) {
element = iterator.next();
element.addListener(aProvider);
}
@@ -463,8 +472,8 @@
public void removeListener() {
fListener = null;
if (null != fAnomalies) {
- R4EUIAnomaly element = null;
- for (final Iterator<R4EUIAnomaly> iterator = fAnomalies.iterator(); iterator.hasNext();) {
+ R4EUIAnomalyBasic element = null;
+ for (final Iterator<R4EUIAnomalyBasic> iterator = fAnomalies.iterator(); iterator.hasNext();) {
element = iterator.next();
element.removeListener();
}
@@ -481,7 +490,7 @@
*/
@Override
public boolean isAddChildElementCmd() {
- if (getParent().isEnabled()) return true;
+ if (getParent().isEnabled() && !(R4EUIModelController.getActiveReview().isReviewed())) return true;
return false;
}
@@ -504,4 +513,23 @@
public String getAddChildElementCmdTooltip() {
return ADD_CHILD_ELEMENT_COMMAND_TOOLTIP;
}
+
+ /**
+ * Method checkCompletionStatus.
+ * @return boolean
+ */
+ public boolean checkCompletionStatus() { // $codepro.audit.disable booleanMethodNamingConvention
+ for (R4EUIAnomalyBasic anomaly : fAnomalies) {
+ if (anomaly.getAnomaly().getState().equals(R4EAnomalyState.R4E_ANOMALY_STATE_CREATED) ||
+ anomaly.getAnomaly().getState().equals(R4EAnomalyState.R4E_ANOMALY_STATE_ASSIGNED) ||
+ anomaly.getAnomaly().getState().equals(R4EAnomalyState.R4E_ANOMALY_STATE_ACCEPTED)) {
+ return false;
+ } else if (anomaly.getAnomaly().getState().equals(R4EAnomalyState.R4E_ANOMALY_STATE_FIXED)) {
+ if (R4EUIModelController.getActiveReview().getReview().getDecision().getValue().equals(R4EDecision.R4E_REVIEW_DECISION_ACCEPTED_FOLLOWUP)) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIAnomalyExtended.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIAnomalyExtended.java
new file mode 100644
index 0000000..4323024
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIAnomalyExtended.java
@@ -0,0 +1,486 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class extends the anomaly erlement to include additional parameters used
+ * in informal and formal reviews
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ *******************************************************************************/
+package org.eclipse.mylyn.reviews.r4e.ui.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomalyRank;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomalyState;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentClass;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewType;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
+import org.eclipse.mylyn.reviews.r4e.ui.properties.general.AnomalyExtraProperties;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
+import org.eclipse.ui.views.properties.IPropertySource;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class R4EUIAnomalyExtended extends R4EUIAnomalyBasic {
+
+ // ------------------------------------------------------------------------
+ // Constants
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field ANOMALY_STATE_CREATED.
+ * (value is ""CREATED"")
+ */
+ private static final String ANOMALY_STATE_CREATED = "CREATED";
+ /**
+ * Field ANOMALY_STATE_ASSIGNED.
+ * (value is ""ASSIGNED"")
+ */
+ private static final String ANOMALY_STATE_ASSIGNED = "ASSIGNED";
+ /**
+ * Field ANOMALY_STATE_ACCEPTED.
+ * (value is ""ACCEPTED"")
+ */
+ private static final String ANOMALY_STATE_ACCEPTED = "ACCEPTED";
+ /**
+ * Field ANOMALY_STATE_DUPLICATED.
+ * (value is ""DUPLICATED"")
+ */
+ private static final String ANOMALY_STATE_DUPLICATED = "DUPLICATED";
+ /**
+ * Field ANOMALY_STATE_REJECTED.
+ * (value is ""REJECTED"")
+ */
+ private static final String ANOMALY_STATE_REJECTED = "REJECTED";
+ /**
+ * Field ANOMALY_STATE_DEFERRED.
+ * (value is ""DEFERRED"")
+ */
+ private static final String ANOMALY_STATE_DEFERRED = "DEFERRED";
+ /**
+ * Field ANOMALY_STATE_FIXED.
+ * (value is ""FIXED"")
+ */
+ private static final String ANOMALY_STATE_FIXED = "FIXED";
+ /**
+ * Field ANOMALY_STATE_VERIFIED.
+ * (value is ""VERIFIED"")
+ */
+ private static final String ANOMALY_STATE_VERIFIED = "VERIFIED";
+
+ /**
+ * Field ANOMALY_RANK_NONE.
+ * (value is ""NONE"")
+ */
+ private static final String ANOMALY_RANK_NONE = "NONE";
+ /**
+ * Field ANOMALY_RANK_MINOR.
+ * (value is ""MINOR"")
+ */
+ private static final String ANOMALY_RANK_MINOR = "MINOR";
+ /**
+ * Field ANOMALY_RANK_MAJOR.
+ * (value is ""MAJOR"")
+ */
+ private static final String ANOMALY_RANK_MAJOR = "MAJOR";
+
+ /**
+ * Field ANOMALY_CLASS_ERRONEOUS.
+ * (value is ""Erroneous"")
+ */
+ private static final String ANOMALY_CLASS_ERRONEOUS = "Erroneous";
+ /**
+ * Field ANOMALY_CLASS_SUPERFLUOUS.
+ * (value is ""Superfluous"")
+ */
+ private static final String ANOMALY_CLASS_SUPERFLUOUS = "Superfluous";
+ /**
+ * Field ANOMALY_CLASS_IMPROVEMENT.
+ * (value is ""Improvement"")
+ */
+ private static final String ANOMALY_CLASS_IMPROVEMENT = "Improvement";
+ /**
+ * Field ANOMALY_CLASS_QUESTION.
+ * (value is ""Question"")
+ */
+ private static final String ANOMALY_CLASS_QUESTION = "Question";
+
+ /**
+ * Field FStateValues.
+ */
+ private static final String[] FStateValues = { ANOMALY_STATE_ACCEPTED, ANOMALY_STATE_DUPLICATED, ANOMALY_STATE_REJECTED,
+ ANOMALY_STATE_DEFERRED, ANOMALY_STATE_ASSIGNED, ANOMALY_STATE_CREATED, ANOMALY_STATE_VERIFIED,
+ ANOMALY_STATE_FIXED }; //NOTE: This has to match R4EAnomalyState in R4E core plugin
+
+ /**
+ * Field rankValues.
+ */
+ private static final String[] FRankValues = { ANOMALY_RANK_NONE, ANOMALY_RANK_MINOR,
+ ANOMALY_RANK_MAJOR }; //NOTE: This has to match R4EAnomalyRank in R4E core plugin
+
+ /**
+ * Field FClassValues.
+ */
+ private static final String[] FClassValues = { ANOMALY_CLASS_ERRONEOUS, ANOMALY_CLASS_SUPERFLUOUS,
+ ANOMALY_CLASS_IMPROVEMENT, ANOMALY_CLASS_QUESTION }; //NOTE: This has to match CommentType in R4E core plugin
+
+
+ // ------------------------------------------------------------------------
+ // Constructors
+ // ------------------------------------------------------------------------
+
+ /**
+ * Constructor for R4EUIAnomalyExtended.
+ * @param aParent IR4EUIModelElement
+ * @param aAnomaly R4EAnomaly
+ * @param aPosition IR4EUIPosition
+ */
+ public R4EUIAnomalyExtended(IR4EUIModelElement aParent,
+ R4EAnomaly aAnomaly, IR4EUIPosition aPosition) {
+ super(aParent, aAnomaly, aPosition);
+ }
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * Method getAdapter.
+ * @param adapter Class
+ * @return Object
+ * @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class)
+ */
+ @Override
+ public Object getAdapter(@SuppressWarnings("rawtypes") Class adapter) {
+ if (IR4EUIModelElement.class.equals(adapter)) return this;
+ if (IPropertySource.class.equals(adapter)) return new AnomalyExtraProperties(this);
+ return null;
+ }
+
+ /**
+ * Method updateState.
+ * @param aNewState R4EAnomalyState
+ * @throws OutOfSyncException
+ * @throws ResourceHandlingException
+ */
+ public void updateState(R4EAnomalyState aNewState) throws ResourceHandlingException, OutOfSyncException {
+ //Set data in model element
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(fAnomaly,
+ R4EUIModelController.getReviewer());
+ fAnomaly.setState(aNewState);
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ setName(getStateString(aNewState) + ": " + getName());
+ }
+
+ /**
+ * Method getStateString.
+ * @param aNewState R4EAnomalyState
+ * @return String
+ */
+ public static String getStateString(R4EAnomalyState aNewState) {
+ if (aNewState.equals(R4EAnomalyState.R4E_ANOMALY_STATE_CREATED)) {
+ return ANOMALY_STATE_CREATED;
+ } else if (aNewState.equals(R4EAnomalyState.R4E_ANOMALY_STATE_ASSIGNED)) {
+ return ANOMALY_STATE_ASSIGNED;
+ } else if (aNewState.equals(R4EAnomalyState.R4E_ANOMALY_STATE_ACCEPTED)) {
+ return ANOMALY_STATE_ACCEPTED;
+ } else if (aNewState.equals(R4EAnomalyState.R4E_ANOMALY_STATE_DUPLICATED)) {
+ return ANOMALY_STATE_DUPLICATED;
+ } else if (aNewState.equals(R4EAnomalyState.R4E_ANOMALY_STATE_REJECTED)) {
+ return ANOMALY_STATE_REJECTED;
+ } else if (aNewState.equals(R4EAnomalyState.R4E_ANOMALY_STATE_DEFERRED)) {
+ return ANOMALY_STATE_DEFERRED;
+ } else if (aNewState.equals(R4EAnomalyState.R4E_ANOMALY_STATE_FIXED)) {
+ return ANOMALY_STATE_FIXED;
+ } else if (aNewState.equals(R4EAnomalyState.R4E_ANOMALY_STATE_VERIFIED)) {
+ return ANOMALY_STATE_VERIFIED;
+ } else return "";
+ }
+
+ /**
+ * Method getStateFromString.
+ * @param aNewState String
+ * @return R4EAnomalyState
+ */
+ public static R4EAnomalyState getStateFromString(String aNewState) {
+ if (aNewState.equals(ANOMALY_STATE_CREATED)) {
+ return R4EAnomalyState.R4E_ANOMALY_STATE_CREATED;
+ } else if (aNewState.equals(ANOMALY_STATE_ASSIGNED)) {
+ return R4EAnomalyState.R4E_ANOMALY_STATE_ASSIGNED;
+ } else if (aNewState.equals(ANOMALY_STATE_ACCEPTED)) {
+ return R4EAnomalyState.R4E_ANOMALY_STATE_ACCEPTED;
+ } else if (aNewState.equals(ANOMALY_STATE_DUPLICATED)) {
+ return R4EAnomalyState.R4E_ANOMALY_STATE_DUPLICATED;
+ } else if (aNewState.equals(ANOMALY_STATE_REJECTED)) {
+ return R4EAnomalyState.R4E_ANOMALY_STATE_REJECTED;
+ } else if (aNewState.equals(ANOMALY_STATE_DEFERRED)) {
+ return R4EAnomalyState.R4E_ANOMALY_STATE_DEFERRED;
+ } else if (aNewState.equals(ANOMALY_STATE_FIXED)) {
+ return R4EAnomalyState.R4E_ANOMALY_STATE_FIXED;
+ } else if (aNewState.equals(ANOMALY_STATE_VERIFIED)) {
+ return R4EAnomalyState.R4E_ANOMALY_STATE_VERIFIED;
+ } else return null; //should never happen
+ }
+
+ /**
+ * Method getStates.
+ * @return String[]
+ */
+ public static String[] getStates() {
+ return FStateValues;
+ }
+
+ /**
+ * Method getAvailableStates.
+ * @return String[]
+ */
+ public String[] getAvailableStates() {
+ //Peek state machine to get available states
+ final R4EAnomalyState[] states = getAllowedState(R4EUIModelController.getActiveReview().getReview().getType(),
+ getAnomaly().getState());
+ final List<String> stateStrings = new ArrayList<String>();
+ for (R4EAnomalyState state : states) {
+ stateStrings.add(getStateString(state));
+ }
+ return stateStrings.toArray(new String[stateStrings.size()]);
+ }
+
+ /**
+ * Method mapStateToIndex.
+ * @param aState R4EAnomalyState
+ * @return int
+ */
+ public int mapStateToIndex(R4EAnomalyState aState) {
+ //Peek state machine to get available states
+ final R4EAnomalyState[] states = getAllowedState(R4EUIModelController.getActiveReview().getReview().getType(),
+ getAnomaly().getState());
+ for (int i = 0; i < states.length; i++) {
+ if (states[i].getValue() == aState.getValue()) return i;
+ }
+ return R4EUIConstants.INVALID_VALUE; //should never happen
+ }
+
+ /**
+ * Method getClasses.
+ * @return String[]
+ */
+ public static String[] getClasses() {
+ return FClassValues;
+ }
+
+ /**
+ * Method getClassFromString.
+ * @param aClass String
+ * @return R4ECommentClass
+ */
+ public static R4ECommentClass getClassFromString(String aClass) {
+ if (aClass.equals(ANOMALY_CLASS_ERRONEOUS)) {
+ return R4ECommentClass.R4E_CLASS_ERRONEOUS;
+ } else if (aClass.equals(ANOMALY_CLASS_SUPERFLUOUS)) {
+ return R4ECommentClass.R4E_CLASS_SUPERFLUOUS;
+ } else if (aClass.equals(ANOMALY_CLASS_IMPROVEMENT)) {
+ return R4ECommentClass.R4E_CLASS_IMPROVEMENT;
+ } else if (aClass.equals(ANOMALY_CLASS_QUESTION)) {
+ return R4ECommentClass.R4E_CLASS_QUESTION;
+ } else return null; //should never happen
+ }
+
+ /**
+ * Method getRanks.
+ * @return String[]
+ */
+ public static String[] getRanks() {
+ return FRankValues;
+ }
+
+ /**
+ * Method getRankFromString.
+ * @param aRank String
+ * @return R4EAnomalyRank
+ */
+ public static R4EAnomalyRank getRankFromString(String aRank) {
+ if (aRank.equals(ANOMALY_RANK_NONE)) {
+ return R4EAnomalyRank.R4E_ANOMALY_RANK_NONE;
+ } else if (aRank.equals(ANOMALY_RANK_MINOR)) {
+ return R4EAnomalyRank.R4E_ANOMALY_RANK_MINOR;
+ } else if (aRank.equals(ANOMALY_RANK_MAJOR)) {
+ return R4EAnomalyRank.R4E_ANOMALY_RANK_MAJOR;
+ } else return null; //should never happen
+ }
+
+ /**
+ * Method mapParticipantToIndex.
+ * @param aParticipant String
+ * @return int
+ */
+ public int mapParticipantToIndex(String aParticipant) {
+ final List<R4EParticipant> participants = R4EUIModelController.getActiveReview().getParticipants();
+ final int numParticipants = participants.size();
+ for (int i = 0; i < numParticipants; i++) {
+ if (participants.get(i).getId().equals(aParticipant)) return i;
+ }
+ return R4EUIConstants.INVALID_VALUE; //should never happen
+ }
+
+
+ //Anomaly State Machine
+
+ /**
+ * Method isClassEnabled.
+ * @return boolean
+ */
+ public boolean isClassEnabled() {
+ if (R4EUIModelController.getActiveReview().getReview().getType().equals(R4EReviewType.R4E_REVIEW_TYPE_INFORMAL)) {
+ if (fAnomaly.getState().equals(R4EAnomalyState.R4E_ANOMALY_STATE_ASSIGNED)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Method isRankEnabled.
+ * @return boolean
+ */
+ public boolean isRankEnabled() {
+ if (R4EUIModelController.getActiveReview().getReview().getType().equals(R4EReviewType.R4E_REVIEW_TYPE_INFORMAL)) {
+ if (fAnomaly.getState().equals(R4EAnomalyState.R4E_ANOMALY_STATE_ASSIGNED)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Method isDueDateEnabled.
+ * @return boolean
+ */
+ public boolean isDueDateEnabled() {
+ if (R4EUIModelController.getActiveReview().getReview().getType().equals(R4EReviewType.R4E_REVIEW_TYPE_INFORMAL)) {
+ if (fAnomaly.getState().equals(R4EAnomalyState.R4E_ANOMALY_STATE_ASSIGNED)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Method isDecidedByEnabled.
+ * @return boolean
+ */
+ public boolean isDecidedByEnabled() {
+ if (fAnomaly.getState().equals(R4EAnomalyState.R4E_ANOMALY_STATE_DEFERRED) ||
+ fAnomaly.getState().equals(R4EAnomalyState.R4E_ANOMALY_STATE_DUPLICATED) ||
+ fAnomaly.getState().equals(R4EAnomalyState.R4E_ANOMALY_STATE_REJECTED) ||
+ fAnomaly.getState().equals(R4EAnomalyState.R4E_ANOMALY_STATE_FIXED) ||
+ fAnomaly.getState().equals(R4EAnomalyState.R4E_ANOMALY_STATE_VERIFIED)) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Method isFixedByEnabled.
+ * @return boolean
+ */
+ public boolean isFixedByEnabled() {
+ if (fAnomaly.getState().equals(R4EAnomalyState.R4E_ANOMALY_STATE_FIXED)) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Method isFollowUpByEnabled.
+ * @return boolean
+ */
+ public boolean isFollowUpByEnabled() {
+ if (fAnomaly.getState().equals(R4EAnomalyState.R4E_ANOMALY_STATE_FIXED)) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Method isNotAcceptedReasonEnabled.
+ * @return boolean
+ */
+ public boolean isNotAcceptedReasonEnabled() {
+ if (fAnomaly.getState().equals(R4EAnomalyState.R4E_ANOMALY_STATE_REJECTED)) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Method isNotAcceptedReasonEnabled.
+ * @param aReviewType R4EReviewType
+ * @param aCurrentState R4EAnomalyState
+ * @return R4EAnomalyState[]
+ */
+ private R4EAnomalyState[] getAllowedState(R4EReviewType aReviewType, R4EAnomalyState aCurrentState) {
+ final List<R4EAnomalyState> states = new ArrayList<R4EAnomalyState>();
+ if (aReviewType == R4EReviewType.R4E_REVIEW_TYPE_INFORMAL) {
+ switch (aCurrentState.getValue()) {
+ case R4EAnomalyState.R4E_ANOMALY_STATE_ASSIGNED_VALUE:
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_ASSIGNED);
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_DEFERRED);
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_DUPLICATED);
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_REJECTED);
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_FIXED);
+ break;
+
+ case R4EAnomalyState.R4E_ANOMALY_STATE_DEFERRED_VALUE:
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_ASSIGNED);
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_DEFERRED);
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_DUPLICATED);
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_REJECTED);
+ break;
+
+ case R4EAnomalyState.R4E_ANOMALY_STATE_DUPLICATED_VALUE:
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_ASSIGNED);
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_DEFERRED);
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_DUPLICATED);
+ break;
+
+ case R4EAnomalyState.R4E_ANOMALY_STATE_REJECTED_VALUE:
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_ASSIGNED);
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_DEFERRED);
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_REJECTED);
+ break;
+
+ case R4EAnomalyState.R4E_ANOMALY_STATE_FIXED_VALUE:
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_ASSIGNED);
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_FIXED);
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_VERIFIED);
+ break;
+
+ case R4EAnomalyState.R4E_ANOMALY_STATE_VERIFIED_VALUE:
+ states.add(R4EAnomalyState.R4E_ANOMALY_STATE_VERIFIED);
+ break;
+
+ default:
+ //should never happen
+ }
+ } else {
+ //TODO Assume formal review
+ }
+ return states.toArray(new R4EAnomalyState[states.size()]);
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIComment.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIComment.java
index e529e09..ce59d36 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIComment.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIComment.java
@@ -24,7 +24,7 @@
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewComponent;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
-import org.eclipse.mylyn.reviews.r4e.ui.properties.CommentProperties;
+import org.eclipse.mylyn.reviews.r4e.ui.properties.general.CommentProperties;
import org.eclipse.ui.views.properties.IPropertySource;
/**
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIElement.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIElement.java
index bd54fdf..76c8dd7 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIElement.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIElement.java
@@ -34,7 +34,7 @@
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
import org.eclipse.mylyn.reviews.r4e.ui.Activator;
-import org.eclipse.mylyn.reviews.r4e.ui.dialogs.R4EReviewGroupInputDialog;
+import org.eclipse.mylyn.reviews.r4e.ui.dialogs.ReviewGroupInputDialog;
import org.eclipse.mylyn.reviews.r4e.ui.navigator.ReviewNavigatorContentProvider;
import org.eclipse.mylyn.reviews.r4e.ui.preferences.PreferenceConstants;
import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
@@ -47,35 +47,6 @@
public class R4EUIElement extends R4EUIModelElement {
// ------------------------------------------------------------------------
- // Constants
- // ------------------------------------------------------------------------
-
- /**
- * Field ADD_REVIEW_GROUP_DIALOG_TITLE.
- * (value is ""Enter Review Group details"")
- */
- private static final String ADD_REVIEW_GROUP_DIALOG_TITLE = "Enter Review Group Details";
-
- /**
- * Field ADD_REVIEW_GROUP_NAME_DIALOG_VALUE.
- * (value is ""Enter the Review Group Name:"")
- */
- private static final String ADD_REVIEW_GROUP_NAME_DIALOG_VALUE = "Enter the Review Group Name:";
-
- /**
- * Field ADD_REVIEW_GROUP_FOLDER_DIALOG_VALUE.
- * (value is ""Enter the Review Group Folder:"")
- */
- private static final String ADD_REVIEW_GROUP_FOLDER_DIALOG_VALUE = "Enter the Review Group Folder:";
-
- /**
- * Field ADD_REVIEW_GROUP_DESCRIPTION_DIALOG_VALUE.
- * (value is ""Enter the Review Group Description:"")
- */
- private static final String ADD_REVIEW_GROUP_DESCRIPTION_DIALOG_VALUE = "Enter the Review Group Description:";
-
-
- // ------------------------------------------------------------------------
// Member variables
// ------------------------------------------------------------------------
@@ -115,15 +86,22 @@
//Get comment from user and set it in model data
R4EReviewGroup tempReviewGroup = null;
R4EUIModelController.setDialogOpen(true);
- final R4EReviewGroupInputDialog dialog = new R4EReviewGroupInputDialog(R4EUIModelController.getNavigatorView(). // $codepro.audit.disable methodChainLength
- getSite().getWorkbenchWindow().getShell(), ADD_REVIEW_GROUP_DIALOG_TITLE, ADD_REVIEW_GROUP_NAME_DIALOG_VALUE,
- ADD_REVIEW_GROUP_FOLDER_DIALOG_VALUE, ADD_REVIEW_GROUP_DESCRIPTION_DIALOG_VALUE);
+ final ReviewGroupInputDialog dialog = new ReviewGroupInputDialog(R4EUIModelController.getNavigatorView(). // $codepro.audit.disable methodChainLength
+ getSite().getWorkbenchWindow().getShell());
+ dialog.create();
final int result = dialog.open();
if (result == Window.OK) {
tempReviewGroup = RModelFactory.eINSTANCE.createR4EReviewGroup();
tempReviewGroup.setName(dialog.getGroupNameValue());
tempReviewGroup.setDescription(dialog.getGroupDescriptionValue());
tempReviewGroup.setFolder(dialog.getGroupFolderValue());
+ for (String project : dialog.getAvailableProjectsValues()) {
+ tempReviewGroup.getAvailableProjects().add(project);
+ }
+ for (String component : dialog.getAvailableComponentsValues()) {
+ tempReviewGroup.getAvailableComponents().add(component);
+ }
+ tempReviewGroup.setDefaultEntryCriteria(dialog.getDefaultEntryCriteriaValue());
}
//else Window.CANCEL
R4EUIModelController.setDialogOpen(false);
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIFileContext.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIFileContext.java
index e5a4af0..4106933 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIFileContext.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIFileContext.java
@@ -33,7 +33,7 @@
import org.eclipse.mylyn.reviews.r4e.ui.Activator;
import org.eclipse.mylyn.reviews.r4e.ui.navigator.ReviewNavigatorContentProvider;
import org.eclipse.mylyn.reviews.r4e.ui.preferences.PreferenceConstants;
-import org.eclipse.mylyn.reviews.r4e.ui.properties.FileContextProperties;
+import org.eclipse.mylyn.reviews.r4e.ui.properties.general.FileContextProperties;
import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
import org.eclipse.ui.views.properties.IPropertySource;
@@ -547,7 +547,7 @@
*/
@Override
public boolean isChangeReviewStateCmd() {
- if (isEnabled()) return true;
+ if (isEnabled() && !(R4EUIModelController.getActiveReview().isReviewed())) return true;
return false;
}
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIModelController.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIModelController.java
index 69a089e..574edcf 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIModelController.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIModelController.java
@@ -111,9 +111,9 @@
private static final Map<String,List<R4EAnomaly>> FFileAnomalyMap = new HashMap<String,List<R4EAnomaly>>(32, 0.75f); // $codepro.audit.disable constantNamingConvention
/**
- * Field FDialogStateListenerList.
+ * Field FElementStateListenerList.
*/
- private static final List<IPropertyListener> FDialogStateListenerList = new ArrayList<IPropertyListener>(); // $codepro.audit.disable constantNamingConvention
+ private static final List<IPropertyListener> FElementStateListenerList = new ArrayList<IPropertyListener>(); // $codepro.audit.disable constantNamingConvention
// ------------------------------------------------------------------------
@@ -121,19 +121,19 @@
// ------------------------------------------------------------------------
/**
- * Method addDialogStateListener.
+ * Method addElementStateListener.
* @param aListener IPropertyListener
*/
- public static void addDialogStateListener(IPropertyListener aListener) {
- FDialogStateListenerList.add(aListener);
+ public static void addElementStateListener(IPropertyListener aListener) {
+ FElementStateListenerList.add(aListener);
}
/**
- * Method removeDialogStateListener.
+ * Method removeElementStateListener.
* @param aListener IPropertyListener
*/
- public static void removeDialogStateListener(IPropertyListener aListener) {
- FDialogStateListenerList.remove(aListener);
+ public static void removeElementStateListener(IPropertyListener aListener) {
+ FElementStateListenerList.remove(aListener);
}
/**
@@ -175,7 +175,7 @@
public static void setActiveReview(R4EUIReview aActiveReview) {
FActiveReview = aActiveReview;
if (null != FReviewSourceProvider) {
- FReviewSourceProvider.setReview(FActiveReview);
+ FReviewSourceProvider.setCurrentReview(FActiveReview);
}
//check to apply filters
try {
@@ -201,26 +201,34 @@
}
/**
- * Set the currently dialog state (true if a dialog is currently in progress)
+ * Set properties state based on the current dialog state
* @param aIsDialogOpen boolean
*/
public static void setDialogOpen(boolean aIsDialogOpen) {
FIsDialogOpen = aIsDialogOpen;
- for (IPropertyListener listener : FDialogStateListenerList) {
+ for (IPropertyListener listener : FElementStateListenerList) {
listener.propertyChanged(null, 0);
}
}
/**
- * Set the currently dialog state (true if a dialog is currently in progress)
+ * Set properties state based on the selected element
* @param aSelection the selected element
*/
public static void selectionChanged(IStructuredSelection aSelection) {
- for (IPropertyListener listener : FDialogStateListenerList) {
+ for (IPropertyListener listener : FElementStateListenerList) {
listener.propertyChanged(null, 0); //TODO this is temporary and should be refined later
}
}
+ /**
+ * Refresh properties
+ */
+ public static void propertyChanged() {
+ for (IPropertyListener listener : FElementStateListenerList) {
+ listener.propertyChanged(null, 0); //TODO this is temporary and should be refined later
+ }
+ }
/**
* Get the currently active review
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIModelElement.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIModelElement.java
index 2df1dcc..9438831 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIModelElement.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIModelElement.java
@@ -27,7 +27,7 @@
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
import org.eclipse.mylyn.reviews.r4e.core.versions.ReviewVersionsException;
import org.eclipse.mylyn.reviews.r4e.ui.navigator.ReviewNavigatorContentProvider;
-import org.eclipse.mylyn.reviews.r4e.ui.properties.ModelElementProperties;
+import org.eclipse.mylyn.reviews.r4e.ui.properties.general.ModelElementProperties;
import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
import org.eclipse.mylyn.reviews.r4e.ui.utils.UIUtils;
import org.eclipse.swt.SWT;
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIParticipant.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIParticipant.java
index c5841be..e86604d 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIParticipant.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIParticipant.java
@@ -18,8 +18,10 @@
package org.eclipse.mylyn.reviews.r4e.ui.model;
+import org.eclipse.emf.common.util.EList;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant;
-import org.eclipse.mylyn.reviews.r4e.ui.properties.ParticipantProperties;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EUserRole;
+import org.eclipse.mylyn.reviews.r4e.ui.properties.general.ParticipantProperties;
import org.eclipse.ui.views.properties.IPropertySource;
@@ -33,11 +35,31 @@
// Constants
// ------------------------------------------------------------------------
+ //TODO get different icons depending on the role
+
/**
- * Field fSelectionFile.
+ * Field PARTICIPANT_REVIEWER_ICON_FILE.
* (value is ""icons/obj16/part_obj.png"")
*/
- private static final String PARTICIPANT_ICON_FILE = "icons/obj16/part_obj.png";
+ private static final String PARTICIPANT_REVIEWER_ICON_FILE = "icons/obj16/part_obj.png";
+
+ /**
+ * Field PARTICIPANT_REVIEWER_ICON_FILE.
+ * (value is ""icons/obj16/part_obj.png"")
+ */
+ private static final String PARTICIPANT_LEAD_ICON_FILE = "icons/obj16/part_obj.png";
+
+ /**
+ * Field PARTICIPANT_REVIEWER_ICON_FILE.
+ * (value is ""icons/obj16/part_obj.png"")
+ */
+ private static final String PARTICIPANT_AUTHOR_ICON_FILE = "icons/obj16/part_obj.png";
+
+ /**
+ * Field PARTICIPANT_REVIEWER_ICON_FILE.
+ * (value is ""icons/obj16/part_obj.png"")
+ */
+ private static final String PARTICIPANT_ORGANIZER_ICON_FILE = "icons/obj16/part_obj.png";
// ------------------------------------------------------------------------
@@ -62,7 +84,22 @@
public R4EUIParticipant(IR4EUIModelElement aParent, R4EParticipant aParticipant) {
super(aParent, aParticipant.getId(), null); //TODO add email adress as tooltip later
fParticipant = aParticipant;
- setImage(PARTICIPANT_ICON_FILE);
+
+ final EList<R4EUserRole> roles = fParticipant.getRoles();
+ for (R4EUserRole role : roles) {
+ if (role == R4EUserRole.R4E_ROLE_LEAD) {
+ setImage(PARTICIPANT_LEAD_ICON_FILE);
+ return;
+ } else if (role == R4EUserRole.R4E_ROLE_AUTHOR) {
+ setImage(PARTICIPANT_AUTHOR_ICON_FILE);
+ return;
+ } else if (role == R4EUserRole.R4E_ROLE_ORGANIZER) {
+ setImage(PARTICIPANT_ORGANIZER_ICON_FILE);
+ return;
+ }
+ }
+ setImage(PARTICIPANT_REVIEWER_ICON_FILE);
+ return;
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIParticipantContainer.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIParticipantContainer.java
index 7e897e8..445fd8a 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIParticipantContainer.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIParticipantContainer.java
@@ -22,7 +22,13 @@
import java.util.Iterator;
import java.util.List;
+import org.eclipse.jface.window.Window;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewComponent;
+import org.eclipse.mylyn.reviews.r4e.core.model.RModelFactory;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
+import org.eclipse.mylyn.reviews.r4e.ui.dialogs.ParticipantInputDialog;
import org.eclipse.mylyn.reviews.r4e.ui.navigator.ReviewNavigatorContentProvider;
/**
@@ -41,7 +47,19 @@
*/
private static final String PARTICIPANT_CONTAINER_ICON_FILE = "icons/obj16/partcont_obj.png";
+ /**
+ * Field ADD_ELEMENT_ACTION_NAME.
+ * (value is ""Add Participant"")
+ */
+ private static final String ADD_CHILD_ELEMENT_COMMAND_NAME = "Add Participant";
+ /**
+ * Field ADD_ELEMENT_ACTION_TOOLTIP.
+ * (value is ""Add a New Participant to the Current Review"")
+ */
+ private static final String ADD_CHILD_ELEMENT_COMMAND_TOOLTIP = "Add a New Participant to the Current Review";
+
+
// ------------------------------------------------------------------------
// Member variables
// ------------------------------------------------------------------------
@@ -72,6 +90,32 @@
// Methods
// ------------------------------------------------------------------------
+ //Attributes
+
+ /**
+ * Create a serialization model element object
+ * @return the new serialization element object
+ */
+ @Override
+ public R4EReviewComponent createChildModelDataElement() {
+ //Get comment from user and set it in model data
+ R4EParticipant tempParticipant = null;
+ R4EUIModelController.setDialogOpen(true);
+ final ParticipantInputDialog dialog = new ParticipantInputDialog(R4EUIModelController.getNavigatorView(). // $codepro.audit.disable methodChainLength
+ getSite().getWorkbenchWindow().getShell());
+ final int result = dialog.open();
+ if (result == Window.OK) {
+ tempParticipant = RModelFactory.eINSTANCE.createR4EParticipant();
+ tempParticipant.setId(dialog.getParticipantIdValue());
+ tempParticipant.getRoles().addAll(dialog.getParticipantRolesValue());
+ tempParticipant.setFocusArea(dialog.getFocusAreaValue());
+ }
+ // else Window.CANCEL
+ R4EUIModelController.setDialogOpen(false);
+ return tempParticipant;
+ }
+
+
//Hierarchy
/**
@@ -159,6 +203,24 @@
}
/**
+ * Method createChildren
+ * @param aModelComponent - the serialization model component object
+ * @return IR4EUIModelElement
+ * @throws ResourceHandlingException
+ * @throws OutOfSyncException
+ * @see org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIModelElement#createChildren(ReviewNavigatorContentProvider)
+ */
+ @Override
+ public IR4EUIModelElement createChildren(R4EReviewComponent aModelComponent) throws ResourceHandlingException, OutOfSyncException {
+ final R4EParticipant participant = R4EUIModelController.FModelExt.createR4EParticipant(
+ ((R4EUIReview)getParent()).getReview(), ((R4EParticipant)aModelComponent).getId(), ((R4EParticipant)aModelComponent).getRoles());
+ final R4EUIParticipant addedChild = new R4EUIParticipant(this, participant);
+ addedChild.setModelData(aModelComponent);
+ addChildren(addedChild);
+ return addedChild;
+ }
+
+ /**
* Method removeChildren.
* @param aChildToRemove IR4EUIModelElement
* @param aFileRemove - also remove from file (hard remove)
@@ -218,4 +280,37 @@
}
}
}
+
+ //Commands
+
+ /**
+ * Method isAddChildElementCmd.
+ * @return boolean
+ * @see org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIModelElement#isAddChildElementCmd()
+ */
+ @Override
+ public boolean isAddChildElementCmd() {
+ if (getParent().isEnabled() && !(R4EUIModelController.getActiveReview().isReviewed())) return true;
+ return false;
+ }
+
+ /**
+ * Method getAddChildElementCmdName.
+ * @return String
+ * @see org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIModelElement#getAddChildElementCmdName()
+ */
+ @Override
+ public String getAddChildElementCmdName() {
+ return ADD_CHILD_ELEMENT_COMMAND_NAME;
+ }
+
+ /**
+ * Method getAddChildElementCmdTooltip.
+ * @return String
+ * @see org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIModelElement#getAddChildElementCmdTooltip()
+ */
+ @Override
+ public String getAddChildElementCmdTooltip() {
+ return ADD_CHILD_ELEMENT_COMMAND_TOOLTIP;
+ }
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIReview.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIReview.java
index 344e70a..f281d7c 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIReview.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIReview.java
@@ -20,6 +20,7 @@
import java.io.FileNotFoundException;
import java.util.ArrayList;
+import java.util.Date;
import java.util.Iterator;
import java.util.List;
@@ -27,14 +28,18 @@
import org.eclipse.core.resources.IProject;
import org.eclipse.emf.common.util.EList;
import org.eclipse.mylyn.reviews.frame.core.model.Item;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EDecision;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EItem;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReview;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewComponent;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewDecision;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewPhase;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewState;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewType;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EUserReviews;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EUserRole;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.Persistence.RModelFactoryExt;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
import org.eclipse.mylyn.reviews.r4e.core.utils.ResourceUtils;
@@ -45,7 +50,7 @@
import org.eclipse.mylyn.reviews.r4e.ui.Activator;
import org.eclipse.mylyn.reviews.r4e.ui.navigator.ReviewNavigatorContentProvider;
import org.eclipse.mylyn.reviews.r4e.ui.preferences.PreferenceConstants;
-import org.eclipse.mylyn.reviews.r4e.ui.properties.ReviewProperties;
+import org.eclipse.mylyn.reviews.r4e.ui.properties.general.ReviewProperties;
import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
import org.eclipse.mylyn.reviews.r4e.ui.utils.UIUtils;
import org.eclipse.ui.views.properties.IPropertySource;
@@ -86,6 +91,33 @@
private static final String REMOVE_ELEMENT_COMMAND_TOOLTIP = "Disable (and Optionally Remove) this Review from " +
"its Parent Review Group";
+ /**
+ * Field EXIT_DECISION_NONE.
+ * (value is ""No Decision"")
+ */
+ private static final String EXIT_DECISION_NONE = "No Decision";
+ /**
+ * Field EXIT_DECISION_ACCEPTED.
+ * (value is ""Accepted"")
+ */
+ private static final String EXIT_DECISION_ACCEPTED = "Accepted";
+ /**
+ * Field EXIT_DECISION_ACCEPTED_FOLLOWUP.
+ * (value is ""Accepted with Follow-up"")
+ */
+ private static final String EXIT_DECISION_ACCEPTED_FOLLOWUP = "Accepted with Follow-up";
+ /**
+ * Field EXIT_DECISION_REJECTED.
+ * (value is ""Rejected"")
+ */
+ private static final String EXIT_DECISION_REJECTED = "Rejected";
+
+ /**
+ * Field decisionValues.
+ */
+ private static final String[] FDecisionValues = { EXIT_DECISION_NONE, EXIT_DECISION_ACCEPTED,
+ EXIT_DECISION_ACCEPTED_FOLLOWUP, EXIT_DECISION_REJECTED }; //NOTE: This has to match R4EDecision in R4E core plugin
+
// ------------------------------------------------------------------------
// Member variables
@@ -99,22 +131,22 @@
/**
* Field fReviewName.
*/
- private final String fReviewName;
+ protected final String fReviewName;
/**
* Field fItems.
*/
- private final List<R4EUIReviewItem> fItems;
+ protected final List<R4EUIReviewItem> fItems;
/**
* Field fParticipantsContainer.
*/
- private R4EUIParticipantContainer fParticipantsContainer;
+ protected R4EUIParticipantContainer fParticipantsContainer;
/**
* Field fAnomalyContainer.
*/
- private R4EUIAnomalyContainer fAnomalyContainer = null;
+ protected R4EUIAnomalyContainer fAnomalyContainer = null;
// ------------------------------------------------------------------------
@@ -125,18 +157,20 @@
* Constructor for R4EUIReview.
* @param aParent R4EUIReviewGroup
* @param aReview R4EReview
+ * @param aType R4EReviewType
* @param aOpen boolean
* @throws ResourceHandlingException
*/
- public R4EUIReview(R4EUIReviewGroup aParent, R4EReview aReview, boolean aOpen) throws ResourceHandlingException {
- super(aParent, aReview.getName(), aReview.getExtraNotes());
+ //TODO have different icons for all review types
+ public R4EUIReview(R4EUIReviewGroup aParent, R4EReview aReview, R4EReviewType aType, boolean aOpen) throws ResourceHandlingException {
+ super(aParent, getReviewDisplayName(aReview.getName(), aType), aReview.getExtraNotes());
fReview = aReview;
fReviewName = aReview.getName();
fParticipantsContainer = new R4EUIParticipantContainer(this, R4EUIConstants.PARTICIPANTS_LABEL_NAME);
fAnomalyContainer = new R4EUIAnomalyContainer(this, R4EUIConstants.GLOBAL_ANOMALIES_LABEL_NAME);
fItems = new ArrayList<R4EUIReviewItem>();
if (aOpen) {
- //Open the new review and make itt the active one (close any other that is open)
+ //Open the new review and make it the active one (close any other that is open)
setImage(REVIEW_ICON_FILE);
fOpen = true;
final List<R4EUserRole> role = new ArrayList<R4EUserRole>(1);
@@ -165,14 +199,34 @@
*/
@Override
public Object getAdapter(@SuppressWarnings("rawtypes") Class adapter) {
- if (IR4EUIModelElement.class.equals(adapter)) return this;
- if (IPropertySource.class.equals(adapter)) return new ReviewProperties(this);
+ if (IR4EUIModelElement.class.equals(adapter)) {
+ return this;
+ }
+ if (IPropertySource.class.equals(adapter)) {
+ return new ReviewProperties(this);
+ }
return null;
}
//Attributes
/**
+ * Method getReviewDisplayName.
+ * @param aName String
+ * @param aType R4EReviewType
+ * @return String
+ */
+ private static String getReviewDisplayName(String aName, R4EReviewType aType) {
+ if (aType.equals(R4EReviewType.R4E_REVIEW_TYPE_FORMAL)) {
+ return R4EUIConstants.REVIEW_TYPE_FORMAL + ": " + aName;
+ }
+ if (aType.equals(R4EReviewType.R4E_REVIEW_TYPE_INFORMAL)) {
+ return R4EUIConstants.REVIEW_TYPE_INFORMAL + ": " + aName;
+ }
+ return R4EUIConstants.REVIEW_TYPE_BASIC + ": " + aName;
+ }
+
+ /**
* Set serialization model data by copying it from the passed-in object
* @param aModelComponent - a serialization model element to copy information from
* @throws ResourceHandlingException
@@ -185,6 +239,14 @@
final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(fReview,
R4EUIModelController.getReviewer());
fReview.setExtraNotes(((R4EReview)aModelComponent).getExtraNotes());
+ fReview.setType(((R4EReview)aModelComponent).getType());
+
+ //Optional properties
+ fReview.setProject(((R4EReview)aModelComponent).getProject());
+ fReview.getComponents().addAll(((R4EReview)aModelComponent).getComponents());
+ fReview.setEntryCriteria(((R4EReview)aModelComponent).getEntryCriteria());
+ fReview.setObjectives(((R4EReview)aModelComponent).getObjectives());
+ fReview.setReferenceMaterial(((R4EReview)aModelComponent).getReferenceMaterial());
R4EUIModelController.FResourceUpdater.checkIn(bookNum);
}
@@ -265,8 +327,10 @@
final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(fReview, R4EUIModelController.getReviewer());
if (aReviewed) {
((R4EReviewState)fReview.getState()).setState(R4EReviewPhase.R4E_REVIEW_PHASE_COMPLETED);
+ fReview.setEndDate(new Date(new Date().getTime()));
} else {
((R4EReviewState)fReview.getState()).setState(R4EReviewPhase.R4E_REVIEW_PHASE_STARTED);
+ fReview.setEndDate(null);
}
R4EUIModelController.FResourceUpdater.checkIn(bookNum);
fReviewed = aReviewed;
@@ -278,9 +342,8 @@
fItems.get(i).setReviewed(aReviewed);
}
}
-
- //TODO maybe we want to set the element as disabled as well?
fireReviewStateChanged(this);
+ R4EUIModelController.propertyChanged();
}
/**
@@ -660,4 +723,55 @@
public String getRemoveElementCmdTooltip() {
return REMOVE_ELEMENT_COMMAND_TOOLTIP;
}
+
+ /**
+ * Method getExitDecisionValues.
+ * @return String[]
+ */
+ public static String[] getExitDecisionValues() {
+ return FDecisionValues;
+ }
+
+ /**
+ * Method getDecisionValueFromString.
+ * @param aDecision - String
+ * @return R4EReviewDecision
+ */
+ public static R4EReviewDecision getDecisionValueFromString(String aDecision) {
+ final R4EReviewDecision reviewDecision = RModelFactoryExt.eINSTANCE.createR4EReviewDecision();
+ if (aDecision.equals(EXIT_DECISION_ACCEPTED)) {
+ reviewDecision.setValue(R4EDecision.R4E_REVIEW_DECISION_ACCEPTED);
+ } else if (aDecision.equals(EXIT_DECISION_ACCEPTED_FOLLOWUP)) {
+ reviewDecision.setValue(R4EDecision.R4E_REVIEW_DECISION_ACCEPTED_FOLLOWUP);
+ } else if (aDecision.equals(EXIT_DECISION_REJECTED)) {
+ reviewDecision.setValue(R4EDecision.R4E_REVIEW_DECISION_REJECTED);
+ } else {
+ reviewDecision.setValue(R4EDecision.R4E_REVIEW_DECISION_NONE);
+ }
+ return reviewDecision;
+ }
+
+ /**
+ * Method checkCompletionStatus.
+ * @return boolean
+ */
+ public boolean checkCompletionStatus() { // $codepro.audit.disable booleanMethodNamingConvention
+ if (!(fReview.getType().equals(R4EReviewType.R4E_REVIEW_TYPE_BASIC))) {
+ if (null == fReview.getDecision() || null == fReview.getDecision().getValue()) return false;
+ if (fReview.getDecision().getValue().equals(R4EDecision.R4E_REVIEW_DECISION_NONE)) return false;
+ if (fReview.getDecision().getValue().equals(R4EDecision.R4E_REVIEW_DECISION_REJECTED)) return true;
+
+ //Check global anomalies state
+ if (!(fAnomalyContainer.checkCompletionStatus())) return false;
+
+ for (R4EUIReviewItem item : fItems) {
+ R4EUIFileContext[] contexts = (R4EUIFileContext[]) item.getChildren();
+ for (R4EUIFileContext context : contexts) {
+ R4EUIAnomalyContainer container = (R4EUIAnomalyContainer) context.getAnomalyContainerElement();
+ if (!(container.checkCompletionStatus())) return false;
+ }
+ }
+ }
+ return true;
+ }
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIReviewGroup.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIReviewGroup.java
index 37edc6a..8631253 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIReviewGroup.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIReviewGroup.java
@@ -34,14 +34,15 @@
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewGroup;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewPhase;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewState;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewType;
import org.eclipse.mylyn.reviews.r4e.core.model.RModelFactory;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
import org.eclipse.mylyn.reviews.r4e.ui.Activator;
-import org.eclipse.mylyn.reviews.r4e.ui.dialogs.R4EReviewInputDialog;
+import org.eclipse.mylyn.reviews.r4e.ui.dialogs.ReviewInputDialog;
import org.eclipse.mylyn.reviews.r4e.ui.navigator.ReviewNavigatorContentProvider;
import org.eclipse.mylyn.reviews.r4e.ui.preferences.PreferenceConstants;
-import org.eclipse.mylyn.reviews.r4e.ui.properties.ReviewGroupProperties;
+import org.eclipse.mylyn.reviews.r4e.ui.properties.general.ReviewGroupProperties;
import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
import org.eclipse.mylyn.reviews.r4e.ui.utils.UIUtils;
import org.eclipse.ui.views.properties.IPropertySource;
@@ -92,25 +93,6 @@
* (value is ""Remove this review group"")
*/
private static final String REMOVE_ELEMENT_COMMAND_TOOLTIP = "Disable (and Optionally Remove) this Review Group";
-
-
- /**
- * Field ADD_REVIEW_DIALOG_TITLE.
- * (value is ""Enter Review details"")
- */
- private static final String ADD_REVIEW_DIALOG_TITLE = "Enter Review Details";
-
- /**
- * Field ADD_REVIEW_NAME_DIALOG_VALUE.
- * (value is ""Enter the Review name"")
- */
- private static final String ADD_REVIEW_NAME_DIALOG_VALUE = "Enter the Review Name";
-
- /**
- * Field ADD_REVIEW_DESCRIPTION_DIALOG_VALUE.
- * (value is ""Enter the Review Description"")
- */
- private static final String ADD_REVIEW_DESCRIPTION_DIALOG_VALUE = "Enter the Review Description";
// ------------------------------------------------------------------------
@@ -205,7 +187,10 @@
//Set data in model element
final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(fGroup, R4EUIModelController.getReviewer());
fGroup.setDescription(((R4EReviewGroup)aModelComponent).getDescription());
- R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ fGroup.getAvailableProjects().addAll(((R4EReviewGroup)aModelComponent).getAvailableProjects());
+ fGroup.getAvailableComponents().addAll(((R4EReviewGroup)aModelComponent).getAvailableComponents());
+ fGroup.setDefaultEntryCriteria(((R4EReviewGroup)aModelComponent).getDefaultEntryCriteria());
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
}
/**
@@ -218,14 +203,24 @@
//Get comment from user and set it in model data
R4EReview tempReview = null;
R4EUIModelController.setDialogOpen(true);
- final R4EReviewInputDialog dialog = new R4EReviewInputDialog(R4EUIModelController.getNavigatorView(). // $codepro.audit.disable methodChainLength
- getSite().getWorkbenchWindow().getShell(), ADD_REVIEW_DIALOG_TITLE, ADD_REVIEW_NAME_DIALOG_VALUE,
- ADD_REVIEW_DESCRIPTION_DIALOG_VALUE);
+ final ReviewInputDialog dialog = new ReviewInputDialog(R4EUIModelController.getNavigatorView(). // $codepro.audit.disable methodChainLength
+ getSite().getWorkbenchWindow().getShell(), this);
+ dialog.create();
final int result = dialog.open();
if (result == Window.OK) {
+ //All reviews
tempReview = RModelFactory.eINSTANCE.createR4EReview();
+ tempReview.setType(dialog.getReviewTypeValue());
tempReview.setName(dialog.getReviewNameValue());
tempReview.setExtraNotes(dialog.getReviewDescriptionValue());
+ //Informal reviews
+ tempReview.setProject(dialog.getProjectValue());
+ for (String component : dialog.getComponentsValues()) {
+ tempReview.getComponents().add(component);
+ }
+ tempReview.setEntryCriteria(dialog.getEntryCriteriaValue());
+ tempReview.setObjectives(dialog.getObjectivesValue());
+ tempReview.setReferenceMaterial(dialog.getReferenceMaterialValue());
}
//else Window.CANCEL
R4EUIModelController.setDialogOpen(false);
@@ -274,7 +269,7 @@
review = (R4EReview)reviews.get(i);
if (review.isEnabled() || Activator.getDefault().getPreferenceStore().
getBoolean(PreferenceConstants.P_SHOW_DISABLED)) {
- R4EUIReview uiReview = new R4EUIReview(this, review, false);
+ R4EUIReview uiReview = new R4EUIReview(this, review, review.getType(), false);
addChildren(uiReview);
//Check if this review is completed
@@ -369,6 +364,7 @@
public IR4EUIModelElement createChildren(R4EReviewComponent aModelComponent) throws ResourceHandlingException, OutOfSyncException {
final String reviewName = ((R4EReview)aModelComponent).getName();
+ final R4EReviewType type = ((R4EReview)aModelComponent).getType();
//Check if group already exists. If so it cannot be recreated
for (R4EUIReview review : fReviews) {
@@ -383,7 +379,7 @@
final R4EUIReview addedChild = new R4EUIReview(this,
R4EUIModelController.FModelExt.createR4EReview(getReviewGroup(), reviewName,
- R4EUIModelController.getReviewer()), true);
+ R4EUIModelController.getReviewer()), type, true);
addedChild.setModelData(aModelComponent);
addChildren(addedChild);
return addedChild;
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIReviewItem.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIReviewItem.java
index 6fbbfbb..7642960 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIReviewItem.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUIReviewItem.java
@@ -43,7 +43,7 @@
import org.eclipse.mylyn.reviews.r4e.ui.Activator;
import org.eclipse.mylyn.reviews.r4e.ui.navigator.ReviewNavigatorContentProvider;
import org.eclipse.mylyn.reviews.r4e.ui.preferences.PreferenceConstants;
-import org.eclipse.mylyn.reviews.r4e.ui.properties.ReviewItemProperties;
+import org.eclipse.mylyn.reviews.r4e.ui.properties.general.ReviewItemProperties;
import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
import org.eclipse.mylyn.reviews.r4e.ui.utils.UIUtils;
import org.eclipse.ui.views.properties.IPropertySource;
@@ -534,7 +534,7 @@
*/
@Override
public boolean isChangeReviewStateCmd() {
- if (isEnabled()) return true;
+ if (isEnabled() && !(R4EUIModelController.getActiveReview().isReviewed())) return true;
return false;
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUISelection.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUISelection.java
index 4b15266..9a74460 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUISelection.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/model/R4EUISelection.java
@@ -23,7 +23,7 @@
import org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
-import org.eclipse.mylyn.reviews.r4e.ui.properties.SelectionProperties;
+import org.eclipse.mylyn.reviews.r4e.ui.properties.general.SelectionProperties;
import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
import org.eclipse.ui.views.properties.IPropertySource;
@@ -246,7 +246,7 @@
*/
@Override
public boolean isAddLinkedAnomalyCmd() {
- if (isEnabled()) return true;
+ if (isEnabled() && !(R4EUIModelController.getActiveReview().isReviewed())) return true;
return false;
}
@@ -268,7 +268,7 @@
*/
@Override
public boolean isChangeReviewStateCmd() {
- if (isEnabled()) return true;
+ if (isEnabled() && !(R4EUIModelController.getActiveReview().isReviewed())) return true;
return false;
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/navigator/ReviewNavigatorView.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/navigator/ReviewNavigatorView.java
index 15dae2e..51f666a 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/navigator/ReviewNavigatorView.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/navigator/ReviewNavigatorView.java
@@ -229,7 +229,7 @@
hookListeners();
final IEclipsePreferences node = new InstanceScope().getNode(Activator.PLUGIN_ID);
node.addPreferenceChangeListener(this);
- R4EUIModelController.addDialogStateListener(this);
+ R4EUIModelController.addElementStateListener(this);
//Apply default filters
applyDefaultFilters();
@@ -333,7 +333,7 @@
IR4EUIModelElement element = (IR4EUIModelElement) selection.getFirstElement();
//Find the parent FileContextElement
- while (element != null && !(element instanceof R4EUIFileContext)) {
+ while (null != element && !(element instanceof R4EUIFileContext)) {
element = element.getParent();
}
if (null == element) return;
@@ -438,11 +438,11 @@
IR4EUIModelElement selectedElement =
(IR4EUIModelElement) ((IStructuredSelection)fReviewTreeViewer.getSelection()).getFirstElement();
IR4EUIModelElement fileContextElement = selectedElement;
- while (fileContextElement != null && !(fileContextElement instanceof R4EUIFileContext)) {
+ while (null != fileContextElement && !(fileContextElement instanceof R4EUIFileContext)) {
fileContextElement = fileContextElement.getParent();
}
if (null != fileContextElement) {
- if (fileContextElement == navigatorFile) return; //Correct selection already set
+ if (fileContextElement.equals(navigatorFile)) return; //Correct selection already set
}
//selection to the file context corresponding to the editor input
fReviewTreeViewer.setSelection(new StructuredSelection(navigatorFile), true);
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/AnomalyTabPropertySection.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/AnomalyTabPropertySection.java
deleted file mode 100644
index e285ea6..0000000
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/AnomalyTabPropertySection.java
+++ /dev/null
@@ -1,321 +0,0 @@
-// $codepro.audit.disable com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.alwaysOverridetoString.alwaysOverrideToString, staticFieldSecurity, com.instantiations.assist.eclipse.analysis.deserializeabilitySecurity, com.instantiations.assist.eclipse.analysis.enforceCloneableUsageSecurity, com.instantiations.assist.eclipse.analysis.instanceFieldSecurity
-/*******************************************************************************
- * Copyright (c) 2010 Ericsson Research Canada
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Description:
- *
- * This class implements the tabbed property section for the Anomaly model element
- *
- * Contributors:
- * Sebastien Dubois - Created for Mylyn Review R4E project
- *
- ******************************************************************************/
-
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly;
-import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
-import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
-import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIModelElement;
-import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIPosition;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomaly;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
-import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
-import org.eclipse.mylyn.reviews.r4e.ui.utils.UIUtils;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-/**
- * @author lmcdubo
- * @version $Revision: 1.0 $
- */
-public class AnomalyTabPropertySection extends AbstractPropertySection implements IPropertyListener {
-
- // ------------------------------------------------------------------------
- // Member variables
- // ------------------------------------------------------------------------
-
- /**
- * Field fAnomaly.
- */
- protected AnomalyProperties fAnomalyProps;
-
- /**
- * Field fPosition.
- */
- private IR4EUIPosition fPosition;
-
- /**
- * Field FTitleText.
- */
- protected static Text FTitleText = null;
-
- /**
- * Field FAuthorText.
- */
- protected static Text FAuthorText = null;
-
- /**
- * Field FCreationDateText.
- */
- protected static Text FCreationDateText = null;
-
- /**
- * Field FPositionText.
- */
- protected static Text FPositionText = null;
-
- /**
- * Field FDescriptionText.
- */
- protected static Text FDescriptionText = null;
-
- /**
- * Field fRefreshInProgress.
- */
- private boolean fRefreshInProgress = false;
-
-
- // ------------------------------------------------------------------------
- // Methods
- // ------------------------------------------------------------------------
-
- /**
- * Method dispose.
- * @see org.eclipse.ui.views.properties.tabbed.ISection#dispose()
- */
- @Override
- public void dispose() {
- super.dispose();
- R4EUIModelController.removeDialogStateListener(this);
- }
-
- /**
- * Method createControls.
- * @param parent Composite
- * @param aTabbedPropertySheetPage TabbedPropertySheetPage
- * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(Composite, TabbedPropertySheetPage)
- */
- @Override
- public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
- super.createControls(parent, aTabbedPropertySheetPage);
- R4EUIModelController.addDialogStateListener(this);
-
- //Tell element to build its own detailed tab layout
- final TabbedPropertySheetWidgetFactory widgetFactory = aTabbedPropertySheetPage.getWidgetFactory();
- final Composite composite = widgetFactory.createFlatFormComposite(parent);
- FormData data = null;
-
- //Anomaly title
- FTitleText = widgetFactory.createText(composite, "");
- data = new FormData();
- data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
- data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
- FTitleText.setLayoutData(data);
- FTitleText.addModifyListener(new ModifyListener() { // $codepro.audit.disable com.instantiations.assist.eclipse.analysis.avoidInnerClasses
- @SuppressWarnings("synthetic-access")
- public void modifyText(ModifyEvent e) {
- if (!fRefreshInProgress) {
- try {
- final String currentUser = R4EUIModelController.getReviewer();
- final R4EAnomaly modelAnomaly = ((R4EUIAnomaly)fAnomalyProps.getElement()).getAnomaly();
- final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelAnomaly, currentUser);
- modelAnomaly.setTitle(FTitleText.getText());
- R4EUIModelController.FResourceUpdater.checkIn(bookNum);
- } catch (ResourceHandlingException e1) {
- UIUtils.displayResourceErrorDialog(e1);
- } catch (OutOfSyncException e1) {
- UIUtils.displaySyncErrorDialog(e1);
- }
- }
- }
- });
-
- final CLabel titleLabel = widgetFactory.createCLabel(composite, R4EUIConstants.TITLE_LABEL);
- data = new FormData();
- data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FTitleText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FTitleText, 0, SWT.CENTER);
- titleLabel.setLayoutData(data);
-
- //Anomaly Author (read-only)
- FAuthorText = widgetFactory.createText(composite, "");
- FAuthorText.setEditable(false);
- FAuthorText.setEnabled(false);
- data = new FormData();
- data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
- data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(FTitleText, ITabbedPropertyConstants.VSPACE);
- FAuthorText.setLayoutData(data);
-
- final CLabel authorLabel = widgetFactory.createCLabel(composite, R4EUIConstants.AUTHOR_LABEL);
- data = new FormData();
- data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FAuthorText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FAuthorText, 0, SWT.CENTER);
- authorLabel.setLayoutData(data);
-
- //Anomaly Creation Date (read-only)
- FCreationDateText = widgetFactory.createText(composite, "");
- FCreationDateText.setEditable(false);
- FCreationDateText.setEnabled(false);
- data = new FormData();
- data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
- data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(FAuthorText, ITabbedPropertyConstants.VSPACE);
- FCreationDateText.setLayoutData(data);
-
- final CLabel creationDateLabel = widgetFactory.createCLabel(composite, R4EUIConstants.CREATION_DATE_LABEL);
- data = new FormData();
- data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FCreationDateText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FCreationDateText, 0, SWT.CENTER);
- creationDateLabel.setLayoutData(data);
-
- //Anomaly position (read-only)
- FPositionText = widgetFactory.createText(composite, "");
- FPositionText.setEditable(false);
- FPositionText.setEnabled(false);
- data = new FormData();
- data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
- data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(FCreationDateText, ITabbedPropertyConstants.VSPACE);
- FPositionText.setLayoutData(data);
-
- final CLabel positionLabel = widgetFactory.createCLabel(composite, R4EUIConstants.POSITION_LABEL);
- data = new FormData();
- data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FPositionText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FPositionText, 0, SWT.CENTER);
- positionLabel.setLayoutData(data);
-
- //Review Description
- FDescriptionText = widgetFactory.createText(composite, "", SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);
- data = new FormData();
- data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
- data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(FPositionText, ITabbedPropertyConstants.VSPACE);
- data.bottom = new FormAttachment(100, -ITabbedPropertyConstants.VSPACE); // $codepro.audit.disable numericLiterals
- FDescriptionText.setLayoutData(data);
- FDescriptionText.addModifyListener(new ModifyListener() { // $codepro.audit.disable com.instantiations.assist.eclipse.analysis.avoidInnerClasses
- @SuppressWarnings("synthetic-access")
- public void modifyText(ModifyEvent e) {
- if (!fRefreshInProgress) {
- try {
- final String currentUser = R4EUIModelController.getReviewer();
- final R4EAnomaly modelAnomaly = ((R4EUIAnomaly)fAnomalyProps.getElement()).getAnomaly();
- final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelAnomaly, currentUser);
- modelAnomaly.setDescription(FDescriptionText.getText());
- R4EUIModelController.FResourceUpdater.checkIn(bookNum);
- } catch (ResourceHandlingException e1) {
- UIUtils.displayResourceErrorDialog(e1);
- } catch (OutOfSyncException e1) {
- UIUtils.displaySyncErrorDialog(e1);
- }
- }
- }
- });
-
- final CLabel descriptionLabel = widgetFactory.createCLabel(composite, R4EUIConstants.DESCRIPTION_LABEL);
- data = new FormData();
- data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FDescriptionText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FDescriptionText, 0, SWT.TOP);
- descriptionLabel.setLayoutData(data);
- }
-
- /**
- * Method setInput.
- * @param part IWorkbenchPart
- * @param aSelection ISelection
- * @see org.eclipse.ui.views.properties.tabbed.ISection#setInput(IWorkbenchPart, ISelection)
- */
- @Override
- public void setInput(IWorkbenchPart part, ISelection aSelection) {
- //Get current selection.
- if (null == aSelection || aSelection.isEmpty()) return;
-
- //Get model element selected
- final IR4EUIModelElement element = (IR4EUIModelElement) ((StructuredSelection)aSelection).getFirstElement();
- if (null != element && element instanceof R4EUIAnomaly) {
- fAnomalyProps = (AnomalyProperties) ((R4EUIAnomaly)element).getAdapter(IPropertySource.class);
- refresh();
- }
- }
-
- /**
- * Method refresh.
- * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
- */
- @Override
- public void refresh() {
- fRefreshInProgress = true;
- final R4EAnomaly modelAnomaly = ((R4EUIAnomaly)fAnomalyProps.getElement()).getAnomaly();
- FTitleText.setText(modelAnomaly.getTitle());
- FAuthorText.setText(modelAnomaly.getUser().getId());
- FCreationDateText.setText(modelAnomaly.getCreatedOn().toString());
- fPosition = ((R4EUIAnomaly)fAnomalyProps.getElement()).getPosition();
- if (null == fPosition) {
- FPositionText.setText(R4EUIConstants.GLOBAL_ANOMALY_PROPERTY_VALUE);
- } else {
- FPositionText.setText(fPosition.toString());
- }
- FDescriptionText.setText(modelAnomaly.getDescription());
- setEnabledFields();
- fRefreshInProgress = false;
- }
-
- /**
- * Method shouldUseExtraSpace.
- * @return boolean
- * @see org.eclipse.ui.views.properties.tabbed.ISection#shouldUseExtraSpace()
- */
- @Override
- public boolean shouldUseExtraSpace() {
- return true;
- }
-
- /**
- * Method propertyChanged.
- * @param source Object
- * @param propId int
- * @see org.eclipse.ui.IPropertyListener#propertyChanged(Object, int)
- */
- public void propertyChanged(Object source, int propId) {
- setEnabledFields();
- }
-
- /**
- * Method setEditableFields.
- */
- private void setEnabledFields() {
- if (R4EUIModelController.isDialogOpen()) {
- FTitleText.setEnabled(false);
- FDescriptionText.setEnabled(false);
- } else {
- FTitleText.setEnabled(true);
- FDescriptionText.setEnabled(true);
- }
- }
-}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/CommentTabPropertySection.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/CommentTabPropertySection.java
deleted file mode 100644
index 435bdb9..0000000
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/CommentTabPropertySection.java
+++ /dev/null
@@ -1,246 +0,0 @@
-// $codepro.audit.disable com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.alwaysOverridetoString.alwaysOverrideToString, staticFieldSecurity, com.instantiations.assist.eclipse.analysis.deserializeabilitySecurity, com.instantiations.assist.eclipse.analysis.enforceCloneableUsageSecurity, com.instantiations.assist.eclipse.analysis.instanceFieldSecurity, sourceLength, explicitThisUsage
-/*******************************************************************************
- * Copyright (c) 2010 Ericsson Research Canada
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Description:
- *
- * This class implements the tabbed property section for the Comment model element
- *
- * Contributors:
- * Sebastien Dubois - Created for Mylyn Review R4E project
- *
- ******************************************************************************/
-
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.reviews.r4e.core.model.R4EComment;
-import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
-import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
-import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIModelElement;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIComment;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
-import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
-import org.eclipse.mylyn.reviews.r4e.ui.utils.UIUtils;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-/**
- * @author lmcdubo
- * @version $Revision: 1.0 $
- */
-public class CommentTabPropertySection extends AbstractPropertySection implements IPropertyListener {
-
- // ------------------------------------------------------------------------
- // Member variables
- // ------------------------------------------------------------------------
-
- /**
- * Field fComment.
- */
- private CommentProperties fCommentProps;
-
- /**
- * Field FAuthorText.
- */
- protected static Text FAuthorText = null;
-
- /**
- * Field FCreationDateText.
- */
- protected static Text FCreationDateText = null;
-
- /**
- * Field FDescriptionText.
- */
- protected static Text FDescriptionText = null;
-
- /**
- * Field fRefreshInProgress.
- */
- private boolean fRefreshInProgress = false;
-
-
- // ------------------------------------------------------------------------
- // Methods
- // ------------------------------------------------------------------------
-
- /**
- * Method dispose.
- * @see org.eclipse.ui.views.properties.tabbed.ISection#dispose()
- */
- @Override
- public void dispose() {
- super.dispose();
- R4EUIModelController.removeDialogStateListener(this);
- }
-
- /**
- * Method createControls.
- * @param parent Composite
- * @param aTabbedPropertySheetPage TabbedPropertySheetPage
- * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(Composite, TabbedPropertySheetPage)
- */
- @Override
- public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
- super.createControls(parent, aTabbedPropertySheetPage);
- R4EUIModelController.addDialogStateListener(this);
-
- //Tell element to build its own detailed tab layout
- final TabbedPropertySheetWidgetFactory widgetFactory = aTabbedPropertySheetPage.getWidgetFactory();
- final Composite composite = widgetFactory.createFlatFormComposite(parent);
- FormData data = null;
-
- //Author (read-only)
- FAuthorText = widgetFactory.createText(composite, "");
- FAuthorText.setEditable(false);
- FAuthorText.setEnabled(false);
- data = new FormData();
- data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
- data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
- FAuthorText.setLayoutData(data);
-
- final CLabel authorLabel = widgetFactory.createCLabel(composite, R4EUIConstants.AUTHOR_LABEL);
- data = new FormData();
- data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FAuthorText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FAuthorText, 0, SWT.CENTER);
- authorLabel.setLayoutData(data);
-
- //Creation Date (read-only)
- FCreationDateText = widgetFactory.createText(composite, "");
- FCreationDateText.setEditable(false);
- FCreationDateText.setEnabled(false);
- data = new FormData();
- data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
- data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(FAuthorText, ITabbedPropertyConstants.VSPACE);
- FCreationDateText.setLayoutData(data);
-
- final CLabel creationDateLabel = widgetFactory.createCLabel(composite, R4EUIConstants.CREATION_DATE_LABEL);
- data = new FormData();
- data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FCreationDateText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FCreationDateText, 0, SWT.CENTER);
- creationDateLabel.setLayoutData(data);
-
- //Description
- FDescriptionText = widgetFactory.createText(composite, "", SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);
- data = new FormData();
- data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
- data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(FCreationDateText, ITabbedPropertyConstants.VSPACE);
- data.bottom = new FormAttachment(100, -ITabbedPropertyConstants.VSPACE); // $codepro.audit.disable numericLiterals
- FDescriptionText.setLayoutData(data);
- FDescriptionText.addModifyListener(new ModifyListener() { // $codepro.audit.disable com.instantiations.assist.eclipse.analysis.avoidInnerClasses
- @SuppressWarnings("synthetic-access")
- public void modifyText(ModifyEvent e) {
- if (!fRefreshInProgress) {
- try {
- final String currentUser = R4EUIModelController.getReviewer();
- final R4EComment modelComment = ((R4EUIComment)fCommentProps.getElement()).getComment();
- final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelComment, currentUser);
- modelComment.setDescription(FDescriptionText.getText());
- R4EUIModelController.FResourceUpdater.checkIn(bookNum);
- } catch (ResourceHandlingException e1) {
- UIUtils.displayResourceErrorDialog(e1);
- } catch (OutOfSyncException e1) {
- UIUtils.displaySyncErrorDialog(e1);
- }
- }
- }
- });
-
- final CLabel descriptionLabel = widgetFactory.createCLabel(composite, R4EUIConstants.DESCRIPTION_LABEL);
- data = new FormData();
- data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FDescriptionText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FDescriptionText, 0, SWT.TOP);
- descriptionLabel.setLayoutData(data);
- }
-
- /**
- * Method setInput.
- * @param part IWorkbenchPart
- * @param aSelection ISelection
- * @see org.eclipse.ui.views.properties.tabbed.ISection#setInput(IWorkbenchPart, ISelection)
- */
- @Override
- public void setInput(IWorkbenchPart part, ISelection aSelection) {
- //Get current selection.
- if (null == aSelection || aSelection.isEmpty()) return;
-
- //Get model element selected
- final IR4EUIModelElement element = (IR4EUIModelElement) ((StructuredSelection)aSelection).getFirstElement();
- if (null != element && element instanceof R4EUIComment) {
- fCommentProps = (CommentProperties) ((R4EUIComment)element).getAdapter(IPropertySource.class);
- refresh();
- }
- }
-
- /**
- * Method refresh.
- * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
- */
- @Override
- public void refresh() {
- fRefreshInProgress = true;
- final R4EComment modelComment = ((R4EUIComment)fCommentProps.getElement()).getComment();
- FAuthorText.setText(modelComment.getUser().getId());
- FCreationDateText.setText(modelComment.getCreatedOn().toString());
- FDescriptionText.setText(modelComment.getDescription());
- setEnabledFields();
- fRefreshInProgress = false;
- }
-
- /**
- * Method shouldUseExtraSpace.
- * @return boolean
- * @see org.eclipse.ui.views.properties.tabbed.ISection#shouldUseExtraSpace()
- */
- @Override
- public boolean shouldUseExtraSpace() {
- return true;
- }
-
- /**
- * Method propertyChanged.
- * @param source Object
- * @param propId int
- * @see org.eclipse.ui.IPropertyListener#propertyChanged(Object, int)
- */
- public void propertyChanged(Object source, int propId) {
- setEnabledFields();
- }
-
- /**
- * Method setEditableFields.
- */
- private void setEnabledFields() {
- if (R4EUIModelController.isDialogOpen()) {
- FDescriptionText.setEnabled(false);
- } else {
- FDescriptionText.setEnabled(true);
- }
- }
-}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ParticipantProperties.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ParticipantProperties.java
deleted file mode 100644
index 678c7ef..0000000
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ParticipantProperties.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 Ericsson Research Canada
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Description:
- *
- * This class encapsulates the properties for the Participant UI model element
- *
- * Contributors:
- * Sebastien Dubois - Created for Mylyn Review R4E project
- *
- ******************************************************************************/
-
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly;
-import org.eclipse.mylyn.reviews.r4e.core.model.R4EComment;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelElement;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIParticipant;
-import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-
-/**
- * @author lmcdubo
- * @version $Revision: 1.0 $
- */
-public class ParticipantProperties extends ModelElementProperties {
-
- // ------------------------------------------------------------------------
- // Constants
- // ------------------------------------------------------------------------
-
- /**
- * Field PARTICIPANT_ID. (value is ""participantElement.id"")
- */
- private static final String PARTICIPANT_ID = "participantElement.id";
-
- /**
- * Field PARTICIPANT_PROPERTY_DESCRIPTOR.
- */
- private static final PropertyDescriptor PARTICIPANT_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
- PARTICIPANT_ID, R4EUIConstants.ID_LABEL);
-
- /**
- * Field PARTICIPANT_NUM_ITEMS_ID. (value is ""participantElement.numItems"")
- */
- private static final String PARTICIPANT_NUM_ITEMS_ID = "participantElement.numItems";
-
- /**
- * Field PARTICIPANT_NUM_ITEMS_PROPERTY_DESCRIPTOR.
- */
- private static final PropertyDescriptor PARTICIPANT_NUM_ITEMS_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
- PARTICIPANT_NUM_ITEMS_ID, R4EUIConstants.NUM_ITEMS_LABEL);
-
- /**
- * Field PARTICIPANT_NUM_ANOMALIES_ID. (value is ""participantElement.numAnomalies"")
- */
- private static final String PARTICIPANT_NUM_ANOMALIES_ID = "participantElement.numAnomalies";
-
- /**
- * Field PARTICIPANT_NUM_ANOMALIES_PROPERTY_DESCRIPTOR.
- */
- private static final PropertyDescriptor PARTICIPANT_NUM_ANOMALIES_PROPERTY_DESCR = new PropertyDescriptor(
- PARTICIPANT_NUM_ANOMALIES_ID, R4EUIConstants.NUM_ANOMALIES_LABEL);
-
- /**
- * Field PARTICIPANT_NUM_COMMENTS_ID. (value is ""participantElement.numComments"")
- */
- private static final String PARTICIPANT_NUM_COMMENTS_ID = "participantElement.numComments";
-
- /**
- * Field PARTICIPANT_NUM_COMMENTS_PROPERTY_DESCRIPTOR.
- */
- private static final PropertyDescriptor PARTICIPANT_NUM_COMMENTS_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
- PARTICIPANT_NUM_COMMENTS_ID, R4EUIConstants.NUM_COMMENTS_LABEL);
-
- /**
- * Field DESCRIPTORS.
- */
- private static final IPropertyDescriptor[] DESCRIPTORS = { PARTICIPANT_PROPERTY_DESCRIPTOR,
- PARTICIPANT_NUM_ITEMS_PROPERTY_DESCRIPTOR, PARTICIPANT_NUM_ANOMALIES_PROPERTY_DESCR,
- PARTICIPANT_NUM_COMMENTS_PROPERTY_DESCRIPTOR };
-
-
- // ------------------------------------------------------------------------
- // Constructors
- // ------------------------------------------------------------------------
-
- /**
- * Constructor for ParticipantProperties.
- * @param aElement R4EUIModelElement
- */
- public ParticipantProperties(R4EUIModelElement aElement) {
- super(aElement);
- }
-
-
- // ------------------------------------------------------------------------
- // Methods
- // ------------------------------------------------------------------------
-
- /**
- * Method getPropertyDescriptors.
- * @return IPropertyDescriptor[]
- * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
- */
- @Override
- public IPropertyDescriptor[] getPropertyDescriptors() {
- return DESCRIPTORS;
- }
-
- /**
- * Method getPropertyValue.
- * @param aId Object
- * @return Object
- * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(Object)
- */
-
- @Override
- public Object getPropertyValue(Object aId) {
- if (PARTICIPANT_ID.equals(aId)) {
- return ((R4EUIParticipant)getElement()).getParticipant().getId();
- } else if (PARTICIPANT_NUM_ITEMS_ID.equals(aId)) {
- return Integer.valueOf(((R4EUIParticipant)getElement()).getParticipant().getAddedItems().size());
- } else if (PARTICIPANT_NUM_ANOMALIES_ID.equals(aId)) {
- int numAnomalies = 0;
- final EList<R4EComment> comments = ((R4EUIParticipant)getElement()).getParticipant().getAddedComments();
- final int commentsSize = comments.size();
- for (int i = 0; i < commentsSize; i++) {
- if (comments.get(i) instanceof R4EAnomaly) {
- ++numAnomalies;
- }
- }
- return Integer.valueOf(numAnomalies);
- } else if (PARTICIPANT_NUM_COMMENTS_ID.equals(aId)) {
- int numComments = 0;
- final EList<R4EComment> comments = ((R4EUIParticipant)getElement()).getParticipant().getAddedComments();
- final int commentsSize = comments.size();
- for (int i = 0; i < commentsSize; i++) {
- if (!(comments.get(i) instanceof R4EAnomaly)) {
- ++numComments;
- }
- }
- return Integer.valueOf(numComments);
- }
- return null;
- }
-}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ParticipantTabPropertySection.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ParticipantTabPropertySection.java
deleted file mode 100644
index fc6eb19..0000000
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ParticipantTabPropertySection.java
+++ /dev/null
@@ -1,215 +0,0 @@
-// $codepro.audit.disable com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.alwaysOverridetoString.alwaysOverrideToString, staticFieldSecurity, com.instantiations.assist.eclipse.analysis.deserializeabilitySecurity, com.instantiations.assist.eclipse.analysis.enforceCloneableUsageSecurity, explicitThisUsage
-/*******************************************************************************
- * Copyright (c) 2010 Ericsson Research Canada
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Description:
- *
- * This class implements the tabbed property section for the Participant model
- * element
- *
- * Contributors:
- * Sebastien Dubois - Created for Mylyn Review R4E project
- *
- ******************************************************************************/
-
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly;
-import org.eclipse.mylyn.reviews.r4e.core.model.R4EComment;
-import org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant;
-import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIModelElement;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIParticipant;
-import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-/**
- * @author lmcdubo
- * @version $Revision: 1.0 $
- */
-public class ParticipantTabPropertySection extends AbstractPropertySection {
-
- // ------------------------------------------------------------------------
- // Member variables
- // ------------------------------------------------------------------------
-
- /**
- * Field fParticipant.
- */
- private ParticipantProperties fParticipantProps;
-
- //Properties
- /**
- * Field FIdText.
- */
- protected static Text FIdText = null;
-
- /**
- * Field FNumItemsText.
- */
- protected static Text FNumItemsText = null;
-
- /**
- * Field FNumAnomaliesText.
- */
- protected static Text FNumAnomaliesText = null;
-
- /**
- * Field FNumCommentsText.
- */
- protected static Text FNumCommentsText = null;
-
-
- // ------------------------------------------------------------------------
- // Methods
- // ------------------------------------------------------------------------
-
- /**
- * Method createControls.
- * @param parent Composite
- * @param aTabbedPropertySheetPage TabbedPropertySheetPage
- * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(Composite, TabbedPropertySheetPage)
- */
- @Override
- public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
- super.createControls(parent, aTabbedPropertySheetPage);
-
- //Tell element to build its own detailed tab layout
- final TabbedPropertySheetWidgetFactory widgetFactory = aTabbedPropertySheetPage.getWidgetFactory();
- final Composite composite = widgetFactory.createFlatFormComposite(parent);
- FormData data = null;
-
- //Author (read-only)
- FIdText = widgetFactory.createText(composite, "");
- FIdText.setEditable(false);
- FIdText.setEnabled(false);
- data = new FormData();
- data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
- data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
- FIdText.setLayoutData(data);
-
-
- final CLabel idLabel = widgetFactory.createCLabel(composite, R4EUIConstants.ID_LABEL);
- data = new FormData();
- data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FIdText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FIdText, 0, SWT.CENTER);
- idLabel.setLayoutData(data);
-
- //Number of Review Items added (read-only)
- FNumItemsText = widgetFactory.createText(composite, "");
- FNumItemsText.setEditable(false);
- FNumItemsText.setEnabled(false);
- FNumItemsText.setBackground(Display.getDefault().getSystemColor( SWT.COLOR_WIDGET_LIGHT_SHADOW));
- data = new FormData();
- data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
- data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(FIdText, ITabbedPropertyConstants.VSPACE);
- FNumItemsText.setLayoutData(data);
-
- final CLabel numItemsLabel = widgetFactory.createCLabel(composite, R4EUIConstants.NUM_ITEMS_LABEL);
- data = new FormData();
- data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FNumItemsText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FNumItemsText, 0, SWT.CENTER);
- numItemsLabel.setLayoutData(data);
-
- //Number of Anomalies added (read-only)
- FNumAnomaliesText = widgetFactory.createText(composite, "");
- FNumAnomaliesText.setEditable(false);
- FNumAnomaliesText.setEnabled(false);
- data = new FormData();
- data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
- data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(FNumItemsText, ITabbedPropertyConstants.VSPACE);
- FNumAnomaliesText.setLayoutData(data);
-
- final CLabel numAnomaliesLabel = widgetFactory.createCLabel(composite, R4EUIConstants.NUM_ANOMALIES_LABEL);
- data = new FormData();
- data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FNumAnomaliesText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FNumAnomaliesText, 0, SWT.CENTER);
- numAnomaliesLabel.setLayoutData(data);
-
- //Number of Comments added (read-only)
- FNumCommentsText = widgetFactory.createText(composite, "");
- FNumCommentsText.setEditable(false);
- FNumCommentsText.setEnabled(false);
- data = new FormData();
- data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
- data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(FNumAnomaliesText, ITabbedPropertyConstants.VSPACE);
- FNumCommentsText.setLayoutData(data);
-
- final CLabel numCommentsLabel = widgetFactory.createCLabel(composite, R4EUIConstants.NUM_COMMENTS_LABEL);
- data = new FormData();
- data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FNumCommentsText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FNumCommentsText, 0, SWT.CENTER);
- numCommentsLabel.setLayoutData(data);
- }
-
- /**
- * Method setInput.
- * @param part IWorkbenchPart
- * @param aSelection ISelection
- * @see org.eclipse.ui.views.properties.tabbed.ISection#setInput(IWorkbenchPart, ISelection)
- */
- @Override
- public void setInput(IWorkbenchPart part, ISelection aSelection) {
- //Get current selection.
- if (null == aSelection || aSelection.isEmpty()) return;
-
- //Get model element selected
- final IR4EUIModelElement element = (IR4EUIModelElement) ((StructuredSelection)aSelection).getFirstElement();
- if (null != element && element instanceof R4EUIParticipant) {
- fParticipantProps = (ParticipantProperties) ((R4EUIParticipant)element).getAdapter(IPropertySource.class);
- refresh();
- }
- }
-
- /**
- * Method refresh.
- * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
- */
- @Override
- public void refresh() {
- final R4EParticipant modelUser = ((R4EUIParticipant)fParticipantProps.getElement()).getParticipant();
- FIdText.setText(modelUser.getId());
- FNumItemsText.setText(String.valueOf(modelUser.getAddedItems().size()));
-
- int numAnomalies = 0;
- int numComments = 0;
- final EList<R4EComment> comments = modelUser.getAddedComments();
- final int commentsSize = comments.size();
- for (int i = 0; i < commentsSize; i++) {
- if (comments.get(i) instanceof R4EAnomaly) {
- ++numAnomalies;
- } else {
- ++numComments;
- }
- }
- FNumAnomaliesText.setText(String.valueOf(numAnomalies));
- FNumCommentsText.setText(String.valueOf(numComments));
- }
-}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ReviewProperties.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ReviewProperties.java
deleted file mode 100644
index aa1b403..0000000
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ReviewProperties.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 Ericsson Research Canada
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Description:
- *
- * This class encapsulates the properties for the Review UI model element
- *
- * Contributors:
- * Sebastien Dubois - Created for Mylyn Review R4E project
- *
- ******************************************************************************/
-
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
-
-import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
-import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelElement;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIReview;
-import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
-import org.eclipse.mylyn.reviews.r4e.ui.utils.UIUtils;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-
-/**
- * @author lmcdubo
- * @version $Revision: 1.0 $
- */
-public class ReviewProperties extends ModelElementProperties {
-
- // ------------------------------------------------------------------------
- // Constants
- // ------------------------------------------------------------------------
-
- /**
- * Field REVIEW_NAME_ID. (value is ""reviewElement.name"")
- */
- private static final String REVIEW_NAME_ID = "reviewElement.name";
-
- /**
- * Field REVIEW_NAME_PROPERTY_DESCRIPTOR.
- */
- private static final TextPropertyDescriptor REVIEW_NAME_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
- REVIEW_NAME_ID, R4EUIConstants.NAME_LABEL);
-
- /**
- * Field REVIEW_CREATION_DATE_ID. (value is ""reviewElement.creationDate"")
- */
- private static final String REVIEW_CREATION_DATE_ID = "reviewElement.creationDate";
-
- /**
- * Field REVIEW_CREATION_DATE_PROPERTY_DESCRIPTOR.
- */
- private static final PropertyDescriptor REVIEW_CREATION_DATE_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
- REVIEW_CREATION_DATE_ID, R4EUIConstants.CREATION_DATE_LABEL);
-
- /**
- * Field REVIEW_DESCRIPTION_ID. (value is ""reviewElement.description"")
- */
- private static final String REVIEW_DESCRIPTION_ID = "reviewElement.description";
-
- /**
- * Field REVIEW_DESCRIPTION_PROPERTY_DESCRIPTOR.
- */
- private static final TextPropertyDescriptor REVIEW_DESCRIPTION_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
- REVIEW_DESCRIPTION_ID, R4EUIConstants.DESCRIPTION_LABEL);
-
- /**
- * Field DESCRIPTORS.
- */
- private static final IPropertyDescriptor[] DESCRIPTORS = { REVIEW_NAME_PROPERTY_DESCRIPTOR,
- REVIEW_CREATION_DATE_PROPERTY_DESCRIPTOR, REVIEW_DESCRIPTION_PROPERTY_DESCRIPTOR };
-
-
- // ------------------------------------------------------------------------
- // Constructors
- // ------------------------------------------------------------------------
-
- /**
- * Constructor for ReviewProperties.
- * @param aElement R4EUIModelElement
- */
- public ReviewProperties(R4EUIModelElement aElement) {
- super(aElement);
- }
-
-
- // ------------------------------------------------------------------------
- // Methods
- // ------------------------------------------------------------------------
-
- /**
- * Method getPropertyDescriptors.
- * @return IPropertyDescriptor[]
- * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
- */
-
- @Override
- public IPropertyDescriptor[] getPropertyDescriptors() {
- return DESCRIPTORS;
- }
-
- /**
- * Method getPropertyValue.
- * @param aId Object
- * @return Object
- * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(Object)
- */
- @Override
- public Object getPropertyValue(Object aId) {
- if (null != getElement()) {
- if (REVIEW_NAME_ID.equals(aId)) {
- return ((R4EUIReview)getElement()).getReview().getName();
- } else if (REVIEW_CREATION_DATE_ID.equals(aId)) {
- return ((R4EUIReview)getElement()).getReview().getCreationDate().toString();
- } else if (REVIEW_DESCRIPTION_ID.equals(aId)) {
- return ((R4EUIReview)getElement()).getReview().getExtraNotes();
- }
- }
- return null;
- }
-
- /**
- * Method setPropertyValue.
- * @param aId Object
- * @param aValue Object
- * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(Object, Object)
- */
- @Override
- public void setPropertyValue(Object aId, Object aValue) { // $codepro.audit.disable emptyMethod
- if (!(R4EUIModelController.isDialogOpen()) && getElement().isOpen()) {
- try {
- if (REVIEW_NAME_ID.equals(aId)) {
- final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(((R4EUIReview)getElement()).getReview(),
- R4EUIModelController.getReviewer());
- ((R4EUIReview)getElement()).getReview().setName((String) aValue);
- R4EUIModelController.FResourceUpdater.checkIn(bookNum);
- } else if (REVIEW_DESCRIPTION_ID.equals(aId)) {
- final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(((R4EUIReview)getElement()).getReview(),
- R4EUIModelController.getReviewer());
- ((R4EUIReview)getElement()).getReview().setExtraNotes((String) aValue);
- R4EUIModelController.FResourceUpdater.checkIn(bookNum);
- }
- } catch (ResourceHandlingException e) {
- UIUtils.displayResourceErrorDialog(e);
- } catch (OutOfSyncException e) {
- UIUtils.displaySyncErrorDialog(e);
- }
- }
- }
-}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ReviewTabPropertySection.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ReviewTabPropertySection.java
deleted file mode 100644
index 6b2cf52..0000000
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ReviewTabPropertySection.java
+++ /dev/null
@@ -1,265 +0,0 @@
-// $codepro.audit.disable com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.alwaysOverridetoString.alwaysOverrideToString, staticFieldSecurity, com.instantiations.assist.eclipse.analysis.deserializeabilitySecurity, com.instantiations.assist.eclipse.analysis.enforceCloneableUsageSecurity, com.instantiations.assist.eclipse.analysis.instanceFieldSecurity, sourceLength, explicitThisUsage
-/*******************************************************************************
- * Copyright (c) 2010 Ericsson Research Canada
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Description:
- *
- * This class implements the tabbed property section for the Review Item model
- * element
- *
- * Contributors:
- * Sebastien Dubois - Created for Mylyn Review R4E project
- *
- ******************************************************************************/
-
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.reviews.r4e.core.model.R4EReview;
-import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
-import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
-import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIModelElement;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIReview;
-import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
-import org.eclipse.mylyn.reviews.r4e.ui.utils.UIUtils;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-/**
- * @author lmcdubo
- * @version $Revision: 1.0 $
- */
-public class ReviewTabPropertySection extends AbstractPropertySection implements IPropertyListener {
-
- // ------------------------------------------------------------------------
- // Member variables
- // ------------------------------------------------------------------------
-
- /**
- * Field fReview.
- */
- private ReviewProperties fReviewProps;
-
- /**
- * Field FNameText.
- */
- protected static Text FNameText = null;
-
- /**
- * Field FCreationDateText.
- */
- protected static Text FCreationDateText = null;
-
- /**
- * Field FDescriptionText.
- */
- protected static Text FDescriptionText = null;
-
- /**
- * Field fRefreshInProgress.
- */
- private boolean fRefreshInProgress = false;
-
-
- // ------------------------------------------------------------------------
- // Methods
- // ------------------------------------------------------------------------
-
- /**
- * Method dispose.
- * @see org.eclipse.ui.views.properties.tabbed.ISection#dispose()
- */
- @Override
- public void dispose() {
- super.dispose();
- R4EUIModelController.removeDialogStateListener(this);
- }
-
- /**
- * Method createControls.
- * @param parent Composite
- * @param aTabbedPropertySheetPage TabbedPropertySheetPage
- * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(Composite, TabbedPropertySheetPage)
- */
- @Override
- public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
- super.createControls(parent, aTabbedPropertySheetPage);
- R4EUIModelController.addDialogStateListener(this);
-
- //Tell element to build its own detailed tab layout
- final TabbedPropertySheetWidgetFactory widgetFactory = aTabbedPropertySheetPage.getWidgetFactory();
- final Composite composite = widgetFactory.createFlatFormComposite(parent);
- FormData data = null;
-
- //Review Name
- FNameText = widgetFactory.createText(composite, "");
- data = new FormData();
- data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
- data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
- FNameText.setLayoutData(data);
- FNameText.addModifyListener(new ModifyListener() { // $codepro.audit.disable com.instantiations.assist.eclipse.analysis.avoidInnerClasses
- @SuppressWarnings("synthetic-access")
- public void modifyText(ModifyEvent e) {
- if (!fRefreshInProgress) {
- try {
- final String currentUser = R4EUIModelController.getReviewer();
- final R4EReview modelReview = ((R4EUIReview)fReviewProps.getElement()).getReview();
- final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelReview, currentUser);
- modelReview.setName(FNameText.getText());
- R4EUIModelController.FResourceUpdater.checkIn(bookNum);
- } catch (ResourceHandlingException e1) {
- UIUtils.displayResourceErrorDialog(e1);
- } catch (OutOfSyncException e1) {
- UIUtils.displaySyncErrorDialog(e1);
- }
- }
- }
- });
-
- final CLabel nameLabel = widgetFactory.createCLabel(composite, R4EUIConstants.NAME_LABEL);
- data = new FormData();
- data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FNameText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FNameText, 0, SWT.CENTER);
- nameLabel.setLayoutData(data);
-
- //Review Creation Date (read-only)
- FCreationDateText = widgetFactory.createText(composite, "");
- FCreationDateText.setEditable(false);
- FCreationDateText.setEnabled(false);
- data = new FormData();
- data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
- data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(FNameText, ITabbedPropertyConstants.VSPACE);
- FCreationDateText.setLayoutData(data);
-
- final CLabel creationDateLabel = widgetFactory.createCLabel(composite, R4EUIConstants.CREATION_DATE_LABEL);
- data = new FormData();
- data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FCreationDateText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FCreationDateText, 0, SWT.CENTER);
- creationDateLabel.setLayoutData(data);
-
- //Review Description
- FDescriptionText = widgetFactory.createText(composite, "", SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);
- data = new FormData();
- data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
- data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(FCreationDateText, ITabbedPropertyConstants.VSPACE);
- data.bottom = new FormAttachment(100, -ITabbedPropertyConstants.VSPACE); // $codepro.audit.disable numericLiterals
- FDescriptionText.setLayoutData(data);
- FDescriptionText.addModifyListener(new ModifyListener() { // $codepro.audit.disable com.instantiations.assist.eclipse.analysis.avoidInnerClasses
- @SuppressWarnings("synthetic-access")
- public void modifyText(ModifyEvent e) {
- if (!fRefreshInProgress) {
- try {
- final String currentUser = R4EUIModelController.getReviewer();
- final R4EReview modelReview = ((R4EUIReview)fReviewProps.getElement()).getReview();
- final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelReview, currentUser);
- modelReview.setExtraNotes(FDescriptionText.getText());
- R4EUIModelController.FResourceUpdater.checkIn(bookNum);
- } catch (ResourceHandlingException e1) {
- UIUtils.displayResourceErrorDialog(e1);
- } catch (OutOfSyncException e1) {
- UIUtils.displaySyncErrorDialog(e1);
- }
- }
- }
- });
-
- final CLabel descriptionLabel = widgetFactory.createCLabel(composite, R4EUIConstants.DESCRIPTION_LABEL);
- data = new FormData();
- data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FDescriptionText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FDescriptionText, 0, SWT.TOP);
- descriptionLabel.setLayoutData(data);
- }
-
- /**
- * Method setInput.
- * @param part IWorkbenchPart
- * @param aSelection ISelection
- * @see org.eclipse.ui.views.properties.tabbed.ISection#setInput(IWorkbenchPart, ISelection)
- */
- @Override
- public void setInput(IWorkbenchPart part, ISelection aSelection) {
- //Get current selection.
- if (null == aSelection || aSelection.isEmpty()) return;
-
- //Get model element selected
- final IR4EUIModelElement element = (IR4EUIModelElement) ((StructuredSelection)aSelection).getFirstElement();
- if (null != element && element instanceof R4EUIReview) {
- fReviewProps = (ReviewProperties) ((R4EUIReview)element).getAdapter(IPropertySource.class);
- refresh();
- }
- }
-
- /**
- * Method refresh.
- * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
- */
- @Override
- public void refresh() {
- fRefreshInProgress = true;
- final R4EReview modelReview = ((R4EUIReview)fReviewProps.getElement()).getReview();
- FNameText.setText(modelReview.getName());
- FCreationDateText.setText(modelReview.getCreationDate().toString());
- if (null != modelReview.getExtraNotes()) FDescriptionText.setText(modelReview.getExtraNotes());
- setEnabledFields();
- fRefreshInProgress = false;
- }
-
- /**
- * Method shouldUseExtraSpace.
- * @return boolean
- * @see org.eclipse.ui.views.properties.tabbed.ISection#shouldUseExtraSpace()
- */
- @Override
- public boolean shouldUseExtraSpace() {
- return true;
- }
-
- /**
- * Method propertyChanged.
- * @param source Object
- * @param propId int
- * @see org.eclipse.ui.IPropertyListener#propertyChanged(Object, int)
- */
- public void propertyChanged(Object source, int propId) {
- setEnabledFields();
- }
-
- /**
- * Method setEnabledFields.
- */
- private void setEnabledFields() {
- if (R4EUIModelController.isDialogOpen() || (!((R4EUIReview)fReviewProps.getElement()).isOpen())) {
- FNameText.setEnabled(false);
- FDescriptionText.setEnabled(false);
- } else {
- FNameText.setEnabled(true);
- FDescriptionText.setEnabled(true);
- }
- }
-}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/AnomalyExtraProperties.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/AnomalyExtraProperties.java
new file mode 100644
index 0000000..9157249
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/AnomalyExtraProperties.java
@@ -0,0 +1,182 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class encapsulates the properties for the AnomalyExtended UI model element
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+package org.eclipse.mylyn.reviews.r4e.ui.properties.general;
+
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomalyExtended;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelElement;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
+import org.eclipse.ui.views.properties.ComboBoxPropertyDescriptor;
+import org.eclipse.ui.views.properties.IPropertyDescriptor;
+import org.eclipse.ui.views.properties.PropertyDescriptor;
+import org.eclipse.ui.views.properties.TextPropertyDescriptor;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class AnomalyExtraProperties extends AnomalyGeneralProperties {
+
+ // ------------------------------------------------------------------------
+ // Constants
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field ANOMALY_STATE_ID. (value is ""anomalyElement.state"")
+ */
+ private static final String ANOMALY_STATE_ID = "anomalyElement.state";
+
+ /**
+ * Field ANOMALY_STATE_PROPERTY_DESCRIPTOR.
+ */
+ protected static final ComboBoxPropertyDescriptor ANOMALY_STATE_PROPERTY_DESCRIPTOR = new ComboBoxPropertyDescriptor(
+ ANOMALY_STATE_ID, R4EUIConstants.STATE_LABEL, R4EUIAnomalyExtended.getStates());
+
+ /**
+ * Field ANOMALY_DUE_DATE_ID. (value is ""anomalyElement.dueDate"")
+ */
+ private static final String ANOMALY_DUE_DATE_ID = "anomalyElement.dueDate";
+
+ /**
+ * Field ANOMALY_DUE_DATE_PROPERTY_DESCRIPTOR.
+ */
+ protected static final PropertyDescriptor ANOMALY_DUE_DATE_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
+ ANOMALY_DUE_DATE_ID, R4EUIConstants.DUE_DATE_LABEL);
+
+ /**
+ * Field ANOMALY_RANK_ID. (value is ""anomalyElement.rank"")
+ */
+ private static final String ANOMALY_RANK_ID = "anomalyElement.rank";
+
+ /**
+ * Field ANOMALY_RANK_PROPERTY_DESCRIPTOR.
+ */
+ protected static final ComboBoxPropertyDescriptor ANOMALY_RANK_PROPERTY_DESCRIPTOR = new ComboBoxPropertyDescriptor(
+ ANOMALY_RANK_ID, R4EUIConstants.RANK_LABEL, R4EUIAnomalyExtended.getRanks());
+
+ /**
+ * Field ANOMALY_NOT_ACCEPTED_REASON_ID. (value is ""anomalyElement.notAcceptedReason"")
+ */
+ private static final String ANOMALY_NOT_ACCEPTED_REASON_ID = "anomalyElement.notAcceptedReason";
+
+ /**
+ * Field ANOMALY_NOT_ACCEPTED_REASON_PROPERTY_DESCRIPTOR.
+ */
+ protected static final TextPropertyDescriptor ANOMALY_NOT_ACCEPTED_REASON_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ ANOMALY_NOT_ACCEPTED_REASON_ID, R4EUIConstants.NOT_ACCEPTED_REASON_LABEL);
+
+ /**
+ * Field ANOMALY_DECIDED_BY_ID. (value is ""anomalyElement.decidedBy"")
+ */
+ private static final String ANOMALY_DECIDED_BY_ID = "anomalyElement.decidedBy";
+
+ /**
+ * Field ANOMALY_DECIDED_BY_PROPERTY_DESCRIPTOR.
+ */
+ protected static final TextPropertyDescriptor ANOMALY_DECIDED_BY_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ ANOMALY_DECIDED_BY_ID, R4EUIConstants.DECIDED_BY_LABEL);
+
+ /**
+ * Field ANOMALY_FIXED_BY_ID. (value is ""anomalyElement.fixedBy"")
+ */
+ private static final String ANOMALY_FIXED_BY_ID = "anomalyElement.fixedBy";
+
+ /**
+ * Field ANOMALY_FIXED_BY_PROPERTY_DESCRIPTOR.
+ */
+ protected static final TextPropertyDescriptor ANOMALY_FIXED_BY_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ ANOMALY_FIXED_BY_ID, R4EUIConstants.FIXED_BY_LABEL);
+
+ /**
+ * Field ANOMALY_FOLLOWUP_BY_ID. (value is ""anomalyElement.followupBy"")
+ */
+ private static final String ANOMALY_FOLLOWUP_BY_ID = "anomalyElement.followupBy";
+
+ /**
+ * Field ANOMALY_FOLLOWUP_BY_PROPERTY_DESCRIPTOR.
+ */
+ protected static final TextPropertyDescriptor ANOMALY_FOLLOWUP_BY_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ ANOMALY_FOLLOWUP_BY_ID, R4EUIConstants.FOLLOWUP_BY_LABEL);
+
+ /**
+ * Field DESCRIPTORS.
+ */
+ private static final IPropertyDescriptor[] DESCRIPTORS = { ANOMALY_TITLE_PROPERTY_DESCRIPTOR,
+ ANOMALY_POSITION_PROPERTY_DESCRIPTOR, ANOMALY_AUTHOR_PROPERTY_DESCRIPTOR,
+ ANOMALY_CREATION_DATE_PROPERTY_DESCRIPTOR, ANOMALY_DESCRIPTION_PROPERTY_DESCRIPTOR,
+ ANOMALY_STATE_PROPERTY_DESCRIPTOR, ANOMALY_DUE_DATE_PROPERTY_DESCRIPTOR,
+ ANOMALY_RANK_PROPERTY_DESCRIPTOR, ANOMALY_NOT_ACCEPTED_REASON_PROPERTY_DESCRIPTOR,
+ ANOMALY_DECIDED_BY_PROPERTY_DESCRIPTOR, ANOMALY_FIXED_BY_PROPERTY_DESCRIPTOR,
+ ANOMALY_FOLLOWUP_BY_PROPERTY_DESCRIPTOR};
+
+
+ // ------------------------------------------------------------------------
+ // Constructors
+ // ------------------------------------------------------------------------
+
+ /**
+ * Constructor for AnomalyProperties.
+ * @param aElement R4EUIModelElement
+ */
+ public AnomalyExtraProperties(R4EUIModelElement aElement) {
+ super(aElement);
+ }
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * Method getPropertyDescriptors.
+ * @return IPropertyDescriptor[]
+ * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
+ */
+ @Override
+ public IPropertyDescriptor[] getPropertyDescriptors() {
+ return DESCRIPTORS;
+ }
+
+ /**
+ * Method getPropertyValue.
+ *
+ * @param aId Object
+ * @return Object
+ * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(Object)
+ */
+ @Override
+ public Object getPropertyValue(Object aId) {
+ final Object result = super.getPropertyValue(aId);
+ if (null != result) return result;
+ if (ANOMALY_STATE_ID.equals(aId)) {
+ return Integer.valueOf(((R4EUIAnomalyExtended)getElement()).getAnomaly().getState().getValue());
+ } else if (ANOMALY_DUE_DATE_ID.equals(aId)) {
+ return ((R4EUIAnomalyExtended)getElement()).getAnomaly().getDueDate().toString();
+ } else if (ANOMALY_RANK_ID.equals(aId)) {
+ return Integer.valueOf(((R4EUIAnomalyExtended)getElement()).getAnomaly().getRank().getValue());
+ } else if (ANOMALY_NOT_ACCEPTED_REASON_ID.equals(aId)) {
+ return ((R4EUIAnomalyExtended)getElement()).getAnomaly().getNotAcceptedReason();
+ } else if (ANOMALY_DECIDED_BY_ID.equals(aId)) {
+ return ((R4EUIAnomalyExtended)getElement()).getAnomaly().getDecidedByID();
+ } else if (ANOMALY_FIXED_BY_ID.equals(aId)) {
+ return ((R4EUIAnomalyExtended)getElement()).getAnomaly().getFixedByID();
+ } else if (ANOMALY_FOLLOWUP_BY_ID.equals(aId)) {
+ return ((R4EUIAnomalyExtended)getElement()).getAnomaly().getFollowUpByID();
+ }
+ return null;
+ }
+ //NOTE: Since state management for anomalies is complex, the value are only editable using the tabbed properties view
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/AnomalyProperties.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/AnomalyGeneralProperties.java
similarity index 76%
rename from org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/AnomalyProperties.java
rename to org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/AnomalyGeneralProperties.java
index 22b59be..1678edf 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/AnomalyProperties.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/AnomalyGeneralProperties.java
@@ -15,11 +15,11 @@
*
******************************************************************************/
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
+package org.eclipse.mylyn.reviews.r4e.ui.properties.general;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
-import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomaly;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomalyBasic;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelElement;
import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
@@ -32,7 +32,7 @@
* @author lmcdubo
* @version $Revision: 1.0 $
*/
-public class AnomalyProperties extends ModelElementProperties {
+public class AnomalyGeneralProperties extends ModelElementProperties {
// ------------------------------------------------------------------------
// Constants
@@ -46,7 +46,7 @@
/**
* Field ANOMALY_TITLE_PROPERTY_DESCRIPTOR.
*/
- private static final TextPropertyDescriptor ANOMALY_TITLE_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ protected static final TextPropertyDescriptor ANOMALY_TITLE_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
ANOMALY_TITLE_ID, R4EUIConstants.TITLE_LABEL);
/**
@@ -57,7 +57,7 @@
/**
* Field ANOMALY_POSITION_PROPERTY_DESCRIPTOR.
*/
- private static final PropertyDescriptor ANOMALY_POSITION_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
+ protected static final PropertyDescriptor ANOMALY_POSITION_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
ANOMALY_POSITION_ID, R4EUIConstants.POSITION_LABEL);
/**
@@ -68,7 +68,7 @@
/**
* Field ANOMALY_AUTHOR_PROPERTY_DESCRIPTOR.
*/
- private static final PropertyDescriptor ANOMALY_AUTHOR_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
+ protected static final PropertyDescriptor ANOMALY_AUTHOR_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
ANOMALY_AUTHOR_ID, R4EUIConstants.AUTHOR_LABEL);
/**
@@ -79,7 +79,7 @@
/**
* Field ANOMALY_CREATION_DATE_PROPERTY_DESCRIPTOR.
*/
- private static final PropertyDescriptor ANOMALY_CREATION_DATE_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
+ protected static final PropertyDescriptor ANOMALY_CREATION_DATE_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
ANOMALY_CREATION_DATE_ID, R4EUIConstants.CREATION_DATE_LABEL);
/**
@@ -90,7 +90,7 @@
/**
* Field ANOMALY_DESCRIPTION_PROPERTY_DESCRIPTOR.
*/
- private static final TextPropertyDescriptor ANOMALY_DESCRIPTION_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ protected static final TextPropertyDescriptor ANOMALY_DESCRIPTION_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
ANOMALY_DESCRIPTION_ID, R4EUIConstants.DESCRIPTION_LABEL);
/**
@@ -109,7 +109,7 @@
* Constructor for AnomalyProperties.
* @param aElement R4EUIModelElement
*/
- public AnomalyProperties(R4EUIModelElement aElement) {
+ public AnomalyGeneralProperties(R4EUIModelElement aElement) {
super(aElement);
}
@@ -138,18 +138,18 @@
@Override
public Object getPropertyValue(Object aId) {
if (ANOMALY_TITLE_ID.equals(aId)) {
- return ((R4EUIAnomaly)getElement()).getAnomaly().getTitle();
+ return ((R4EUIAnomalyBasic)getElement()).getAnomaly().getTitle();
} else if (ANOMALY_POSITION_ID.equals(aId)) {
- if (null == ((R4EUIAnomaly)getElement()).getPosition()) {
+ if (null == ((R4EUIAnomalyBasic)getElement()).getPosition()) {
return R4EUIConstants.GLOBAL_ANOMALY_PROPERTY_VALUE;
}
- return ((R4EUIAnomaly)getElement()).getPosition().toString();
+ return ((R4EUIAnomalyBasic)getElement()).getPosition().toString();
} else if (ANOMALY_AUTHOR_ID.equals(aId)) {
- return ((R4EUIAnomaly)getElement()).getAnomaly().getUser().getId();
+ return ((R4EUIAnomalyBasic)getElement()).getAnomaly().getUser().getId();
} else if (ANOMALY_CREATION_DATE_ID.equals(aId)) {
- return ((R4EUIAnomaly)getElement()).getAnomaly().getCreatedOn().toString();
+ return ((R4EUIAnomalyBasic)getElement()).getAnomaly().getCreatedOn().toString();
} else if (ANOMALY_DESCRIPTION_ID.equals(aId)) {
- return ((R4EUIAnomaly)getElement()).getAnomaly().getDescription();
+ return ((R4EUIAnomalyBasic)getElement()).getAnomaly().getDescription();
}
return null;
}
@@ -165,14 +165,14 @@
if (!(R4EUIModelController.isDialogOpen())) {
try {
final String currentUser = R4EUIModelController.getReviewer();
- if (((R4EUIAnomaly)getElement()).getAnomaly().getUser().getId().equals(currentUser)) {
+ if (((R4EUIAnomalyBasic)getElement()).getAnomaly().getUser().getId().equals(currentUser)) {
if (ANOMALY_TITLE_ID.equals(aId)) {
- final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(((R4EUIAnomaly)getElement()).getAnomaly(), currentUser);
- ((R4EUIAnomaly)getElement()).getAnomaly().setTitle((String) aValue);
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(((R4EUIAnomalyBasic)getElement()).getAnomaly(), currentUser);
+ ((R4EUIAnomalyBasic)getElement()).getAnomaly().setTitle((String) aValue);
R4EUIModelController.FResourceUpdater.checkIn(bookNum);
} else if (ANOMALY_DESCRIPTION_ID.equals(aId)) {
- final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(((R4EUIAnomaly)getElement()).getAnomaly(), currentUser);
- ((R4EUIAnomaly)getElement()).getAnomaly().setDescription((String) aValue);
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(((R4EUIAnomalyBasic)getElement()).getAnomaly(), currentUser);
+ ((R4EUIAnomalyBasic)getElement()).getAnomaly().setDescription((String) aValue);
R4EUIModelController.FResourceUpdater.checkIn(bookNum);
}
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/CommentProperties.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/CommentProperties.java
similarity index 98%
rename from org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/CommentProperties.java
rename to org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/CommentProperties.java
index 524e1b3..967ca99 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/CommentProperties.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/CommentProperties.java
@@ -15,7 +15,7 @@
*
******************************************************************************/
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
+package org.eclipse.mylyn.reviews.r4e.ui.properties.general;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/FileContextProperties.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/FileContextProperties.java
similarity index 98%
rename from org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/FileContextProperties.java
rename to org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/FileContextProperties.java
index 00a597f..e5e9133 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/FileContextProperties.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/FileContextProperties.java
@@ -15,7 +15,7 @@
*
******************************************************************************/
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
+package org.eclipse.mylyn.reviews.r4e.ui.properties.general;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIFileContext;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelElement;
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/FileVersionSourceProperties.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/FileVersionSourceProperties.java
similarity index 98%
rename from org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/FileVersionSourceProperties.java
rename to org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/FileVersionSourceProperties.java
index 84432de..c4d23f1 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/FileVersionSourceProperties.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/FileVersionSourceProperties.java
@@ -17,7 +17,7 @@
*
*******************************************************************************/
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
+package org.eclipse.mylyn.reviews.r4e.ui.properties.general;
import org.eclipse.core.resources.IResource;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion;
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ModelElementProperties.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/ModelElementProperties.java
similarity index 98%
rename from org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ModelElementProperties.java
rename to org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/ModelElementProperties.java
index 04c0ff7..a97119f 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ModelElementProperties.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/ModelElementProperties.java
@@ -15,7 +15,7 @@
*
******************************************************************************/
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
+package org.eclipse.mylyn.reviews.r4e.ui.properties.general;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelElement;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/ParticipantProperties.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/ParticipantProperties.java
new file mode 100644
index 0000000..13ca7c5
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/ParticipantProperties.java
@@ -0,0 +1,206 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class encapsulates the properties for the Participant UI model element
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+
+package org.eclipse.mylyn.reviews.r4e.ui.properties.general;
+
+import java.util.Date;
+import java.util.Map.Entry;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EComment;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelElement;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIParticipant;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
+import org.eclipse.ui.views.properties.IPropertyDescriptor;
+import org.eclipse.ui.views.properties.PropertyDescriptor;
+import org.eclipse.ui.views.properties.TextPropertyDescriptor;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class ParticipantProperties extends ModelElementProperties {
+
+ // ------------------------------------------------------------------------
+ // Constants
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field PARTICIPANT_ID. (value is ""participantElement.id"")
+ */
+ protected static final String PARTICIPANT_ID = "participantElement.id";
+
+ /**
+ * Field PARTICIPANT_PROPERTY_DESCRIPTOR.
+ */
+ protected static final PropertyDescriptor PARTICIPANT_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
+ PARTICIPANT_ID, R4EUIConstants.ID_LABEL);
+
+ /**
+ * Field PARTICIPANT_NUM_ITEMS_ID. (value is ""participantElement.numItems"")
+ */
+ protected static final String PARTICIPANT_NUM_ITEMS_ID = "participantElement.numItems";
+
+ /**
+ * Field PARTICIPANT_NUM_ITEMS_PROPERTY_DESCRIPTOR.
+ */
+ protected static final PropertyDescriptor PARTICIPANT_NUM_ITEMS_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
+ PARTICIPANT_NUM_ITEMS_ID, R4EUIConstants.NUM_ITEMS_LABEL);
+
+ /**
+ * Field PARTICIPANT_NUM_ANOMALIES_ID. (value is ""participantElement.numAnomalies"")
+ */
+ protected static final String PARTICIPANT_NUM_ANOMALIES_ID = "participantElement.numAnomalies";
+
+ /**
+ * Field PARTICIPANT_NUM_ANOMALIES_PROPERTY_DESCRIPTOR.
+ */
+ protected static final PropertyDescriptor PARTICIPANT_NUM_ANOMALIES_PROPERTY_DESCR = new PropertyDescriptor(
+ PARTICIPANT_NUM_ANOMALIES_ID, R4EUIConstants.NUM_ANOMALIES_LABEL);
+
+ /**
+ * Field PARTICIPANT_NUM_COMMENTS_ID. (value is ""participantElement.numComments"")
+ */
+ protected static final String PARTICIPANT_NUM_COMMENTS_ID = "participantElement.numComments";
+
+ /**
+ * Field PARTICIPANT_NUM_COMMENTS_PROPERTY_DESCRIPTOR.
+ */
+ protected static final PropertyDescriptor PARTICIPANT_NUM_COMMENTS_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
+ PARTICIPANT_NUM_COMMENTS_ID, R4EUIConstants.NUM_COMMENTS_LABEL);
+
+ /**
+ * Field PARTICIPANT_TIME_SPENT_ID. (value is ""participantElement.timeSpent"")
+ */
+ protected static final String PARTICIPANT_TIME_SPENT_ID = "participantElement.timeSpent";
+
+ /**
+ * Field PARTICIPANT_TIME_SPENT_PROPERTY_DESCRIPTOR.
+ */
+ protected static final PropertyDescriptor PARTICIPANT_TIME_SPENT_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
+ PARTICIPANT_TIME_SPENT_ID, R4EUIConstants.TIME_SPENT_TOTAL_LABEL);
+
+ /**
+ * Field PARTICIPANT_ROLES_ID. (value is ""participantElement.roles"")
+ */
+ private static final String PARTICIPANT_ROLES_ID = "participantElement.roles";
+
+ /**
+ * Field PARTICIPANT_ROLES_PROPERTY_DESCRIPTOR.
+ */
+ private static final PropertyDescriptor PARTICIPANT_ROLES_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
+ PARTICIPANT_ROLES_ID, R4EUIConstants.ROLES_LABEL);
+
+ /**
+ * Field PARTICIPANT_FOCUS_AREA_ID. (value is ""participantElement.focusArea"")
+ */
+ private static final String PARTICIPANT_FOCUS_AREA_ID = "participantElement.focusArea";
+
+ /**
+ * Field PARTICIPANT_FOCUS_AREA_PROPERTY_DESCRIPTOR.
+ */
+ private static final TextPropertyDescriptor PARTICIPANT_FOCUS_AREA_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ PARTICIPANT_FOCUS_AREA_ID, R4EUIConstants.FOCUS_AREA_LABEL);
+
+ /**
+ * Field DESCRIPTORS.
+ */
+ private static final IPropertyDescriptor[] DESCRIPTORS = { PARTICIPANT_PROPERTY_DESCRIPTOR,
+ PARTICIPANT_NUM_ITEMS_PROPERTY_DESCRIPTOR, PARTICIPANT_NUM_ANOMALIES_PROPERTY_DESCR,
+ PARTICIPANT_NUM_COMMENTS_PROPERTY_DESCRIPTOR, PARTICIPANT_TIME_SPENT_PROPERTY_DESCRIPTOR,
+ PARTICIPANT_ROLES_PROPERTY_DESCRIPTOR, PARTICIPANT_FOCUS_AREA_PROPERTY_DESCRIPTOR};
+
+
+ // ------------------------------------------------------------------------
+ // Constructors
+ // ------------------------------------------------------------------------
+
+ /**
+ * Constructor for ParticipantProperties.
+ * @param aElement R4EUIModelElement
+ */
+ public ParticipantProperties(R4EUIModelElement aElement) {
+ super(aElement);
+ }
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * Method getPropertyDescriptors.
+ * @return IPropertyDescriptor[]
+ * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
+ */
+ @Override
+ public IPropertyDescriptor[] getPropertyDescriptors() {
+ return DESCRIPTORS;
+ }
+
+ /**
+ * Method getPropertyValue.
+ * @param aId Object
+ * @return Object
+ * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(Object)
+ */
+
+ @Override
+ public Object getPropertyValue(Object aId) {
+ if (PARTICIPANT_ID.equals(aId)) {
+ return ((R4EUIParticipant)getElement()).getParticipant().getId();
+ } else if (PARTICIPANT_NUM_ITEMS_ID.equals(aId)) {
+ return Integer.valueOf(((R4EUIParticipant)getElement()).getParticipant().getAddedItems().size());
+ } else if (PARTICIPANT_NUM_ANOMALIES_ID.equals(aId)) {
+ int numAnomalies = 0;
+ final EList<R4EComment> comments = ((R4EUIParticipant)getElement()).getParticipant().getAddedComments();
+ final int commentsSize = comments.size();
+ for (int i = 0; i < commentsSize; i++) {
+ if (comments.get(i) instanceof R4EAnomaly) {
+ ++numAnomalies;
+ }
+ }
+ return Integer.valueOf(numAnomalies);
+ } else if (PARTICIPANT_NUM_COMMENTS_ID.equals(aId)) {
+ int numComments = 0;
+ final EList<R4EComment> comments = ((R4EUIParticipant)getElement()).getParticipant().getAddedComments();
+ final int commentsSize = comments.size();
+ for (int i = 0; i < commentsSize; i++) {
+ if (!(comments.get(i) instanceof R4EAnomaly)) {
+ ++numComments;
+ }
+ }
+ return Integer.valueOf(numComments);
+ } else if (PARTICIPANT_TIME_SPENT_ID.equals(aId)) {
+ final R4EParticipant modelUser = ((R4EUIParticipant)getElement()).getParticipant();
+ final int numTimeEntries = modelUser.getTimeLog().size();
+ int totalTimeSpent = 0;
+ for (int i = 0; i < numTimeEntries; i++) {
+ Entry<Date, Integer> timeEntry = modelUser.getTimeLog().get(i);
+ totalTimeSpent +=timeEntry.getValue().intValue();
+ }
+ return Integer.toString(totalTimeSpent);
+ } else if (PARTICIPANT_ROLES_ID.equals(aId)) {
+ return ((R4EUIParticipant)getElement()).getParticipant().getRoles();
+ } else if (PARTICIPANT_FOCUS_AREA_ID.equals(aId)) {
+ return ((R4EUIParticipant)getElement()).getParticipant().getFocusArea() ;
+ }
+ return null;
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/R4EPropertiesView.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/R4EPropertiesView.java
similarity index 95%
rename from org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/R4EPropertiesView.java
rename to org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/R4EPropertiesView.java
index d728d82..a2d95cb 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/R4EPropertiesView.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/R4EPropertiesView.java
@@ -16,7 +16,7 @@
*
******************************************************************************/
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
+package org.eclipse.mylyn.reviews.r4e.ui.properties.general;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.views.properties.PropertySheet;
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ReviewGroupProperties.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/ReviewGroupProperties.java
similarity index 63%
rename from org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ReviewGroupProperties.java
rename to org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/ReviewGroupProperties.java
index e1c5f5d..6804e43 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ReviewGroupProperties.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/ReviewGroupProperties.java
@@ -15,7 +15,7 @@
*
******************************************************************************/
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
+package org.eclipse.mylyn.reviews.r4e.ui.properties.general;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
@@ -41,41 +41,76 @@
/**
* Field GROUP_NAME_ID. (value is ""reviewGroupElement.name"")
*/
- private static final String GROUP_NAME_ID = "reviewGroupElement.name";
+ protected static final String GROUP_NAME_ID = "reviewGroupElement.name";
/**
* Field GROUP_NAME_PROPERTY_DESCRIPTOR.
*/
- private static final TextPropertyDescriptor GROUP_NAME_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ protected static final TextPropertyDescriptor GROUP_NAME_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
GROUP_NAME_ID, R4EUIConstants.NAME_LABEL);
/**
* Field GROUP_FOLDER_ID. (value is ""reviewGroupElement.folderName"")
*/
- private static final String GROUP_FOLDER_ID = "reviewGroupElement.folderName";
+ protected static final String GROUP_FOLDER_ID = "reviewGroupElement.folderName";
/**
* Field GROUP_FOLDER_PROPERTY_DESCRIPTOR.
*/
- private static final PropertyDescriptor GROUP_FOLDER_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
+ protected static final PropertyDescriptor GROUP_FOLDER_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
GROUP_FOLDER_ID, R4EUIConstants.FOLDER_LABEL);
/**
* Field GROUP_DESCRIPTION_ID. (value is ""reviewGroupElement.description"")
*/
- private static final String GROUP_DESCRIPTION_ID = "reviewGroupElement.description";
+ protected static final String GROUP_DESCRIPTION_ID = "reviewGroupElement.description";
/**
* Field GROUP_NAME_PROPERTY_DESCRIPTOR.
*/
- private static final TextPropertyDescriptor GROUP_DESCRIPTION_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ protected static final TextPropertyDescriptor GROUP_DESCRIPTION_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
GROUP_DESCRIPTION_ID, R4EUIConstants.DESCRIPTION_LABEL);
/**
+ * Field GROUP_AVAILABLE_PROJECTS_ID. (value is ""reviewGroupElement.availableProjects"")
+ */
+ private static final String GROUP_AVAILABLE_PROJECTS_ID = "reviewGroupElement.availableProjects";
+
+ /**
+ * Field GROUP_AVAILABLE_PROJECTS_PROPERTY_DESCRIPTOR.
+ */
+ private static final TextPropertyDescriptor GROUP_AVAILABLE_PROJECTS_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ GROUP_AVAILABLE_PROJECTS_ID, R4EUIConstants.AVAILABLE_PROJECTS_LABEL);
+
+ /**
+ * Field GROUP_AVAILABLE_COMPONENTS_ID. (value is ""reviewGroupElement.availableComponents"")
+ */
+ private static final String GROUP_AVAILABLE_COMPONENTS_ID = "reviewGroupElement.availableComponents";
+
+ /**
+ * Field GROUP_AVAILABLE_COMPONENTS_PROPERTY_DESCRIPTOR.
+ */
+ private static final TextPropertyDescriptor GROUP_AVAILABLE_COMPONENTS_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ GROUP_AVAILABLE_COMPONENTS_ID, R4EUIConstants.AVAILABLE_COMPONENTS_LABEL);
+
+ /**
+ * Field GROUP_DEFAULT_ENTRY_CRITERIA_ID. (value is ""reviewGroupElement.defaultEntryCriteria"")
+ */
+ private static final String GROUP_DEFAULT_ENTRY_CRITERIA_ID = "reviewGroupElement.defaultEntryCriteria";
+
+ /**
+ * Field GROUP_DEFAULT_ENTRY_CRITERIA_PROPERTY_DESCRIPTOR.
+ */
+ private static final TextPropertyDescriptor GROUP_DEFAULT_ENTRY_CRITERIA_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ GROUP_DEFAULT_ENTRY_CRITERIA_ID, R4EUIConstants.DEFAULT_ENTRY_CRITERIA_LABEL);
+
+ /**
* Field DESCRIPTORS.
*/
private static final IPropertyDescriptor[] DESCRIPTORS = { GROUP_NAME_PROPERTY_DESCRIPTOR,
- GROUP_FOLDER_PROPERTY_DESCRIPTOR, GROUP_DESCRIPTION_PROPERTY_DESCRIPTOR };
+ GROUP_FOLDER_PROPERTY_DESCRIPTOR, GROUP_DESCRIPTION_PROPERTY_DESCRIPTOR,
+ GROUP_AVAILABLE_PROJECTS_PROPERTY_DESCRIPTOR, GROUP_AVAILABLE_COMPONENTS_PROPERTY_DESCRIPTOR,
+ GROUP_DEFAULT_ENTRY_CRITERIA_PROPERTY_DESCRIPTOR };
// ------------------------------------------------------------------------
@@ -120,6 +155,12 @@
return ((R4EUIReviewGroup)getElement()).getGroup().getFolder();
} else if (GROUP_DESCRIPTION_ID.equals(aId)) {
return ((R4EUIReviewGroup)getElement()).getGroup().getDescription();
+ } else if (GROUP_AVAILABLE_PROJECTS_ID.equals(aId)) {
+ return ((R4EUIReviewGroup)getElement()).getGroup().getAvailableProjects().toString();
+ } else if (GROUP_AVAILABLE_COMPONENTS_ID.equals(aId)) {
+ return ((R4EUIReviewGroup)getElement()).getGroup().getAvailableComponents().toString();
+ } else if (GROUP_DEFAULT_ENTRY_CRITERIA_ID.equals(aId)) {
+ return ((R4EUIReviewGroup)getElement()).getGroup().getDefaultEntryCriteria();
}
}
return null;
@@ -135,12 +176,7 @@
public void setPropertyValue(Object aId, Object aValue) { // $codepro.audit.disable emptyMethod
if (!(R4EUIModelController.isDialogOpen()) && getElement().isOpen()) {
try {
- if (GROUP_NAME_ID.equals(aId)) {
- final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(((R4EUIReviewGroup)getElement()).getGroup(),
- R4EUIModelController.getReviewer());
- ((R4EUIReviewGroup)getElement()).getGroup().setName((String) aValue);
- R4EUIModelController.FResourceUpdater.checkIn(bookNum);
- } else if (GROUP_DESCRIPTION_ID.equals(aId)) {
+ if (GROUP_DESCRIPTION_ID.equals(aId)) {
final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(((R4EUIReviewGroup)getElement()).getGroup(),
R4EUIModelController.getReviewer());
((R4EUIReviewGroup)getElement()).getGroup().setDescription((String) aValue);
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ReviewItemProperties.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/ReviewItemProperties.java
similarity index 96%
rename from org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ReviewItemProperties.java
rename to org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/ReviewItemProperties.java
index 43a5994..5dbaea8 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ReviewItemProperties.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/ReviewItemProperties.java
@@ -15,7 +15,7 @@
*
******************************************************************************/
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
+package org.eclipse.mylyn.reviews.r4e.ui.properties.general;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelElement;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIReviewItem;
@@ -53,7 +53,7 @@
* Field REVIEW_ITEM_PROJECT_PROPERTY_DESCRIPTOR.
*/
private static final PropertyDescriptor REVIEW_ITEM_PROJECT_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
- REVIEW_ITEM_PROJECT_ID, R4EUIConstants.PROJECT_ID_LABEL);
+ REVIEW_ITEM_PROJECT_ID, R4EUIConstants.PROJECT_LABEL);
/**
* Field REVIEW_ITEM_DESCRIPTION_ID. (value is ""reviewItemElement.description"")
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/ReviewProperties.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/ReviewProperties.java
new file mode 100644
index 0000000..7ac7273
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/ReviewProperties.java
@@ -0,0 +1,239 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class encapsulates the properties for the Review UI model element
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+
+package org.eclipse.mylyn.reviews.r4e.ui.properties.general;
+
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelElement;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIReview;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.UIUtils;
+import org.eclipse.ui.views.properties.IPropertyDescriptor;
+import org.eclipse.ui.views.properties.PropertyDescriptor;
+import org.eclipse.ui.views.properties.TextPropertyDescriptor;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class ReviewProperties extends ModelElementProperties {
+
+ // ------------------------------------------------------------------------
+ // Constants
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field REVIEW_NAME_ID. (value is ""reviewElement.name"")
+ */
+ protected static final String REVIEW_NAME_ID = "reviewElement.name";
+
+ /**
+ * Field REVIEW_NAME_PROPERTY_DESCRIPTOR.
+ */
+ protected static final TextPropertyDescriptor REVIEW_NAME_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ REVIEW_NAME_ID, R4EUIConstants.NAME_LABEL);
+
+ /**
+ * Field REVIEW_START_DATE_ID. (value is ""reviewElement.startDate"")
+ */
+ protected static final String REVIEW_START_DATE_ID = "reviewElement.startDate";
+
+ /**
+ * Field REVIEW_START_DATE_PROPERTY_DESCRIPTOR.
+ */
+ protected static final PropertyDescriptor REVIEW_START_DATE_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
+ REVIEW_START_DATE_ID, R4EUIConstants.START_DATE_LABEL);
+
+ /**
+ * Field REVIEW_END_DATE_ID. (value is ""reviewElement.endDate"")
+ */
+ protected static final String REVIEW_END_DATE_ID = "reviewElement.endDate";
+
+ /**
+ * Field REVIEW_END_DATE_PROPERTY_DESCRIPTOR.
+ */
+ protected static final PropertyDescriptor REVIEW_END_DATE_PROPERTY_DESCRIPTOR = new PropertyDescriptor(
+ REVIEW_END_DATE_ID, R4EUIConstants.END_DATE_LABEL);
+
+ /**
+ * Field REVIEW_DESCRIPTION_ID. (value is ""reviewElement.description"")
+ */
+ protected static final String REVIEW_DESCRIPTION_ID = "reviewElement.description";
+
+ /**
+ * Field REVIEW_DESCRIPTION_PROPERTY_DESCRIPTOR.
+ */
+ protected static final TextPropertyDescriptor REVIEW_DESCRIPTION_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ REVIEW_DESCRIPTION_ID, R4EUIConstants.DESCRIPTION_LABEL);
+
+ /**
+ * Field REVIEW_PROJECT_ID. (value is ""reviewElement.project"")
+ */
+ private static final String REVIEW_PROJECT_ID = "reviewElement.project";
+
+ /**
+ * Field REVIEW_PROJECT_PROPERTY_DESCRIPTOR.
+ */
+ private static final TextPropertyDescriptor REVIEW_PROJECT_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ REVIEW_PROJECT_ID, R4EUIConstants.PROJECT_LABEL);
+
+ /**
+ * Field REVIEW_COMPONENTS_ID. (value is ""reviewElement.components"")
+ */
+ private static final String REVIEW_COMPONENTS_ID = "reviewElement.components";
+
+ /**
+ * Field REVIEW_COMPONENTS_PROPERTY_DESCRIPTOR.
+ */
+ private static final TextPropertyDescriptor REVIEW_COMPONENTS_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ REVIEW_COMPONENTS_ID, R4EUIConstants.COMPONENTS_LABEL);
+
+ /**
+ * Field REVIEW_ENTRY_CRITERIA_ID. (value is ""reviewElement.entryCriteria"")
+ */
+ private static final String REVIEW_ENTRY_CRITERIA_ID = "reviewElement.entryCriteria";
+
+ /**
+ * Field REVIEW_ENTRY_CRITERIA_PROPERTY_DESCRIPTOR.
+ */
+ private static final TextPropertyDescriptor REVIEW_ENTRY_CRITERIA_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ REVIEW_ENTRY_CRITERIA_ID, R4EUIConstants.ENTRY_CRITERIA_LABEL);
+
+ /**
+ * Field REVIEW_OBJECTIVES_ID. (value is ""reviewElement.objectives"")
+ */
+ private static final String REVIEW_OBJECTIVES_ID = "reviewElement.objectives";
+
+ /**
+ * Field REVIEW_OBJECTIVES_PROPERTY_DESCRIPTOR.
+ */
+ private static final TextPropertyDescriptor REVIEW_OBJECTIVES_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ REVIEW_OBJECTIVES_ID, R4EUIConstants.OBJECTIVES_LABEL);
+
+ /**
+ * Field REVIEW_REFERENCE_MATERIAL_ID. (value is ""reviewElement.referenceMaterial"")
+ */
+ private static final String REVIEW_REFERENCE_MATERIAL_ID = "reviewElement.referenceMaterial";
+
+ /**
+ * Field REVIEW_REFERENCE_MATERIAL_PROPERTY_DESCRIPTOR.
+ */
+ private static final TextPropertyDescriptor REVIEW_REFERENCE_MATERIAL_PROPERTY_DESCRIPTOR = new TextPropertyDescriptor(
+ REVIEW_REFERENCE_MATERIAL_ID, R4EUIConstants.REFERENCE_MATERIAL_LABEL);
+
+ /**
+ * Field DESCRIPTORS.
+ */
+ private static final IPropertyDescriptor[] DESCRIPTORS = { REVIEW_NAME_PROPERTY_DESCRIPTOR,
+ REVIEW_START_DATE_PROPERTY_DESCRIPTOR, REVIEW_END_DATE_PROPERTY_DESCRIPTOR,
+ REVIEW_DESCRIPTION_PROPERTY_DESCRIPTOR, REVIEW_PROJECT_PROPERTY_DESCRIPTOR,
+ REVIEW_COMPONENTS_PROPERTY_DESCRIPTOR, REVIEW_ENTRY_CRITERIA_PROPERTY_DESCRIPTOR,
+ REVIEW_OBJECTIVES_PROPERTY_DESCRIPTOR, REVIEW_REFERENCE_MATERIAL_PROPERTY_DESCRIPTOR};
+
+
+ // ------------------------------------------------------------------------
+ // Constructors
+ // ------------------------------------------------------------------------
+
+ /**
+ * Constructor for ReviewGeneralProperties.
+ * @param aElement R4EUIModelElement
+ */
+ public ReviewProperties(R4EUIModelElement aElement) {
+ super(aElement);
+ }
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * Method getPropertyDescriptors.
+ * @return IPropertyDescriptor[]
+ * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
+ */
+
+ @Override
+ public IPropertyDescriptor[] getPropertyDescriptors() {
+ return DESCRIPTORS;
+ }
+
+ /**
+ * Method getPropertyValue.
+ * @param aId Object
+ * @return Object
+ * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(Object)
+ */
+ @Override
+ public Object getPropertyValue(Object aId) {
+ if (null != getElement()) {
+ if (REVIEW_NAME_ID.equals(aId)) {
+ return ((R4EUIReview)getElement()).getReview().getName();
+ } else if (REVIEW_START_DATE_ID.equals(aId)) {
+ return ((R4EUIReview)getElement()).getReview().getStartDate().toString();
+ } else if (REVIEW_END_DATE_ID.equals(aId)) {
+ if (null == ((R4EUIReview)getElement()).getReview().getEndDate()) return R4EUIConstants.IN_PROGRESS_MSG;
+ return ((R4EUIReview)getElement()).getReview().getEndDate().toString();
+ } else if (REVIEW_DESCRIPTION_ID.equals(aId)) {
+ return ((R4EUIReview)getElement()).getReview().getExtraNotes();
+ } else if (REVIEW_PROJECT_ID.equals(aId)) {
+ return ((R4EUIReview)getElement()).getReview().getProject();
+ } else if (REVIEW_COMPONENTS_ID.equals(aId)) {
+ return ((R4EUIReview)getElement()).getReview().getComponents().toString();
+ } else if (REVIEW_ENTRY_CRITERIA_ID.equals(aId)) {
+ return ((R4EUIReview)getElement()).getReview().getEntryCriteria();
+ } else if (REVIEW_OBJECTIVES_ID.equals(aId)) {
+ return ((R4EUIReview)getElement()).getReview().getObjectives();
+ } else if (REVIEW_REFERENCE_MATERIAL_ID.equals(aId)) {
+ return ((R4EUIReview)getElement()).getReview().getReferenceMaterial();
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Method setPropertyValue.
+ * @param aId Object
+ * @param aValue Object
+ * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(Object, Object)
+ */
+ @Override
+ public void setPropertyValue(Object aId, Object aValue) { // $codepro.audit.disable emptyMethod
+ if (!(R4EUIModelController.isDialogOpen()) && getElement().isOpen() && !getElement().isReviewed()) {
+ try {
+ if (REVIEW_NAME_ID.equals(aId)) {
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(((R4EUIReview)getElement()).getReview(),
+ R4EUIModelController.getReviewer());
+ ((R4EUIReview)getElement()).getReview().setName((String) aValue);
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ } else if (REVIEW_DESCRIPTION_ID.equals(aId)) {
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(((R4EUIReview)getElement()).getReview(),
+ R4EUIModelController.getReviewer());
+ ((R4EUIReview)getElement()).getReview().setExtraNotes((String) aValue);
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ }
+ } catch (ResourceHandlingException e) {
+ UIUtils.displayResourceErrorDialog(e);
+ } catch (OutOfSyncException e) {
+ UIUtils.displaySyncErrorDialog(e);
+ }
+ }
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/SelectionProperties.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/SelectionProperties.java
similarity index 97%
rename from org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/SelectionProperties.java
rename to org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/SelectionProperties.java
index 1cc75dc..84a18e6 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/SelectionProperties.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/general/SelectionProperties.java
@@ -15,7 +15,7 @@
*
******************************************************************************/
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
+package org.eclipse.mylyn.reviews.r4e.ui.properties.general;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelElement;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUISelection;
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/AnomalyExtraTabPropertySection.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/AnomalyExtraTabPropertySection.java
new file mode 100644
index 0000000..2e0842a
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/AnomalyExtraTabPropertySection.java
@@ -0,0 +1,552 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class implements the tabbed property section for the Anomaly Extended
+ * model element
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+
+package org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.window.Window;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentType;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.Persistence.RModelFactoryExt;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
+import org.eclipse.mylyn.reviews.r4e.ui.dialogs.CalendarDialog;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomalyExtended;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.UIUtils;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class AnomalyExtraTabPropertySection extends ModelElementTabPropertySection {
+
+ // ------------------------------------------------------------------------
+ // Member variables
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field fStateCombo.
+ */
+ protected CCombo fStateCombo = null;
+
+ /**
+ * Field fClassCombo.
+ */
+ protected CCombo fClassCombo = null;
+
+ /**
+ * Field fRankCombo.
+ */
+ protected CCombo fRankCombo = null;
+
+ /**
+ * Field fDateText.
+ */
+ protected Text fDateText = null;
+
+ /**
+ * Field fCalendarButton.
+ */
+ protected Button fCalendarButton = null;
+
+ /**
+ * Field fRankCombo.
+ */
+ protected CCombo fDecidedByCombo = null;
+
+ /**
+ * Field fRankCombo.
+ */
+ protected CCombo fFixedByCombo = null;
+
+ /**
+ * Field fRankCombo.
+ */
+ protected CCombo fFollowUpByCombo = null;
+
+ /**
+ * Field fNotAcceptedReasonText.
+ */
+ protected Text fNotAcceptedReasonText = null;
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+
+ /**
+ * Method shouldUseExtraSpace.
+ * @return boolean
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#shouldUseExtraSpace()
+ */
+ @Override
+ public boolean shouldUseExtraSpace() {
+ return true;
+ }
+
+ /**
+ * Method createControls.
+ * @param parent Composite
+ * @param aTabbedPropertySheetPage TabbedPropertySheetPage
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(Composite, TabbedPropertySheetPage)
+ */
+ @Override
+ public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
+ super.createControls(parent, aTabbedPropertySheetPage);
+
+ //Tell element to build its own detailed tab layout
+ final TabbedPropertySheetWidgetFactory widgetFactory = aTabbedPropertySheetPage.getWidgetFactory();
+ final Composite composite = widgetFactory.createFlatFormComposite(parent);
+ FormData data = null;
+
+ //State
+ fStateCombo = widgetFactory.createCCombo(composite, SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
+ fStateCombo.setLayoutData(data);
+ fStateCombo.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ if (!fRefreshInProgress) {
+ try {
+ final String currentUser = R4EUIModelController.getReviewer();
+ final R4EAnomaly modelAnomaly = ((R4EUIAnomalyExtended)fProperties.getElement()).getAnomaly();
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelAnomaly, currentUser);
+ modelAnomaly.setState(R4EUIAnomalyExtended.getStateFromString(fStateCombo.getText()));
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ } catch (ResourceHandlingException e1) {
+ UIUtils.displayResourceErrorDialog(e1);
+ } catch (OutOfSyncException e1) {
+ UIUtils.displaySyncErrorDialog(e1);
+ }
+ }
+ refresh();
+ }
+ public void widgetDefaultSelected(SelectionEvent e) { // $codepro.audit.disable emptyMethod
+ //No implementation needed
+ }
+ });
+
+ final CLabel stateLabel = widgetFactory.createCLabel(composite, R4EUIConstants.STATE_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fStateCombo, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fStateCombo, 0, SWT.CENTER);
+ stateLabel.setLayoutData(data);
+
+ //Class
+ fClassCombo = widgetFactory.createCCombo(composite, SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fStateCombo, ITabbedPropertyConstants.VSPACE);
+ fClassCombo.setLayoutData(data);
+ fClassCombo.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ if (!fRefreshInProgress) {
+ try {
+ final String currentUser = R4EUIModelController.getReviewer();
+ final R4EAnomaly modelAnomaly = ((R4EUIAnomalyExtended)fProperties.getElement()).getAnomaly();
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelAnomaly, currentUser);
+ final R4ECommentType type = RModelFactoryExt.eINSTANCE.createR4ECommentType();
+ type.setType(R4EUIAnomalyExtended.getClassFromString(fClassCombo.getText()));
+ modelAnomaly.setType(type);
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ } catch (ResourceHandlingException e1) {
+ UIUtils.displayResourceErrorDialog(e1);
+ } catch (OutOfSyncException e1) {
+ UIUtils.displaySyncErrorDialog(e1);
+ }
+ }
+ refresh();
+ }
+ public void widgetDefaultSelected(SelectionEvent e) { // $codepro.audit.disable emptyMethod
+ //No implementation needed
+ }
+ });
+
+ final CLabel classLabel = widgetFactory.createCLabel(composite, R4EUIConstants.CLASS_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fRankCombo, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fRankCombo, 0, SWT.CENTER);
+ classLabel.setLayoutData(data);
+
+ //Rank
+ fRankCombo = widgetFactory.createCCombo(composite, SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fStateCombo, ITabbedPropertyConstants.VSPACE);
+ fRankCombo.setLayoutData(data);
+ fRankCombo.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ if (!fRefreshInProgress) {
+ try {
+ final String currentUser = R4EUIModelController.getReviewer();
+ final R4EAnomaly modelAnomaly = ((R4EUIAnomalyExtended)fProperties.getElement()).getAnomaly();
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelAnomaly, currentUser);
+ modelAnomaly.setRank(R4EUIAnomalyExtended.getRankFromString(fClassCombo.getText()));
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ } catch (ResourceHandlingException e1) {
+ UIUtils.displayResourceErrorDialog(e1);
+ } catch (OutOfSyncException e1) {
+ UIUtils.displaySyncErrorDialog(e1);
+ }
+ }
+ refresh();
+ }
+ public void widgetDefaultSelected(SelectionEvent e) { // $codepro.audit.disable emptyMethod
+ //No implementation needed
+ }
+ });
+
+ final CLabel rankLabel = widgetFactory.createCLabel(composite, R4EUIConstants.RANK_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fRankCombo, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fRankCombo, 0, SWT.CENTER);
+ rankLabel.setLayoutData(data);
+
+ //Due Date
+ final Composite dateComposite = widgetFactory.createComposite(composite);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fRankCombo, ITabbedPropertyConstants.VSPACE);
+ dateComposite.setLayoutData(data);
+ dateComposite.setLayout(new GridLayout(2, false));
+
+ fDateText = widgetFactory.createText(dateComposite, "", SWT.READ_ONLY);
+ fDateText.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+ fDateText.setEditable(false);
+ fCalendarButton = widgetFactory.createButton(dateComposite, "...", SWT.NONE);
+ fCalendarButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
+ fCalendarButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ final CalendarDialog dialog = new CalendarDialog(R4EUIModelController.getNavigatorView(). // $codepro.audit.disable methodChainLength
+ getSite().getWorkbenchWindow().getShell());
+ final int result = dialog.open();
+ if (result == Window.OK) {
+ final SimpleDateFormat dateFormat = new SimpleDateFormat(R4EUIConstants.SIMPLE_DATE_FORMAT);
+ fDateText.setText(dateFormat.format(dialog.getDate()));
+ if (!fRefreshInProgress) {
+ try {
+ final String currentUser = R4EUIModelController.getReviewer();
+ final R4EAnomaly modelAnomaly = ((R4EUIAnomalyExtended)fProperties.getElement()).getAnomaly();
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelAnomaly, currentUser);
+ modelAnomaly.setDueDate(dialog.getDate());
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ } catch (ResourceHandlingException e1) {
+ UIUtils.displayResourceErrorDialog(e1);
+ } catch (OutOfSyncException e1) {
+ UIUtils.displaySyncErrorDialog(e1);
+ }
+ }
+ refresh();
+ }
+ }
+ public void widgetDefaultSelected(SelectionEvent e) { // $codepro.audit.disable emptyMethod
+ // No implementation needed
+ }
+ });
+
+ final CLabel dateLabel = widgetFactory.createCLabel(composite, R4EUIConstants.DUE_DATE_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(dateComposite, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(dateComposite, 0, SWT.CENTER);
+ dateLabel.setLayoutData(data);
+
+ //Decided by
+ fDecidedByCombo = widgetFactory.createCCombo(composite, SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(dateComposite, ITabbedPropertyConstants.VSPACE);
+ fDecidedByCombo.setLayoutData(data);
+ fDecidedByCombo.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ if (!fRefreshInProgress) {
+ try {
+ final String currentUser = R4EUIModelController.getReviewer();
+ final R4EAnomaly modelAnomaly = ((R4EUIAnomalyExtended)fProperties.getElement()).getAnomaly();
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelAnomaly, currentUser);
+ modelAnomaly.setDecidedByID(fDecidedByCombo.getText());
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ } catch (ResourceHandlingException e1) {
+ UIUtils.displayResourceErrorDialog(e1);
+ } catch (OutOfSyncException e1) {
+ UIUtils.displaySyncErrorDialog(e1);
+ }
+ }
+ refresh();
+ }
+ public void widgetDefaultSelected(SelectionEvent e) { // $codepro.audit.disable emptyMethod
+ //No implementation needed
+ }
+ });
+
+ final CLabel decidedByLabel = widgetFactory.createCLabel(composite, R4EUIConstants.DECIDED_BY_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fDecidedByCombo, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fDecidedByCombo, 0, SWT.CENTER);
+ decidedByLabel.setLayoutData(data);
+
+ //Fixed by
+ fFixedByCombo = widgetFactory.createCCombo(composite, SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fDecidedByCombo, ITabbedPropertyConstants.VSPACE);
+ fFixedByCombo.setLayoutData(data);
+ fFixedByCombo.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ if (!fRefreshInProgress) {
+ try {
+ final String currentUser = R4EUIModelController.getReviewer();
+ final R4EAnomaly modelAnomaly = ((R4EUIAnomalyExtended)fProperties.getElement()).getAnomaly();
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelAnomaly, currentUser);
+ modelAnomaly.setFixedByID(fFixedByCombo.getText());
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ } catch (ResourceHandlingException e1) {
+ UIUtils.displayResourceErrorDialog(e1);
+ } catch (OutOfSyncException e1) {
+ UIUtils.displaySyncErrorDialog(e1);
+ }
+ }
+ refresh();
+ }
+ public void widgetDefaultSelected(SelectionEvent e) { // $codepro.audit.disable emptyMethod
+ //No implementation needed
+ }
+ });
+
+ final CLabel fixedByLabel = widgetFactory.createCLabel(composite, R4EUIConstants.FIXED_BY_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fFixedByCombo, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fFixedByCombo, 0, SWT.CENTER);
+ fixedByLabel.setLayoutData(data);
+
+ //Folluw-up by
+ fFollowUpByCombo = widgetFactory.createCCombo(composite, SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fFixedByCombo, ITabbedPropertyConstants.VSPACE);
+ fFollowUpByCombo.setLayoutData(data);
+ fFollowUpByCombo.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ if (!fRefreshInProgress) {
+ try {
+ final String currentUser = R4EUIModelController.getReviewer();
+ final R4EAnomaly modelAnomaly = ((R4EUIAnomalyExtended)fProperties.getElement()).getAnomaly();
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelAnomaly, currentUser);
+ modelAnomaly.setFollowUpByID(fFollowUpByCombo.getText());
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ } catch (ResourceHandlingException e1) {
+ UIUtils.displayResourceErrorDialog(e1);
+ } catch (OutOfSyncException e1) {
+ UIUtils.displaySyncErrorDialog(e1);
+ }
+ }
+ refresh();
+ }
+ public void widgetDefaultSelected(SelectionEvent e) { // $codepro.audit.disable emptyMethod
+ //No implementation needed
+ }
+ });
+
+ final CLabel followUpByLabel = widgetFactory.createCLabel(composite, R4EUIConstants.FOLLOWUP_BY_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fFollowUpByCombo, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fFollowUpByCombo, 0, SWT.CENTER);
+ followUpByLabel.setLayoutData(data);
+
+ //Not accepted reason
+ fNotAcceptedReasonText = widgetFactory.createText(composite, "", SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fFollowUpByCombo, ITabbedPropertyConstants.VSPACE);
+ fNotAcceptedReasonText.setLayoutData(data);
+ fNotAcceptedReasonText.addFocusListener(new FocusListener() {
+ public void focusLost(FocusEvent e) {
+ if (!fRefreshInProgress) {
+ try {
+ final String currentUser = R4EUIModelController.getReviewer();
+ final R4EAnomaly modelAnomaly = ((R4EUIAnomalyExtended)fProperties.getElement()).getAnomaly();
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelAnomaly, currentUser);
+ modelAnomaly.setNotAcceptedReason(fNotAcceptedReasonText.getText());
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ } catch (ResourceHandlingException e1) {
+ UIUtils.displayResourceErrorDialog(e1);
+ } catch (OutOfSyncException e1) {
+ UIUtils.displaySyncErrorDialog(e1);
+ }
+ }
+ refresh();
+ }
+ public void focusGained(FocusEvent e) { // $codepro.audit.disable emptyMethod
+ //Nothing to do
+ }
+ });
+ UIUtils.addTabbedPropertiesTextResizeListener(fNotAcceptedReasonText);
+
+ final CLabel notAcceptedReasonLabel = widgetFactory.createCLabel(composite, R4EUIConstants.NOT_ACCEPTED_REASON_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fNotAcceptedReasonText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fNotAcceptedReasonText, 0, SWT.CENTER);
+ notAcceptedReasonLabel.setLayoutData(data);
+ }
+
+
+
+ /**
+ * Method refresh.
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
+ */
+ @Override
+ public void refresh() {
+ fRefreshInProgress = true;
+ final R4EUIAnomalyExtended uiModelAnomaly = (R4EUIAnomalyExtended)fProperties.getElement();
+ final R4EAnomaly modelAnomaly = uiModelAnomaly.getAnomaly();
+ final List<R4EParticipant> participants = R4EUIModelController.getActiveReview().getParticipants();
+ final List<String> participantsList = new ArrayList<String>();
+ for (R4EParticipant participant : participants) {
+ participantsList.add(participant.getId());
+ }
+ final String[] participantsStr = participantsList.toArray(new String[participantsList.size()]);
+ fStateCombo.setItems(uiModelAnomaly.getAvailableStates());
+ fStateCombo.select(uiModelAnomaly.mapStateToIndex(modelAnomaly.getState()));
+ fClassCombo.setItems(R4EUIAnomalyExtended.getClasses());
+ if (null != modelAnomaly.getType() && null != ((R4ECommentType)modelAnomaly.getType()).getType()) {
+ fClassCombo.select(((R4ECommentType)modelAnomaly.getType()).getType().getValue());
+ }
+ fRankCombo.setItems(R4EUIAnomalyExtended.getRanks());
+ fRankCombo.select(modelAnomaly.getRank().getValue());
+ if (null != modelAnomaly.getDueDate()) {
+ final SimpleDateFormat dateFormat = new SimpleDateFormat(R4EUIConstants.SIMPLE_DATE_FORMAT);
+ fDateText.setText(dateFormat.format(modelAnomaly.getDueDate()));
+ }
+ fDecidedByCombo.setItems(participantsStr);
+ fDecidedByCombo.select(uiModelAnomaly.mapParticipantToIndex(modelAnomaly.getDecidedByID()));
+ fFixedByCombo.setItems(participantsStr);
+ fFixedByCombo.select(uiModelAnomaly.mapParticipantToIndex(modelAnomaly.getFixedByID()));
+ fFollowUpByCombo.setItems(participantsStr);
+ fFollowUpByCombo.select(uiModelAnomaly.mapParticipantToIndex(modelAnomaly.getFollowUpByID()));
+ if (null != modelAnomaly.getNotAcceptedReason()) fNotAcceptedReasonText.setText(modelAnomaly.getNotAcceptedReason());
+ setEnabledFields();
+ fRefreshInProgress = false;
+ }
+
+ /**
+ * Method setEditableFields.
+ */
+ @Override
+ protected void setEnabledFields() {
+ if (R4EUIModelController.isDialogOpen()) {
+ fStateCombo.setEnabled(false);
+ fClassCombo.setEnabled(false);
+ fRankCombo.setEnabled(false);
+ fDateText.setEnabled(false);
+ fCalendarButton.setEnabled(false);
+ fDecidedByCombo.setEnabled(false);
+ fFixedByCombo.setEnabled(false);
+ fFollowUpByCombo.setEnabled(false);
+ fNotAcceptedReasonText.setEnabled(false);
+ } else {
+ final R4EUIAnomalyExtended uiAnomaly = (R4EUIAnomalyExtended)fProperties.getElement();
+ fStateCombo.setEnabled(true);
+
+ if (uiAnomaly.isClassEnabled()) {
+ fClassCombo.setEnabled(true);
+ } else {
+ fClassCombo.setEnabled(false);
+ }
+
+ if (uiAnomaly.isRankEnabled()) {
+ fRankCombo.setEnabled(true);
+ } else {
+ fRankCombo.setEnabled(false);
+ }
+
+ if (uiAnomaly.isDueDateEnabled()) {
+ fDateText.setEnabled(true);
+ fCalendarButton.setEnabled(true);
+ } else {
+ fDateText.setEnabled(false);
+ }
+
+ if (uiAnomaly.isDecidedByEnabled()) {
+ fDecidedByCombo.setEnabled(true);
+ } else {
+ fDecidedByCombo.setEnabled(false);
+ }
+
+ if (uiAnomaly.isFixedByEnabled()) {
+ fFixedByCombo.setEnabled(true);
+ } else {
+ fFixedByCombo.setEnabled(false);
+ }
+
+ if (uiAnomaly.isFollowUpByEnabled()) {
+ fFollowUpByCombo.setEnabled(true);
+ } else {
+ fFollowUpByCombo.setEnabled(false);
+ }
+
+ if (uiAnomaly.isNotAcceptedReasonEnabled()) {
+ fNotAcceptedReasonText.setEnabled(true);
+ fNotAcceptedReasonText.setEditable(true);
+ }
+ else {
+ fNotAcceptedReasonText.setEnabled(false);
+ }
+ }
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/AnomalyGeneralTabPropertySection.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/AnomalyGeneralTabPropertySection.java
new file mode 100644
index 0000000..481832d
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/AnomalyGeneralTabPropertySection.java
@@ -0,0 +1,270 @@
+// $codepro.audit.disable com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.alwaysOverridetoString.alwaysOverrideToString, staticFieldSecurity, com.instantiations.assist.eclipse.analysis.deserializeabilitySecurity, com.instantiations.assist.eclipse.analysis.enforceCloneableUsageSecurity, com.instantiations.assist.eclipse.analysis.instanceFieldSecurity
+/*******************************************************************************
+ * Copyright (c) 2010 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class implements the tabbed property section for the Anomaly model element
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+
+package org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed;
+
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
+import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIPosition;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIAnomalyBasic;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.UIUtils;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class AnomalyGeneralTabPropertySection extends ModelElementTabPropertySection {
+
+ // ------------------------------------------------------------------------
+ // Member variables
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field fPosition.
+ */
+ private IR4EUIPosition fPosition;
+
+ /**
+ * Field FTitleText.
+ */
+ protected Text fTitleText = null;
+
+ /**
+ * Field FAuthorText.
+ */
+ protected Text fAuthorText = null;
+
+ /**
+ * Field FCreationDateText.
+ */
+ protected Text fCreationDateText = null;
+
+ /**
+ * Field FPositionText.
+ */
+ protected Text fPositionText = null;
+
+ /**
+ * Field FDescriptionText.
+ */
+ protected Text fDescriptionText = null;
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * Method shouldUseExtraSpace.
+ * @return boolean
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#shouldUseExtraSpace()
+ */
+ @Override
+ public boolean shouldUseExtraSpace() {
+ return true;
+ }
+
+ /**
+ * Method createControls.
+ * @param parent Composite
+ * @param aTabbedPropertySheetPage TabbedPropertySheetPage
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(Composite, TabbedPropertySheetPage)
+ */
+ @Override
+ public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
+ super.createControls(parent, aTabbedPropertySheetPage);
+
+ //Tell element to build its own detailed tab layout
+ final TabbedPropertySheetWidgetFactory widgetFactory = aTabbedPropertySheetPage.getWidgetFactory();
+ final Composite composite = widgetFactory.createFlatFormComposite(parent);
+ FormData data = null;
+
+ //Anomaly title
+ fTitleText = widgetFactory.createText(composite, "", SWT.MULTI);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
+ fTitleText.setLayoutData(data);
+ fTitleText.addFocusListener(new FocusListener() {
+ public void focusLost(FocusEvent e) {
+ if (!fRefreshInProgress) {
+ try {
+ final String currentUser = R4EUIModelController.getReviewer();
+ final R4EAnomaly modelAnomaly = ((R4EUIAnomalyBasic)fProperties.getElement()).getAnomaly();
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelAnomaly, currentUser);
+ modelAnomaly.setTitle(fTitleText.getText());
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ } catch (ResourceHandlingException e1) {
+ UIUtils.displayResourceErrorDialog(e1);
+ } catch (OutOfSyncException e1) {
+ UIUtils.displaySyncErrorDialog(e1);
+ }
+ }
+ }
+ public void focusGained(FocusEvent e) { // $codepro.audit.disable emptyMethod
+ //Nothing to do
+ }
+ });
+ UIUtils.addTabbedPropertiesTextResizeListener(fTitleText);
+
+ final CLabel titleLabel = widgetFactory.createCLabel(composite, R4EUIConstants.TITLE_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fTitleText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fTitleText, 0, SWT.CENTER);
+ titleLabel.setLayoutData(data);
+
+ //Anomaly Author (read-only)
+ fAuthorText = widgetFactory.createText(composite, "", SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fTitleText, ITabbedPropertyConstants.VSPACE);
+ fAuthorText.setLayoutData(data);
+
+ final CLabel authorLabel = widgetFactory.createCLabel(composite, R4EUIConstants.AUTHOR_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fAuthorText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fAuthorText, 0, SWT.CENTER);
+ authorLabel.setLayoutData(data);
+
+ //Anomaly Creation Date (read-only)
+ fCreationDateText = widgetFactory.createText(composite, "", SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fAuthorText, ITabbedPropertyConstants.VSPACE);
+ fCreationDateText.setLayoutData(data);
+
+ final CLabel creationDateLabel = widgetFactory.createCLabel(composite, R4EUIConstants.CREATION_DATE_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fCreationDateText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fCreationDateText, 0, SWT.CENTER);
+ creationDateLabel.setLayoutData(data);
+
+ //Anomaly position (read-only)
+ fPositionText = widgetFactory.createText(composite, "", SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fCreationDateText, ITabbedPropertyConstants.VSPACE);
+ fPositionText.setLayoutData(data);
+
+ final CLabel positionLabel = widgetFactory.createCLabel(composite, R4EUIConstants.POSITION_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fPositionText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fPositionText, 0, SWT.CENTER);
+ positionLabel.setLayoutData(data);
+
+ //Anomaly Description
+ fDescriptionText = widgetFactory.createText(composite, "", SWT.MULTI);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fPositionText, ITabbedPropertyConstants.VSPACE);
+ fDescriptionText.setLayoutData(data);
+ fDescriptionText.addFocusListener(new FocusListener() {
+ public void focusLost(FocusEvent e) {
+ if (!fRefreshInProgress) {
+ try {
+ final String currentUser = R4EUIModelController.getReviewer();
+ final R4EAnomaly modelAnomaly = ((R4EUIAnomalyBasic)fProperties.getElement()).getAnomaly();
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelAnomaly, currentUser);
+ modelAnomaly.setDescription(fDescriptionText.getText());
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ } catch (ResourceHandlingException e1) {
+ UIUtils.displayResourceErrorDialog(e1);
+ } catch (OutOfSyncException e1) {
+ UIUtils.displaySyncErrorDialog(e1);
+ }
+ }
+ }
+ public void focusGained(FocusEvent e) { // $codepro.audit.disable emptyMethod
+ //Nothing to do
+ }
+ });
+ UIUtils.addTabbedPropertiesTextResizeListener(fDescriptionText);
+
+ final CLabel descriptionLabel = widgetFactory.createCLabel(composite, R4EUIConstants.DESCRIPTION_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fDescriptionText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fDescriptionText, 0, SWT.TOP);
+ descriptionLabel.setLayoutData(data);
+ }
+
+ /**
+ * Method refresh.
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
+ */
+ @Override
+ public void refresh() {
+ fRefreshInProgress = true;
+ final R4EAnomaly modelAnomaly = ((R4EUIAnomalyBasic)fProperties.getElement()).getAnomaly();
+ fTitleText.setText(modelAnomaly.getTitle());
+ fAuthorText.setText(modelAnomaly.getUser().getId());
+ fCreationDateText.setText(modelAnomaly.getCreatedOn().toString());
+ fPosition = ((R4EUIAnomalyBasic)fProperties.getElement()).getPosition();
+ if (null == fPosition) {
+ fPositionText.setText(R4EUIConstants.GLOBAL_ANOMALY_PROPERTY_VALUE);
+ } else {
+ fPositionText.setText(fPosition.toString());
+ }
+ fDescriptionText.setText(modelAnomaly.getDescription());
+ setEnabledFields();
+ fRefreshInProgress = false;
+ }
+
+ /**
+ * Method setEditableFields.
+ */
+ @Override
+ protected void setEnabledFields() {
+ if (R4EUIModelController.isDialogOpen()) {
+ fTitleText.setEnabled(false);
+ fAuthorText.setEnabled(false);
+ fCreationDateText.setEnabled(false);
+ fPositionText.setEnabled(false);
+ fDescriptionText.setEnabled(false);
+ } else {
+ fTitleText.setEnabled(true);
+ fAuthorText.setEnabled(true);
+ fCreationDateText.setEnabled(true);
+ fPositionText.setEnabled(true);
+ fDescriptionText.setEnabled(true);
+ }
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/CommentTabPropertySection.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/CommentTabPropertySection.java
new file mode 100644
index 0000000..c73b5c9
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/CommentTabPropertySection.java
@@ -0,0 +1,192 @@
+// $codepro.audit.disable com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.alwaysOverridetoString.alwaysOverrideToString, staticFieldSecurity, com.instantiations.assist.eclipse.analysis.deserializeabilitySecurity, com.instantiations.assist.eclipse.analysis.enforceCloneableUsageSecurity, com.instantiations.assist.eclipse.analysis.instanceFieldSecurity, sourceLength, explicitThisUsage
+/*******************************************************************************
+ * Copyright (c) 2010 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class implements the tabbed property section for the Comment model element
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+
+package org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed;
+
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EComment;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIComment;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.UIUtils;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class CommentTabPropertySection extends ModelElementTabPropertySection {
+
+ // ------------------------------------------------------------------------
+ // Member variables
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field FAuthorText.
+ */
+ private Text fAuthorText = null;
+
+ /**
+ * Field FCreationDateText.
+ */
+ private Text fCreationDateText = null;
+
+ /**
+ * Field FDescriptionText.
+ */
+ protected Text fDescriptionText = null;
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * Method shouldUseExtraSpace.
+ * @return boolean
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#shouldUseExtraSpace()
+ */
+ @Override
+ public boolean shouldUseExtraSpace() {
+ return true;
+ }
+
+ /**
+ * Method createControls.
+ * @param parent Composite
+ * @param aTabbedPropertySheetPage TabbedPropertySheetPage
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(Composite, TabbedPropertySheetPage)
+ */
+ @Override
+ public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
+ super.createControls(parent, aTabbedPropertySheetPage);
+
+ //Tell element to build its own detailed tab layout
+ final TabbedPropertySheetWidgetFactory widgetFactory = aTabbedPropertySheetPage.getWidgetFactory();
+ final Composite composite = widgetFactory.createFlatFormComposite(parent);
+ FormData data = null;
+
+ //Author (read-only)
+ fAuthorText = widgetFactory.createText(composite, "", SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
+ fAuthorText.setLayoutData(data);
+
+ final CLabel authorLabel = widgetFactory.createCLabel(composite, R4EUIConstants.AUTHOR_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fAuthorText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fAuthorText, 0, SWT.CENTER);
+ authorLabel.setLayoutData(data);
+
+ //Creation Date (read-only)
+ fCreationDateText = widgetFactory.createText(composite, "", SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fAuthorText, ITabbedPropertyConstants.VSPACE);
+ fCreationDateText.setLayoutData(data);
+
+ final CLabel creationDateLabel = widgetFactory.createCLabel(composite, R4EUIConstants.CREATION_DATE_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fCreationDateText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fCreationDateText, 0, SWT.CENTER);
+ creationDateLabel.setLayoutData(data);
+
+ //Description
+ fDescriptionText = widgetFactory.createText(composite, "", SWT.MULTI);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fCreationDateText, ITabbedPropertyConstants.VSPACE);
+ fDescriptionText.setLayoutData(data);
+ fDescriptionText.addFocusListener(new FocusListener() {
+ public void focusLost(FocusEvent e) {
+ if (!fRefreshInProgress) {
+ try {
+ final String currentUser = R4EUIModelController.getReviewer();
+ final R4EComment modelComment = ((R4EUIComment)fProperties.getElement()).getComment();
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelComment, currentUser);
+ modelComment.setDescription(fDescriptionText.getText());
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ } catch (ResourceHandlingException e1) {
+ UIUtils.displayResourceErrorDialog(e1);
+ } catch (OutOfSyncException e1) {
+ UIUtils.displaySyncErrorDialog(e1);
+ }
+ }
+ }
+ public void focusGained(FocusEvent e) { // $codepro.audit.disable emptyMethod
+ //Nothing to do
+ }
+ });
+ UIUtils.addTabbedPropertiesTextResizeListener(fDescriptionText);
+
+ final CLabel descriptionLabel = widgetFactory.createCLabel(composite, R4EUIConstants.DESCRIPTION_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fDescriptionText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fDescriptionText, 0, SWT.TOP);
+ descriptionLabel.setLayoutData(data);
+ }
+
+ /**
+ * Method refresh.
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
+ */
+ @Override
+ public void refresh() {
+ fRefreshInProgress = true;
+ final R4EComment modelComment = ((R4EUIComment)fProperties.getElement()).getComment();
+ fAuthorText.setText(modelComment.getUser().getId());
+ fCreationDateText.setText(modelComment.getCreatedOn().toString());
+ fDescriptionText.setText(modelComment.getDescription());
+ setEnabledFields();
+ fRefreshInProgress = false;
+ }
+
+ /**
+ * Method setEditableFields.
+ */
+ @Override
+ protected void setEnabledFields() {
+ if (R4EUIModelController.isDialogOpen()) {
+ fAuthorText.setEnabled(false);
+ fCreationDateText.setEnabled(false);
+ fDescriptionText.setEnabled(false);
+ } else {
+ fAuthorText.setEnabled(true);
+ fCreationDateText.setEnabled(true);
+ fDescriptionText.setEnabled(true);
+ }
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/FileContextTabPropertySection.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/FileContextTabPropertySection.java
similarity index 66%
rename from org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/FileContextTabPropertySection.java
rename to org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/FileContextTabPropertySection.java
index 019b612..bd60489 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/FileContextTabPropertySection.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/FileContextTabPropertySection.java
@@ -17,15 +17,13 @@
*
******************************************************************************/
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
+package org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed;
import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EFileContext;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion;
-import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIModelElement;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIFileContext;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CLabel;
@@ -35,9 +33,6 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
@@ -46,46 +41,41 @@
* @author lmcdubo
* @version $Revision: 1.0 $
*/
-public class FileContextTabPropertySection extends AbstractPropertySection {
+public class FileContextTabPropertySection extends ModelElementTabPropertySection {
// ------------------------------------------------------------------------
// Member variables
// ------------------------------------------------------------------------
/**
- * Field fFile.
- */
- private FileContextProperties fFileProps;
-
- /**
* Field FBaseFileNameText.
*/
- protected static Text FBaseFileNameText = null;
+ protected Text fBaseFileNameText = null;
/**
* Field FBaseFilePathText.
*/
- protected static Text FBaseFilePathText = null;
+ protected Text fBaseFilePathText = null;
/**
* Field FBaseFileVersionText.
*/
- protected static Text FBaseFileVersionText = null;
+ protected Text fBaseFileVersionText = null;
/**
* Field FTargetFileNameText.
*/
- protected static Text FTargetFileNameText = null;
+ protected Text fTargetFileNameText = null;
/**
* Field FTargetFilePathText.
*/
- protected static Text FTargetFilePathText = null;
+ protected Text fTargetFilePathText = null;
/**
* Field FTargetFileVersionText.
*/
- protected static Text FTargetFileVersionText = null;
+ protected Text fTargetFileVersionText = null;
// ------------------------------------------------------------------------
@@ -140,54 +130,48 @@
FormData data = null;
//File Name (read-only)
- FBaseFileNameText = aWidgetFactory.createText(aParent, "");
- FBaseFileNameText.setEditable(false);
- FBaseFileNameText.setEnabled(false);
+ fBaseFileNameText = aWidgetFactory.createText(aParent, "", SWT.READ_ONLY);
data = new FormData();
data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
data.top = new FormAttachment(aParent, ITabbedPropertyConstants.VSPACE);
- FBaseFileNameText.setLayoutData(data);
+ fBaseFileNameText.setLayoutData(data);
final CLabel fileNameLabel = aWidgetFactory.createCLabel(aParent, R4EUIConstants.NAME_LABEL);
data = new FormData();
data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FBaseFileNameText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FBaseFileNameText, 0, SWT.CENTER);
+ data.right = new FormAttachment(fBaseFileNameText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fBaseFileNameText, 0, SWT.CENTER);
fileNameLabel.setLayoutData(data);
//File Path (read-only)
- FBaseFilePathText = aWidgetFactory.createText(aParent, "");
- FBaseFilePathText.setEditable(false);
- FBaseFilePathText.setEnabled(false);
+ fBaseFilePathText = aWidgetFactory.createText(aParent, "", SWT.READ_ONLY);
data = new FormData();
data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(FBaseFileNameText, ITabbedPropertyConstants.VSPACE);
- FBaseFilePathText.setLayoutData(data);
+ data.top = new FormAttachment(fBaseFileNameText, ITabbedPropertyConstants.VSPACE);
+ fBaseFilePathText.setLayoutData(data);
final CLabel filePathLabel = aWidgetFactory.createCLabel(aParent, R4EUIConstants.PATH_LABEL);
data = new FormData();
data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FBaseFilePathText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FBaseFilePathText, 0, SWT.TOP);
+ data.right = new FormAttachment(fBaseFilePathText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fBaseFilePathText, 0, SWT.TOP);
filePathLabel.setLayoutData(data);
//File Version (read-only)
- FBaseFileVersionText = aWidgetFactory.createText(aParent, "");
- FBaseFileVersionText.setEditable(false);
- FBaseFileVersionText.setEnabled(false);
+ fBaseFileVersionText = aWidgetFactory.createText(aParent, "", SWT.READ_ONLY);
data = new FormData();
data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(FBaseFilePathText, ITabbedPropertyConstants.VSPACE);
- FBaseFileVersionText.setLayoutData(data);
+ data.top = new FormAttachment(fBaseFilePathText, ITabbedPropertyConstants.VSPACE);
+ fBaseFileVersionText.setLayoutData(data);
final CLabel fileVersionLabel = aWidgetFactory.createCLabel(aParent, R4EUIConstants.VERSION_LABEL);
data = new FormData();
data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FBaseFileVersionText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FBaseFileVersionText, 0, SWT.TOP);
+ data.right = new FormAttachment(fBaseFileVersionText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fBaseFileVersionText, 0, SWT.TOP);
fileVersionLabel.setLayoutData(data);
}
@@ -200,75 +184,50 @@
FormData data = null;
//File Name (read-only)
- FTargetFileNameText = aWidgetFactory.createText(aParent, "");
- FTargetFileNameText.setEditable(false);
- FTargetFileNameText.setEnabled(false);
+ fTargetFileNameText = aWidgetFactory.createText(aParent, "", SWT.READ_ONLY);
data = new FormData();
data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
data.top = new FormAttachment(aParent, ITabbedPropertyConstants.VSPACE);
- FTargetFileNameText.setLayoutData(data);
+ fTargetFileNameText.setLayoutData(data);
final CLabel fileNameLabel = aWidgetFactory.createCLabel(aParent, R4EUIConstants.NAME_LABEL);
data = new FormData();
data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FTargetFileNameText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FTargetFileNameText, 0, SWT.CENTER);
+ data.right = new FormAttachment(fTargetFileNameText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fTargetFileNameText, 0, SWT.CENTER);
fileNameLabel.setLayoutData(data);
//File Path (read-only)
- FTargetFilePathText = aWidgetFactory.createText(aParent, "");
- FTargetFilePathText.setEditable(false);
- FTargetFilePathText.setEnabled(false);
+ fTargetFilePathText = aWidgetFactory.createText(aParent, "", SWT.READ_ONLY);
data = new FormData();
data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(FTargetFileNameText, ITabbedPropertyConstants.VSPACE);
- FTargetFilePathText.setLayoutData(data);
+ data.top = new FormAttachment(fTargetFileNameText, ITabbedPropertyConstants.VSPACE);
+ fTargetFilePathText.setLayoutData(data);
final CLabel filePathLabel = aWidgetFactory.createCLabel(aParent, R4EUIConstants.PATH_LABEL);
data = new FormData();
data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FTargetFilePathText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FTargetFilePathText, 0, SWT.TOP);
+ data.right = new FormAttachment(fTargetFilePathText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fTargetFilePathText, 0, SWT.TOP);
filePathLabel.setLayoutData(data);
//File Version (read-only)
- FTargetFileVersionText = aWidgetFactory.createText(aParent, "");
- FTargetFileVersionText.setEditable(false);
- FTargetFileVersionText.setEnabled(false);
+ fTargetFileVersionText = aWidgetFactory.createText(aParent, "", SWT.READ_ONLY);
data = new FormData();
data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(FTargetFilePathText, ITabbedPropertyConstants.VSPACE);
- FTargetFileVersionText.setLayoutData(data);
+ data.top = new FormAttachment(fTargetFilePathText, ITabbedPropertyConstants.VSPACE);
+ fTargetFileVersionText.setLayoutData(data);
final CLabel fileVersionLabel = aWidgetFactory.createCLabel(aParent, R4EUIConstants.VERSION_LABEL);
data = new FormData();
data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FTargetFileVersionText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FTargetFileVersionText, 0, SWT.TOP);
+ data.right = new FormAttachment(fTargetFileVersionText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fTargetFileVersionText, 0, SWT.TOP);
fileVersionLabel.setLayoutData(data);
}
-
- /**
- * Method setInput.
- * @param part IWorkbenchPart
- * @param aSelection ISelection
- * @see org.eclipse.ui.views.properties.tabbed.ISection#setInput(IWorkbenchPart, ISelection)
- */
- @Override
- public void setInput(IWorkbenchPart part, ISelection aSelection) {
- //Get current selection.
- if (null == aSelection || aSelection.isEmpty()) return;
-
- //Get model element selected
- final IR4EUIModelElement element = (IR4EUIModelElement) ((StructuredSelection)aSelection).getFirstElement();
- if (null != element && element instanceof R4EUIFileContext) {
- fFileProps = (FileContextProperties) ((R4EUIFileContext)element).getAdapter(IPropertySource.class);
- refresh();
- }
- }
/**
* Method refresh.
@@ -276,31 +235,56 @@
*/
@Override
public void refresh() {
- final R4EFileContext modelFile = ((R4EUIFileContext)fFileProps.getElement()).getFileContext();
+ fRefreshInProgress = true;
+ final R4EFileContext modelFile = ((R4EUIFileContext)fProperties.getElement()).getFileContext();
final R4EFileVersion baseVersion = modelFile.getBase();
if (null != modelFile.getBase()) {
- FBaseFileNameText.setText(baseVersion.getName());
+ fBaseFileNameText.setText(baseVersion.getName());
final IResource baseResource = baseVersion.getResource();
//The properties shows the absolute path
if (null != baseResource) {
- FBaseFilePathText.setText(baseResource.getLocation().toOSString());
+ fBaseFilePathText.setText(baseResource.getLocation().toOSString());
} else {
- FBaseFilePathText.setText("");
+ fBaseFilePathText.setText("");
}
- FBaseFileVersionText.setText(baseVersion.getVersionID());
+ fBaseFileVersionText.setText(baseVersion.getVersionID());
} else {
- FBaseFileNameText.setText(R4EUIConstants.NO_VERSION_PROPERTY_MESSAGE);
+ fBaseFileNameText.setText(R4EUIConstants.NO_VERSION_PROPERTY_MESSAGE);
}
final R4EFileVersion targetVersion = modelFile.getTarget();
- FTargetFileNameText.setText(targetVersion.getName());
+ fTargetFileNameText.setText(targetVersion.getName());
final IResource targetResource = targetVersion.getResource();
//The properties shows the absolute path
if (null != targetResource) {
- FTargetFilePathText.setText(targetResource.getLocation().toOSString());
+ fTargetFilePathText.setText(targetResource.getLocation().toOSString());
} else {
- FTargetFilePathText.setText("");
+ fTargetFilePathText.setText("");
}
- FTargetFileVersionText.setText(targetVersion.getVersionID());
+ fTargetFileVersionText.setText(targetVersion.getVersionID());
+ setEnabledFields();
+ fRefreshInProgress = false;
+ }
+
+ /**
+ * Method setEnabledFields.
+ */
+ @Override
+ protected void setEnabledFields() {
+ if (R4EUIModelController.isDialogOpen()) {
+ fBaseFileNameText.setEnabled(false);
+ fBaseFilePathText.setEnabled(false);
+ fBaseFileVersionText.setEnabled(false);
+ fTargetFileNameText.setEnabled(false);
+ fTargetFilePathText.setEnabled(false);
+ fTargetFileVersionText.setEnabled(false);
+ } else {
+ fBaseFileNameText.setEnabled(true);
+ fBaseFilePathText.setEnabled(true);
+ fBaseFileVersionText.setEnabled(true);
+ fTargetFileNameText.setEnabled(true);
+ fTargetFilePathText.setEnabled(true);
+ fTargetFileVersionText.setEnabled(true);
+ }
}
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ModelElementTabPropertySection.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ModelElementTabPropertySection.java
new file mode 100644
index 0000000..c43128c
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ModelElementTabPropertySection.java
@@ -0,0 +1,130 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class defines the base class for the tabbed proprties for all UI elements
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+package org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIModelElement;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelElement;
+import org.eclipse.mylyn.reviews.r4e.ui.properties.general.ModelElementProperties;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IPropertyListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.views.properties.IPropertySource;
+import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+
+
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class ModelElementTabPropertySection extends AbstractPropertySection
+ implements IPropertyListener {
+
+ // ------------------------------------------------------------------------
+ // Member variables
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field fReviewProps.
+ */
+ protected ModelElementProperties fProperties;
+
+ /**
+ * Field fRefreshInProgress.
+ */
+ protected boolean fRefreshInProgress = false;
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * Method dispose.
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#dispose()
+ */
+ @Override
+ public void dispose() {
+ super.dispose();
+ R4EUIModelController.removeElementStateListener(this);
+ }
+
+ /**
+ * Method createControls.
+ * @param parent Composite
+ * @param aTabbedPropertySheetPage TabbedPropertySheetPage
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(Composite, TabbedPropertySheetPage)
+ */
+ @Override
+ public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
+ super.createControls(parent, aTabbedPropertySheetPage);
+ R4EUIModelController.addElementStateListener(this);
+ }
+
+ /**
+ * Method setInput.
+ * @param part IWorkbenchPart
+ * @param aSelection ISelection
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#setInput(IWorkbenchPart, ISelection)
+ */
+ @Override
+ public void setInput(IWorkbenchPart part, ISelection aSelection) {
+
+ //Get current selection.
+ if (null == aSelection || aSelection.isEmpty()) return;
+
+ //Get model element selected
+ final IR4EUIModelElement element = (IR4EUIModelElement) ((StructuredSelection)aSelection).getFirstElement();
+ if (null != element) {
+ fProperties = (ModelElementProperties) ((R4EUIModelElement)element).getAdapter(IPropertySource.class);
+ refresh();
+ }
+ }
+
+ /**
+ * Method propertyChanged.
+ * @param source Object
+ * @param propId int
+ * @see org.eclipse.ui.IPropertyListener#propertyChanged(Object, int)
+ */
+ public void propertyChanged(Object source, int propId) {
+ refresh();
+ }
+
+ /**
+ * Method refresh.
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
+ */
+ @Override
+ public void refresh() {
+ fRefreshInProgress = true;
+ //default implementation
+ setEnabledFields();
+ fRefreshInProgress = false;
+ }
+
+ /**
+ * Method setEnabledFields.
+ */
+ protected void setEnabledFields() { // $codepro.audit.disable emptyMethod
+ //default implementation
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ParticipantExtraTabPropertySection.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ParticipantExtraTabPropertySection.java
new file mode 100644
index 0000000..c3a2c22
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ParticipantExtraTabPropertySection.java
@@ -0,0 +1,262 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class implements the tabbed property section for additional properties for
+ * the Participant model element
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+package org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Map.Entry;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EUserRole;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
+import org.eclipse.mylyn.reviews.r4e.ui.Activator;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIParticipant;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.EditableListWidget;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.IEditableListListener;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.UIUtils;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.List;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class ParticipantExtraTabPropertySection extends ModelElementTabPropertySection implements IEditableListListener {
+
+ // ------------------------------------------------------------------------
+ // Member variables
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field fAvailableComponents.
+ */
+ protected EditableListWidget fTimeSpentDetailedList = null;
+
+ /**
+ * Field FTimeSpentTotalText.
+ */
+ private Text fTimeSpentTotalText = null;
+
+ /**
+ * Field FFocusArea.
+ */
+ private List fRolesList = null;
+
+ /**
+ * Field FFocusArea.
+ */
+ private Text fFocusAreaText = null;
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * Method createControls.
+ * @param parent Composite
+ * @param aTabbedPropertySheetPage TabbedPropertySheetPage
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(Composite, TabbedPropertySheetPage)
+ */
+ @Override
+ public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
+ super.createControls(parent, aTabbedPropertySheetPage);
+
+ final TabbedPropertySheetWidgetFactory widgetFactory = aTabbedPropertySheetPage.getWidgetFactory();
+ FormData data = null;
+ final Composite mainForm = widgetFactory.createFlatFormComposite(parent);
+
+ //Time Spent (detailed)
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(mainForm, ITabbedPropertyConstants.VSPACE);
+ fTimeSpentDetailedList = new EditableListWidget(widgetFactory, mainForm, data, this, 1, Date.class, null);
+
+ final CLabel timeSpentDetailedLabel = widgetFactory.createCLabel(mainForm, R4EUIConstants.TIME_SPENT_DETAILED_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fTimeSpentDetailedList.getComposite(), -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fTimeSpentDetailedList.getComposite(), 0, SWT.CENTER);
+ timeSpentDetailedLabel.setLayoutData(data);
+
+ //Time Spent (total - read only)
+ fTimeSpentTotalText = widgetFactory.createText(mainForm, "", SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fTimeSpentDetailedList.getComposite(), ITabbedPropertyConstants.VSPACE);
+ fTimeSpentTotalText.setLayoutData(data);
+
+ final CLabel timeSpentLabel = widgetFactory.createCLabel(mainForm, R4EUIConstants.TIME_SPENT_TOTAL_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fTimeSpentTotalText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fTimeSpentTotalText, 0, SWT.CENTER);
+ timeSpentLabel.setLayoutData(data);
+
+ //Roles
+ fRolesList = widgetFactory.createList(mainForm, SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fTimeSpentTotalText, ITabbedPropertyConstants.VSPACE);
+ fRolesList.setLayoutData(data);
+
+ final CLabel rolesLabel = widgetFactory.createCLabel(mainForm, R4EUIConstants.ROLES_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fRolesList, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fRolesList, 0, SWT.CENTER);
+ rolesLabel.setLayoutData(data);
+
+ //Focus Area (read-only)
+ fFocusAreaText = widgetFactory.createText(mainForm, "", SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fRolesList, ITabbedPropertyConstants.VSPACE);
+ fFocusAreaText.setLayoutData(data);
+
+ final CLabel focusAreaLabel = widgetFactory.createCLabel(mainForm, R4EUIConstants.FOCUS_AREA_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fFocusAreaText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fFocusAreaText, 0, SWT.CENTER);
+ focusAreaLabel.setLayoutData(data);
+ }
+
+ /**
+ * Method refresh.
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
+ */
+ @Override
+ public void refresh() {
+ fRefreshInProgress = true;
+ final R4EParticipant modelUser = ((R4EUIParticipant)fProperties.getElement()).getParticipant();
+ final int numTimeEntries = modelUser.getTimeLog().size();
+ fTimeSpentDetailedList.clearAll();
+ int totalTimeSpent = 0;
+ Item item = null;
+ final DateFormat dateFormat = new SimpleDateFormat(R4EUIConstants.DEFAULT_DATE_FORMAT);
+ for (int i = 0; i < numTimeEntries; i++) {
+ Entry<Date, Integer> timeEntry = modelUser.getTimeLog().get(i);
+ if (i >= fTimeSpentDetailedList.getItemCount()) {
+ item = fTimeSpentDetailedList.addItem();
+ } else {
+ item = fTimeSpentDetailedList.getItem(i);
+ if (null == item) item = fTimeSpentDetailedList.addItem();
+ }
+ String[] data = { timeEntry.getValue().toString(), dateFormat.format(timeEntry.getKey()) };
+ ((TableItem)item).setText(data);
+ totalTimeSpent +=timeEntry.getValue().intValue();
+ }
+ fTimeSpentTotalText.setText(Integer.toString(totalTimeSpent));
+
+ fRolesList.removeAll();
+ final EList<R4EUserRole> roles = modelUser.getRoles();
+ for (R4EUserRole role : roles) {
+ //Review type (no validation needed as this is a read-only combo box
+ if (role.getValue() == R4EUserRole.R4E_ROLE_LEAD_VALUE) {
+ fRolesList.add(R4EUIConstants.USER_ROLE_LEAD);
+ } else if (role.getValue() == R4EUserRole.R4E_ROLE_AUTHOR_VALUE) {
+ fRolesList.add(R4EUIConstants.USER_ROLE_AUTHOR);
+ } else if (role.getValue() == R4EUserRole.R4E_ROLE_REVIEWER_VALUE) {
+ fRolesList.add(R4EUIConstants.USER_ROLE_REVIEWER);
+ }
+ }
+ if (null != modelUser.getFocusArea()) fFocusAreaText.setText(modelUser.getFocusArea());
+ setEnabledFields();
+ fRefreshInProgress = false;
+ }
+
+ /**
+ * Method setEnabledFields.
+ */
+ @Override
+ protected void setEnabledFields() {
+ if (R4EUIModelController.isDialogOpen()) {
+ fTimeSpentDetailedList.setEnabled(false);
+ fTimeSpentTotalText.setEnabled(false);
+ fRolesList.setEnabled(false);
+ fFocusAreaText.setEnabled(false);
+ } else {
+ fTimeSpentDetailedList.setEnabled(true);
+ fTimeSpentTotalText.setEnabled(true);
+ fRolesList.setEnabled(true);
+ fFocusAreaText.setEnabled(true);
+ }
+ }
+
+ /**
+ * Method itemsUpdated.
+ * @param aItems Item[]
+ * @param aInstanceId int
+ * @see org.eclipse.mylyn.reviews.r4e.ui.utils.IEditableListListener#itemsUpdated(Item[], int)
+ */
+ public void itemsUpdated(Item[] aItems, int aInstanceId) {
+ try {
+ final R4EParticipant modelGroup = ((R4EUIParticipant)fProperties.getElement()).getParticipant();
+ final String currentUser = R4EUIModelController.getReviewer();
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelGroup, currentUser);
+ final EMap<Date, Integer> timeMap = modelGroup.getTimeLog();
+ final DateFormat dateFormat = new SimpleDateFormat(R4EUIConstants.DEFAULT_DATE_FORMAT);
+ for (Item item : aItems) {
+ try {
+ if (!((TableItem)item).getText(1).equals("")) {
+ timeMap.put(dateFormat.parse(((TableItem)item).getText(1)),
+ Integer.valueOf(((TableItem)item).getText(0)));
+ }
+ } catch (NumberFormatException e) {
+ //skip this entry
+ Activator.Ftracer.traceWarning("Exception: " + e.toString() + " (" + e.getMessage() + ")");
+ Activator.getDefault().logWarning("Exception: " + e.toString(), e);
+ continue;
+ } catch (ParseException e) {
+ //skip this entry
+ Activator.Ftracer.traceWarning("Exception: " + e.toString() + " (" + e.getMessage() + ")");
+ Activator.getDefault().logWarning("Exception: " + e.toString(), e);
+ continue;
+ }
+ }
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ refresh();
+ } catch (ResourceHandlingException e1) {
+ UIUtils.displayResourceErrorDialog(e1);
+ } catch (OutOfSyncException e1) {
+ UIUtils.displaySyncErrorDialog(e1);
+ }
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ParticipantGeneralTabPropertySection.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ParticipantGeneralTabPropertySection.java
new file mode 100644
index 0000000..cd3cac8
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ParticipantGeneralTabPropertySection.java
@@ -0,0 +1,198 @@
+// $codepro.audit.disable com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.alwaysOverridetoString.alwaysOverrideToString, staticFieldSecurity, com.instantiations.assist.eclipse.analysis.deserializeabilitySecurity, com.instantiations.assist.eclipse.analysis.enforceCloneableUsageSecurity, explicitThisUsage
+/*******************************************************************************
+ * Copyright (c) 2010 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class implements the tabbed property section for the Participant model
+ * element
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+
+package org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EComment;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIParticipant;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class ParticipantGeneralTabPropertySection extends ModelElementTabPropertySection {
+
+ // ------------------------------------------------------------------------
+ // Member variables
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field FIdText.
+ */
+ private Text fIdText = null;
+
+ /**
+ * Field FNumItemsText.
+ */
+ private Text fNumItemsText = null;
+
+ /**
+ * Field FNumAnomaliesText.
+ */
+ private Text fNumAnomaliesText = null;
+
+ /**
+ * Field FNumCommentsText.
+ */
+ private Text fNumCommentsText = null;
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * Method createControls.
+ * @param parent Composite
+ * @param aTabbedPropertySheetPage TabbedPropertySheetPage
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(Composite, TabbedPropertySheetPage)
+ */
+ @Override
+ public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
+ super.createControls(parent, aTabbedPropertySheetPage);
+
+ //Tell element to build its own detailed tab layout
+ final TabbedPropertySheetWidgetFactory widgetFactory = aTabbedPropertySheetPage.getWidgetFactory();
+ final Composite mainForm = widgetFactory.createFlatFormComposite(parent);
+ FormData data = null;
+
+ //Author (read-only)
+ fIdText = widgetFactory.createText(mainForm, "", SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
+ fIdText.setLayoutData(data);
+
+
+ final CLabel idLabel = widgetFactory.createCLabel(mainForm, R4EUIConstants.ID_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fIdText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fIdText, 0, SWT.CENTER);
+ idLabel.setLayoutData(data);
+
+ //Number of Review Items added (read-only)
+ fNumItemsText = widgetFactory.createText(mainForm, "", SWT.READ_ONLY);
+ fNumItemsText.setBackground(Display.getDefault().getSystemColor( SWT.COLOR_WIDGET_LIGHT_SHADOW));
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fIdText, ITabbedPropertyConstants.VSPACE);
+ fNumItemsText.setLayoutData(data);
+
+ final CLabel numItemsLabel = widgetFactory.createCLabel(mainForm, R4EUIConstants.NUM_ITEMS_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fNumItemsText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fNumItemsText, 0, SWT.CENTER);
+ numItemsLabel.setLayoutData(data);
+
+ //Number of Anomalies added (read-only)
+ fNumAnomaliesText = widgetFactory.createText(mainForm, "", SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fNumItemsText, ITabbedPropertyConstants.VSPACE);
+ fNumAnomaliesText.setLayoutData(data);
+
+ final CLabel numAnomaliesLabel = widgetFactory.createCLabel(mainForm, R4EUIConstants.NUM_ANOMALIES_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fNumAnomaliesText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fNumAnomaliesText, 0, SWT.CENTER);
+ numAnomaliesLabel.setLayoutData(data);
+
+ //Number of Comments added (read-only)
+ fNumCommentsText = widgetFactory.createText(mainForm, "", SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fNumAnomaliesText, ITabbedPropertyConstants.VSPACE);
+ fNumCommentsText.setLayoutData(data);
+
+ final CLabel numCommentsLabel = widgetFactory.createCLabel(mainForm, R4EUIConstants.NUM_COMMENTS_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fNumCommentsText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fNumCommentsText, 0, SWT.CENTER);
+ numCommentsLabel.setLayoutData(data);
+ }
+
+ /**
+ * Method refresh.
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
+ */
+ @Override
+ public void refresh() {
+ fRefreshInProgress = true;
+ final R4EParticipant modelUser = ((R4EUIParticipant)fProperties.getElement()).getParticipant();
+ fIdText.setText(modelUser.getId());
+ fNumItemsText.setText(String.valueOf(modelUser.getAddedItems().size()));
+
+ int numAnomalies = 0;
+ int numComments = 0;
+ final EList<R4EComment> comments = modelUser.getAddedComments();
+ final int commentsSize = comments.size();
+ for (int i = 0; i < commentsSize; i++) {
+ if (comments.get(i) instanceof R4EAnomaly) {
+ ++numAnomalies;
+ } else {
+ ++numComments;
+ }
+ }
+ fNumAnomaliesText.setText(String.valueOf(numAnomalies));
+ fNumCommentsText.setText(String.valueOf(numComments));
+ setEnabledFields();
+ fRefreshInProgress = false;
+ }
+
+ /**
+ * Method setEnabledFields.
+ */
+ @Override
+ protected void setEnabledFields() {
+ if (R4EUIModelController.isDialogOpen()) {
+ fIdText.setEnabled(false);
+ fNumItemsText.setEnabled(false);
+ fNumAnomaliesText.setEnabled(false);
+ fNumCommentsText.setEnabled(false);
+ } else {
+ fIdText.setEnabled(true);
+ fNumItemsText.setEnabled(true);
+ fNumAnomaliesText.setEnabled(true);
+ fNumCommentsText.setEnabled(true);
+ }
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ReviewExtraTabPropertySection.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ReviewExtraTabPropertySection.java
new file mode 100644
index 0000000..d1dc2d4
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ReviewExtraTabPropertySection.java
@@ -0,0 +1,269 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class implements the tabbed property section for the additional properties
+ * for the Review model element.
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+package org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed;
+
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EReview;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIReview;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.UIUtils;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class ReviewExtraTabPropertySection extends ModelElementTabPropertySection {
+
+ // ------------------------------------------------------------------------
+ // Member variables
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field FProjectText.
+ */
+ protected Text fProjectText = null;
+
+ /**
+ * Field FComponents.
+ */
+ protected Table fComponents = null;
+
+ /**
+ * Field FEntryCriteriaText.
+ */
+ protected Text fEntryCriteriaText = null;
+
+ /**
+ * Field FObjectivesText.
+ */
+ protected Text fObjectivesText = null;
+
+ /**
+ * Field FReferenceMaterialText.
+ */
+ protected Text fReferenceMaterialText = null;
+
+ /**
+ * Field fExitDecision.
+ */
+ protected CCombo fExitDecisionCombo = null;
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * Method createControls.
+ * @param parent Composite
+ * @param aTabbedPropertySheetPage TabbedPropertySheetPage
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(Composite, TabbedPropertySheetPage)
+ */
+ @Override
+ public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
+ super.createControls(parent.getParent(), aTabbedPropertySheetPage);
+
+ final TabbedPropertySheetWidgetFactory widgetFactory = aTabbedPropertySheetPage.getWidgetFactory();
+ FormData data = null;
+ final Composite mainForm = widgetFactory.createFlatFormComposite(parent);
+
+ //Project (read-only)
+ fProjectText = widgetFactory.createText(mainForm, "", SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(mainForm, ITabbedPropertyConstants.VSPACE);
+ fProjectText.setLayoutData(data);
+
+ final CLabel projectLabel = widgetFactory.createCLabel(mainForm, R4EUIConstants.PROJECT_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fProjectText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fProjectText, 0, SWT.TOP);
+ projectLabel.setLayoutData(data);
+
+ //Components (Read-only)
+ fComponents = widgetFactory.createTable(mainForm, SWT.READ_ONLY | SWT.VIRTUAL);
+ fComponents.setLinesVisible(true);
+ fComponents.setItemCount(0);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fProjectText, ITabbedPropertyConstants.VSPACE);
+ fComponents.setLayoutData(data);
+
+ final CLabel componentsLabel = widgetFactory.createCLabel(mainForm, R4EUIConstants.COMPONENTS_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fComponents, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fComponents, 0, SWT.TOP);
+ componentsLabel.setLayoutData(data);
+
+ //Entry Criteria (read-only)
+ fEntryCriteriaText = widgetFactory.createText(mainForm, "", SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fComponents, ITabbedPropertyConstants.VSPACE);
+ fEntryCriteriaText.setLayoutData(data);
+
+ final CLabel entryCriteriaLabel = widgetFactory.createCLabel(mainForm, R4EUIConstants.ENTRY_CRITERIA_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fEntryCriteriaText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fEntryCriteriaText, 0, SWT.TOP);
+ entryCriteriaLabel.setLayoutData(data);
+
+ //Objectives (Read-only)
+ fObjectivesText = widgetFactory.createText(mainForm, "", SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fEntryCriteriaText, ITabbedPropertyConstants.VSPACE);
+ fObjectivesText.setLayoutData(data);
+
+ final CLabel objectivesLabel = widgetFactory.createCLabel(mainForm, R4EUIConstants.OBJECTIVES_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fObjectivesText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fObjectivesText, 0, SWT.TOP);
+ objectivesLabel.setLayoutData(data);
+
+ //Reference Material (Read-only)
+ fReferenceMaterialText = widgetFactory.createText(mainForm, "", SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fObjectivesText, ITabbedPropertyConstants.VSPACE);
+ fReferenceMaterialText.setLayoutData(data);
+
+ final CLabel referenceMaterialLabel = widgetFactory.createCLabel(mainForm, R4EUIConstants.REFERENCE_MATERIAL_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fReferenceMaterialText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fReferenceMaterialText, 0, SWT.TOP);
+ referenceMaterialLabel.setLayoutData(data);
+
+ //Rank
+ fExitDecisionCombo = widgetFactory.createCCombo(mainForm, SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fReferenceMaterialText, ITabbedPropertyConstants.VSPACE);
+ fExitDecisionCombo.setLayoutData(data);
+ fExitDecisionCombo.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ if (!fRefreshInProgress) {
+ try {
+ final String currentUser = R4EUIModelController.getReviewer();
+ final R4EReview modelReview = ((R4EUIReview)fProperties.getElement()).getReview();
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelReview, currentUser);
+ modelReview.setDecision(R4EUIReview.getDecisionValueFromString(fExitDecisionCombo.getText()));
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ } catch (ResourceHandlingException e1) {
+ UIUtils.displayResourceErrorDialog(e1);
+ } catch (OutOfSyncException e1) {
+ UIUtils.displaySyncErrorDialog(e1);
+ }
+ }
+ refresh();
+ }
+ public void widgetDefaultSelected(SelectionEvent e) { // $codepro.audit.disable emptyMethod
+ //No implementation needed
+ }
+ });
+
+ final CLabel rankLabel = widgetFactory.createCLabel(mainForm, R4EUIConstants.EXIT_DECISION_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fExitDecisionCombo, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fExitDecisionCombo, 0, SWT.CENTER);
+ rankLabel.setLayoutData(data);
+ }
+
+ /**
+ * Method refresh.
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
+ */
+ @Override
+ public void refresh() {
+ fRefreshInProgress = true;
+ final R4EReview modelReview = ((R4EUIReview)fProperties.getElement()).getReview();
+ fProjectText.setText(modelReview.getProject());
+ final String[] components = (String[]) modelReview.getComponents().toArray();
+ fComponents.clearAll();
+ TableItem item = null;
+ for (int i = 0; i < components.length; i++) {
+ String component = components[i];
+ if (i >= fComponents.getItemCount()) {
+ item = new TableItem (fComponents, SWT.NONE);
+ } else {
+ item = fComponents.getItem(i);
+ if (null == item) item = new TableItem (fComponents, SWT.NONE);
+ }
+ item.setText(component);
+ }
+ fEntryCriteriaText.setText(modelReview.getEntryCriteria());
+ fObjectivesText.setText(modelReview.getObjectives());
+ fReferenceMaterialText.setText(modelReview.getReferenceMaterial());
+ fExitDecisionCombo.setItems(R4EUIReview.getExitDecisionValues());
+ if (null != modelReview.getDecision()) fExitDecisionCombo.select((null == modelReview.getDecision().getValue()) ? 0 :
+ modelReview.getDecision().getValue().getValue());
+ setEnabledFields();
+ fRefreshInProgress = false;
+ }
+
+ /**
+ * Method setEnabledFields.
+ */
+ @Override
+ protected void setEnabledFields() {
+ if (R4EUIModelController.isDialogOpen() || (!((R4EUIReview)fProperties.getElement()).isOpen()) ||
+ ((R4EUIReview)fProperties.getElement()).isReviewed()) {
+ fProjectText.setEnabled(false);
+ fComponents.setEnabled(false);
+ fEntryCriteriaText.setEnabled(false);
+ fObjectivesText.setEnabled(false);
+ fReferenceMaterialText.setEnabled(false);
+ fExitDecisionCombo.setEnabled(false);
+ } else {
+ fProjectText.setEnabled(true);
+ fComponents.setEnabled(true);
+ fEntryCriteriaText.setEnabled(true);
+ fObjectivesText.setEnabled(true);
+ fReferenceMaterialText.setEnabled(true);
+ fExitDecisionCombo.setEnabled(true);
+ }
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ReviewGeneralTabPropertySection.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ReviewGeneralTabPropertySection.java
new file mode 100644
index 0000000..9a59c8b
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ReviewGeneralTabPropertySection.java
@@ -0,0 +1,221 @@
+// $codepro.audit.disable com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.alwaysOverridetoString.alwaysOverrideToString, staticFieldSecurity, com.instantiations.assist.eclipse.analysis.deserializeabilitySecurity, com.instantiations.assist.eclipse.analysis.enforceCloneableUsageSecurity, com.instantiations.assist.eclipse.analysis.instanceFieldSecurity, sourceLength, explicitThisUsage
+/*******************************************************************************
+ * Copyright (c) 2010 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class implements the tabbed property section for the Review Item model
+ * element
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+
+package org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed;
+
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EReview;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIReview;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.UIUtils;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class ReviewGeneralTabPropertySection extends ModelElementTabPropertySection {
+
+ // ------------------------------------------------------------------------
+ // Member variables
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field FNameText.
+ */
+ private Text fNameText = null;
+
+ /**
+ * Field FCreationDateText.
+ */
+ private Text fStartDateText = null;
+
+ /**
+ * Field FEndDateText.
+ */
+ private Text fEndDateText = null;
+
+ /**
+ * Field FDescriptionText.
+ */
+ protected Text fDescriptionText = null;
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * Method shouldUseExtraSpace.
+ * @return boolean
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#shouldUseExtraSpace()
+ */
+ @Override
+ public boolean shouldUseExtraSpace() {
+ return true;
+ }
+
+ /**
+ * Method createControls.
+ * @param parent Composite
+ * @param aTabbedPropertySheetPage TabbedPropertySheetPage
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(Composite, TabbedPropertySheetPage)
+ */
+ @Override
+ public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
+ super.createControls(parent, aTabbedPropertySheetPage);
+
+ //Tell element to build its own detailed tab layout
+ final TabbedPropertySheetWidgetFactory widgetFactory = aTabbedPropertySheetPage.getWidgetFactory();
+ final Composite mainForm = widgetFactory.createFlatFormComposite(parent);
+ FormData data = null;
+
+ //Review Name (read-only for now)
+ fNameText = widgetFactory.createText(mainForm, "", SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
+ fNameText.setLayoutData(data);
+
+ final CLabel nameLabel = widgetFactory.createCLabel(mainForm, R4EUIConstants.NAME_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fNameText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fNameText, 0, SWT.TOP);
+ nameLabel.setLayoutData(data);
+
+ //Review Start Date (read-only)
+ fStartDateText = widgetFactory.createText(mainForm, "", SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fNameText, ITabbedPropertyConstants.VSPACE);
+ fStartDateText.setLayoutData(data);
+
+ final CLabel creationDateLabel = widgetFactory.createCLabel(mainForm, R4EUIConstants.START_DATE_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fStartDateText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fStartDateText, 0, SWT.TOP);
+ creationDateLabel.setLayoutData(data);
+
+ //End Date (read-only)
+ fEndDateText = widgetFactory.createText(mainForm, "", SWT.READ_ONLY);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fStartDateText, ITabbedPropertyConstants.VSPACE);
+ fEndDateText.setLayoutData(data);
+
+ final CLabel endDateLabel = widgetFactory.createCLabel(mainForm, R4EUIConstants.END_DATE_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fEndDateText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fEndDateText, 0, SWT.TOP);
+ endDateLabel.setLayoutData(data);
+
+ //Review Description
+ fDescriptionText = widgetFactory.createText(mainForm, "", SWT.MULTI);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fEndDateText, ITabbedPropertyConstants.VSPACE);
+ fDescriptionText.setLayoutData(data);
+ fDescriptionText.addFocusListener(new FocusListener() {
+ public void focusLost(FocusEvent e) {
+ if (!fRefreshInProgress) {
+ try {
+ final String currentUser = R4EUIModelController.getReviewer();
+ final R4EReview modelReview = ((R4EUIReview)fProperties.getElement()).getReview();
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelReview, currentUser);
+ modelReview.setExtraNotes(fDescriptionText.getText());
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ } catch (ResourceHandlingException e1) {
+ UIUtils.displayResourceErrorDialog(e1);
+ } catch (OutOfSyncException e1) {
+ UIUtils.displaySyncErrorDialog(e1);
+ }
+ }
+ }
+ public void focusGained(FocusEvent e) { // $codepro.audit.disable emptyMethod
+ //Nothing to do
+ }
+ });
+ UIUtils.addTabbedPropertiesTextResizeListener(fDescriptionText);
+
+ final CLabel descriptionLabel = widgetFactory.createCLabel(mainForm, R4EUIConstants.DESCRIPTION_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fDescriptionText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fDescriptionText, 0, SWT.TOP);
+ descriptionLabel.setLayoutData(data);
+ }
+
+ /**
+ * Method refresh.
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
+ */
+ @Override
+ public void refresh() {
+ fRefreshInProgress = true;
+ final R4EReview modelReview = ((R4EUIReview)fProperties.getElement()).getReview();
+ fNameText.setText(modelReview.getName());
+ fStartDateText.setText(modelReview.getStartDate().toString());
+ if (null == modelReview.getEndDate()) {
+ fEndDateText.setText("(In Progress)");
+ } else {
+ fEndDateText.setText(modelReview.getEndDate().toString());
+ }
+ fDescriptionText.setText(modelReview.getExtraNotes());
+ setEnabledFields();
+ fRefreshInProgress = false;
+ }
+
+ /**
+ * Method setEnabledFields.
+ */
+ @Override
+ protected void setEnabledFields() {
+ if (R4EUIModelController.isDialogOpen() || (!((R4EUIReview)fProperties.getElement()).isOpen()) ||
+ ((R4EUIReview)fProperties.getElement()).isReviewed()) {
+ fNameText.setEnabled(false);
+ fDescriptionText.setEnabled(false);
+ fStartDateText.setEnabled(false);
+ fEndDateText.setEnabled(false);
+ } else {
+ fNameText.setEnabled(true);
+ fStartDateText.setEnabled(true);
+ fEndDateText.setEnabled(true);
+ fDescriptionText.setEnabled(true);
+ }
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ReviewGroupExtraTabPropertySection.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ReviewGroupExtraTabPropertySection.java
new file mode 100644
index 0000000..556e9a3
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ReviewGroupExtraTabPropertySection.java
@@ -0,0 +1,271 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class implements the tabbed property section for the additional properties
+ * for the Review Group model element
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+package org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewGroup;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
+import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIReviewGroup;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.EditableListWidget;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.IEditableListListener;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
+import org.eclipse.mylyn.reviews.r4e.ui.utils.UIUtils;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class ReviewGroupExtraTabPropertySection extends ModelElementTabPropertySection implements IEditableListListener {
+
+ // ------------------------------------------------------------------------
+ // Member variables
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field fAvailableProjects.
+ */
+ protected EditableListWidget fAvailableProjects = null;
+
+ /**
+ * Field fAvailableComponents.
+ */
+ protected EditableListWidget fAvailableComponents = null;
+
+ /**
+ * Field FEntryCriteriaText.
+ */
+ protected Text fDefaultEntryCriteriaText = null;
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * Method dispose.
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#dispose()
+ */
+ @Override
+ public void dispose() {
+ if (null != fAvailableProjects) fAvailableProjects.dispose();
+ if (null != fAvailableComponents)fAvailableComponents.dispose();
+ super.dispose();
+ }
+
+ /**
+ * Method shouldUseExtraSpace.
+ * @return boolean
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#shouldUseExtraSpace()
+ */
+ @Override
+ public boolean shouldUseExtraSpace() {
+ return true;
+ }
+
+ /**
+ * Method createControls.
+ * @param parent Composite
+ * @param aTabbedPropertySheetPage TabbedPropertySheetPage
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(Composite, TabbedPropertySheetPage)
+ */
+ @Override
+ public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
+ super.createControls(parent.getParent(), aTabbedPropertySheetPage);
+
+ final TabbedPropertySheetWidgetFactory widgetFactory = aTabbedPropertySheetPage.getWidgetFactory();
+ final Composite composite = widgetFactory.createFlatFormComposite(parent);
+ FormData data = null;
+
+ //Projects
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
+ fAvailableProjects = new EditableListWidget(widgetFactory, composite, data, this, 1, Text.class, null);
+
+ final CLabel projectsLabel = widgetFactory.createCLabel(composite, R4EUIConstants.AVAILABLE_PROJECTS_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fAvailableProjects.getComposite(), -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fAvailableProjects.getComposite(), 0, SWT.TOP);
+ projectsLabel.setLayoutData(data);
+
+ //Components
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fAvailableProjects.getComposite(), ITabbedPropertyConstants.VSPACE);
+ fAvailableComponents = new EditableListWidget(widgetFactory, composite, data, this, 2, Text.class, null);
+
+ final CLabel componentsLabel = widgetFactory.createCLabel(composite, R4EUIConstants.AVAILABLE_COMPONENTS_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fAvailableComponents.getComposite(), -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fAvailableComponents.getComposite(), 0, SWT.TOP);
+ componentsLabel.setLayoutData(data);
+
+ //Entry Criteria
+ fDefaultEntryCriteriaText = widgetFactory.createText(composite, "", SWT.MULTI);
+ data = new FormData();
+ data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
+ data.top = new FormAttachment(fAvailableComponents.getComposite(), ITabbedPropertyConstants.VSPACE);
+ fDefaultEntryCriteriaText.setLayoutData(data);
+ fDefaultEntryCriteriaText.addFocusListener(new FocusListener() {
+ public void focusLost(FocusEvent e) {
+ if (!fRefreshInProgress) {
+ try {
+ final String currentUser = R4EUIModelController.getReviewer();
+ final R4EReviewGroup modelGroup = ((R4EUIReviewGroup)fProperties.getElement()).getReviewGroup();
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelGroup, currentUser);
+ modelGroup.setDefaultEntryCriteria(fDefaultEntryCriteriaText.getText());
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ } catch (ResourceHandlingException e1) {
+ UIUtils.displayResourceErrorDialog(e1);
+ } catch (OutOfSyncException e1) {
+ UIUtils.displaySyncErrorDialog(e1);
+ }
+ }
+ }
+ public void focusGained(FocusEvent e) { // $codepro.audit.disable emptyMethod
+ //Nothing to do
+ }
+ });
+ UIUtils.addTabbedPropertiesTextResizeListener(fDefaultEntryCriteriaText);
+
+ final CLabel entryCriteriaLabel = widgetFactory.createCLabel(composite, R4EUIConstants.DEFAULT_ENTRY_CRITERIA_LABEL);
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(fDefaultEntryCriteriaText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fDefaultEntryCriteriaText, 0, SWT.TOP);
+ entryCriteriaLabel.setLayoutData(data);
+ }
+
+ /**
+ * Method refresh.
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
+ */
+ @Override
+ public void refresh() {
+ fRefreshInProgress = true;
+ final R4EReviewGroup modelReview = ((R4EUIReviewGroup)fProperties.getElement()).getGroup();
+
+ final String[] projects = (String[]) modelReview.getAvailableProjects().toArray();
+ fAvailableProjects.clearAll();
+ Item item = null;
+ for (int i = 0; i < projects.length; i++) {
+ String project = projects[i];
+ if (i >= fAvailableProjects.getItemCount()) {
+ item = fAvailableProjects.addItem();
+ } else {
+ item = fAvailableProjects.getItem(i);
+ if (null == item) item = fAvailableProjects.addItem();
+ }
+ item.setText(project);
+ }
+ final String[] components = (String[]) modelReview.getAvailableComponents().toArray();
+ fAvailableComponents.clearAll();
+ for (int i = 0; i < components.length; i++) {
+ String component = components[i];
+ if (i >= fAvailableComponents.getItemCount()) {
+ item = fAvailableComponents.addItem();
+ } else {
+ item = fAvailableComponents.getItem(i);
+ if (null == item) item = fAvailableComponents.addItem();
+ }
+ item.setText(component);
+ }
+ fDefaultEntryCriteriaText.setText(modelReview.getDefaultEntryCriteria());
+ setEnabledFields();
+ fRefreshInProgress = false;
+ }
+
+ /**
+ * Method setEnabledFields.
+ */
+ @Override
+ protected void setEnabledFields() {
+ if (R4EUIModelController.isDialogOpen() || (!((R4EUIReviewGroup)fProperties.getElement()).isOpen())) {
+ fAvailableProjects.setEnabled(false);
+ fAvailableComponents.setEnabled(false);
+ fDefaultEntryCriteriaText.setEnabled(false);
+ } else {
+ fAvailableProjects.setEnabled(true);
+ fAvailableComponents.setEnabled(true);
+ fDefaultEntryCriteriaText.setEnabled(true);
+ }
+ }
+
+ /**
+ * Method itemsUpdated.
+ * @param aItems Item[]
+ * @param aInstanceId int
+ * @see org.eclipse.ui.utils.IEditableListListener#itemsUpdated(Item[] aItems)
+ */
+ public void itemsUpdated(Item[] aItems, int aInstanceId) {
+ // Update the core model data with new data
+ try {
+ if (1 == aInstanceId) {
+ //First widget: available projects
+ if (!fRefreshInProgress) {
+ final String currentUser = R4EUIModelController.getReviewer();
+ final R4EReviewGroup modelGroup = ((R4EUIReviewGroup)fProperties.getElement()).getReviewGroup();
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelGroup, currentUser);
+ final EList<String> projects = modelGroup.getAvailableProjects();
+ projects.clear();
+ for (Item item : aItems) {
+ projects.add(item.getText());
+ }
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ }
+ } else if (2 == aInstanceId) {
+ //Second widget: available components
+ if (!fRefreshInProgress) {
+ final String currentUser = R4EUIModelController.getReviewer();
+ final R4EReviewGroup modelGroup = ((R4EUIReviewGroup)fProperties.getElement()).getReviewGroup();
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelGroup, currentUser);
+ final EList<String> components = modelGroup.getAvailableComponents();
+ components.clear();
+ for (Item item : aItems) {
+ components.add(item.getText());
+ }
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ }
+ }
+ refresh();
+ } catch (ResourceHandlingException e1) {
+ UIUtils.displayResourceErrorDialog(e1);
+ } catch (OutOfSyncException e1) {
+ UIUtils.displaySyncErrorDialog(e1);
+ }
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ReviewGroupTabPropertySection.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ReviewGroupGeneralTabPropertySection.java
similarity index 64%
rename from org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ReviewGroupTabPropertySection.java
rename to org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ReviewGroupGeneralTabPropertySection.java
index 5c08cb8..7466bcb 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ReviewGroupTabPropertySection.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ReviewGroupGeneralTabPropertySection.java
@@ -17,30 +17,23 @@
*
******************************************************************************/
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
+package org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewGroup;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.OutOfSyncException;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
-import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIModelElement;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIReviewGroup;
import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
import org.eclipse.mylyn.reviews.r4e.ui.utils.UIUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
@@ -49,18 +42,13 @@
* @author lmcdubo
* @version $Revision: 1.0 $
*/
-public class ReviewGroupTabPropertySection extends AbstractPropertySection implements IPropertyListener {
+public class ReviewGroupGeneralTabPropertySection extends ModelElementTabPropertySection {
// ------------------------------------------------------------------------
// Member variables
// ------------------------------------------------------------------------
/**
- * Field fGroup.
- */
- private ReviewGroupProperties fGroupProps;
-
- /**
* Field fNameText.
*/
private Text fNameText = null;
@@ -73,12 +61,7 @@
/**
* Field fDescriptionText.
*/
- private Text fDescriptionText = null;
-
- /**
- * Field fRefreshInProgress.
- */
- private boolean fRefreshInProgress = false;
+ protected Text fDescriptionText = null;
// ------------------------------------------------------------------------
@@ -86,13 +69,13 @@
// ------------------------------------------------------------------------
/**
- * Method dispose.
- * @see org.eclipse.ui.views.properties.tabbed.ISection#dispose()
+ * Method shouldUseExtraSpace.
+ * @return boolean
+ * @see org.eclipse.ui.views.properties.tabbed.ISection#shouldUseExtraSpace()
*/
@Override
- public void dispose() {
- super.dispose();
- R4EUIModelController.removeDialogStateListener(this);
+ public boolean shouldUseExtraSpace() {
+ return true;
}
/**
@@ -104,39 +87,20 @@
@Override
public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
super.createControls(parent, aTabbedPropertySheetPage);
- R4EUIModelController.addDialogStateListener(this);
//Tell element to build its own detailed tab layout
final TabbedPropertySheetWidgetFactory widgetFactory = aTabbedPropertySheetPage.getWidgetFactory();
-
final Composite composite = widgetFactory.createFlatFormComposite(parent);
FormData data = null;
- //Group Name
- fNameText = widgetFactory.createText(composite, "");
+ //Group Name (Read-only for now)
+ fNameText = widgetFactory.createText(composite, "", SWT.READ_ONLY);
data = new FormData();
data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
fNameText.setLayoutData(data);
- fNameText.addModifyListener(new ModifyListener() {
- @SuppressWarnings("synthetic-access")
- public void modifyText(ModifyEvent e) {
- if (!fRefreshInProgress) {
- try {
- final String currentUser = R4EUIModelController.getReviewer();
- final R4EReviewGroup modelGroup = ((R4EUIReviewGroup)fGroupProps.getElement()).getReviewGroup();
- final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelGroup, currentUser);
- modelGroup.setName(fNameText.getText());
- R4EUIModelController.FResourceUpdater.checkIn(bookNum);
- } catch (ResourceHandlingException e1) {
- UIUtils.displayResourceErrorDialog(e1);
- } catch (OutOfSyncException e1) {
- UIUtils.displaySyncErrorDialog(e1);
- }
- }
- }
- });
+
final CLabel nameLabel = widgetFactory.createCLabel(composite, R4EUIConstants.NAME_LABEL);
data = new FormData();
data.left = new FormAttachment(0, 0);
@@ -145,9 +109,7 @@
nameLabel.setLayoutData(data);
//Group Folder (read-only)
- fFolderText = widgetFactory.createText(composite, "");
- fFolderText.setEditable(false);
- fFolderText.setEnabled(false);
+ fFolderText = widgetFactory.createText(composite, "", SWT.READ_ONLY);
data = new FormData();
data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
@@ -162,31 +124,34 @@
folderLabel.setLayoutData(data);
//Group Description
- fDescriptionText = widgetFactory.createText(composite, "", SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);
+ fDescriptionText = widgetFactory.createText(composite, "", SWT.MULTI);
data = new FormData();
data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
data.top = new FormAttachment(fFolderText, ITabbedPropertyConstants.VSPACE);
- data.bottom = new FormAttachment(100, -ITabbedPropertyConstants.VSPACE); // $codepro.audit.disable numericLiterals
fDescriptionText.setLayoutData(data);
- fDescriptionText.addModifyListener(new ModifyListener() { // $codepro.audit.disable com.instantiations.assist.eclipse.analysis.avoidInnerClasses
- @SuppressWarnings("synthetic-access")
- public void modifyText(ModifyEvent e) {
+ fDescriptionText.addFocusListener(new FocusListener() {
+ public void focusLost(FocusEvent e) {
if (!fRefreshInProgress) {
- try {
- final String currentUser = R4EUIModelController.getReviewer();
- final R4EReviewGroup modelGroup = ((R4EUIReviewGroup)fGroupProps.getElement()).getReviewGroup();
- final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelGroup, currentUser);
- modelGroup.setDescription(fDescriptionText.getText());
- R4EUIModelController.FResourceUpdater.checkIn(bookNum);
- } catch (ResourceHandlingException e1) {
- UIUtils.displayResourceErrorDialog(e1);
- } catch (OutOfSyncException e1) {
- UIUtils.displaySyncErrorDialog(e1);
- }
+ try {
+ final String currentUser = R4EUIModelController.getReviewer();
+ final R4EReviewGroup modelGroup = ((R4EUIReviewGroup)fProperties.getElement()).getReviewGroup();
+ final Long bookNum = R4EUIModelController.FResourceUpdater.checkOut(modelGroup, currentUser);
+ modelGroup.setDescription(fDescriptionText.getText());
+ R4EUIModelController.FResourceUpdater.checkIn(bookNum);
+ } catch (ResourceHandlingException e1) {
+ UIUtils.displayResourceErrorDialog(e1);
+ } catch (OutOfSyncException e1) {
+ UIUtils.displaySyncErrorDialog(e1);
+ }
}
}
+ public void focusGained(FocusEvent e) { // $codepro.audit.disable emptyMethod
+ //Nothing to do
+ }
});
+ UIUtils.addTabbedPropertiesTextResizeListener(fDescriptionText);
+
final CLabel descriptionLabel = widgetFactory.createCLabel(composite, R4EUIConstants.DESCRIPTION_LABEL);
data = new FormData();
data.left = new FormAttachment(0, 0);
@@ -194,26 +159,7 @@
data.top = new FormAttachment(fDescriptionText, 0, SWT.TOP);
descriptionLabel.setLayoutData(data);
}
-
- /**
- * Method setInput.
- * @param part IWorkbenchPart
- * @param aSelection ISelection
- * @see org.eclipse.ui.views.properties.tabbed.ISection#setInput(IWorkbenchPart, ISelection)
- */
- @Override
- public void setInput(IWorkbenchPart part, ISelection aSelection) {
- //Get current selection.
- if (null == aSelection || aSelection.isEmpty()) return;
-
- //Get model element selected
- final IR4EUIModelElement element = (IR4EUIModelElement) ((StructuredSelection)aSelection).getFirstElement();
- if (null != element && element instanceof R4EUIReviewGroup) {
- fGroupProps = (ReviewGroupProperties) ((R4EUIReviewGroup)element).getAdapter(IPropertySource.class);
- refresh();
- }
- }
-
+
/**
* Method refresh.
* @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
@@ -221,7 +167,7 @@
@Override
public void refresh() {
fRefreshInProgress = true;
- final R4EReviewGroup modelGroup = ((R4EUIReviewGroup)fGroupProps.getElement()).getReviewGroup();
+ final R4EReviewGroup modelGroup = ((R4EUIReviewGroup)fProperties.getElement()).getReviewGroup();
fNameText.setText(modelGroup.getName());
fFolderText.setText(modelGroup.getFolder());
if (null != modelGroup.getDescription()) fDescriptionText.setText(modelGroup.getDescription());
@@ -230,34 +176,17 @@
}
/**
- * Method shouldUseExtraSpace.
- * @return boolean
- * @see org.eclipse.ui.views.properties.tabbed.ISection#shouldUseExtraSpace()
- */
- @Override
- public boolean shouldUseExtraSpace() {
- return true;
- }
-
- /**
- * Method propertyChanged.
- * @param source Object
- * @param propId int
- * @see org.eclipse.ui.IPropertyListener#propertyChanged(Object, int)
- */
- public void propertyChanged(Object source, int propId) {
- setEnabledFields();
- }
-
- /**
* Method setEnabledFields.
*/
- private void setEnabledFields() {
- if (R4EUIModelController.isDialogOpen() || !((R4EUIReviewGroup)fGroupProps.getElement()).isOpen()) {
+ @Override
+ protected void setEnabledFields() {
+ if (R4EUIModelController.isDialogOpen() || !((R4EUIReviewGroup)fProperties.getElement()).isOpen()) {
fNameText.setEnabled(false);
+ fFolderText.setEnabled(false);
fDescriptionText.setEnabled(false);
} else {
fNameText.setEnabled(true);
+ fFolderText.setEnabled(true);
fDescriptionText.setEnabled(true);
}
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ReviewItemTabPropertySection.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ReviewItemTabPropertySection.java
similarity index 63%
rename from org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ReviewItemTabPropertySection.java
rename to org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ReviewItemTabPropertySection.java
index 09a28a0..0d29c90 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/ReviewItemTabPropertySection.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/ReviewItemTabPropertySection.java
@@ -17,12 +17,10 @@
*
******************************************************************************/
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
+package org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EItem;
-import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIModelElement;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIReviewItem;
import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
import org.eclipse.swt.SWT;
@@ -32,9 +30,6 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
@@ -43,31 +38,26 @@
* @author lmcdubo
* @version $Revision: 1.0 $
*/
-public class ReviewItemTabPropertySection extends AbstractPropertySection {
+public class ReviewItemTabPropertySection extends ModelElementTabPropertySection {
// ------------------------------------------------------------------------
// Member variables
// ------------------------------------------------------------------------
/**
- * Field fItem.
- */
- private ReviewItemProperties fItemProps;
-
- /**
* Field FAuthorText.
*/
- protected static Text FAuthorText = null;
+ private Text fAuthorText = null;
/**
* Field FProjectIdList.
*/
- protected static List FProjectIdList = null;
+ private List fProjectIdList = null;
/**
* Field FDescriptionText.
*/
- protected static Text FDescriptionText = null;
+ private Text fDescriptionText = null;
// ------------------------------------------------------------------------
@@ -90,76 +80,50 @@
FormData data = null;
//Author (read-only)
- FAuthorText = widgetFactory.createText(composite, "");
- FAuthorText.setEditable(false);
- FAuthorText.setEnabled(false);
+ fAuthorText = widgetFactory.createText(composite, "", SWT.READ_ONLY);
data = new FormData();
data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
- FAuthorText.setLayoutData(data);
-
+ fAuthorText.setLayoutData(data);
final CLabel authorLabel = widgetFactory.createCLabel(composite, R4EUIConstants.AUTHOR_LABEL);
data = new FormData();
data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FAuthorText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FAuthorText, 0, SWT.CENTER);
+ data.right = new FormAttachment(fAuthorText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fAuthorText, 0, SWT.CENTER);
authorLabel.setLayoutData(data);
//ProjectId (read-only)
- FProjectIdList = widgetFactory.createList(composite, SWT.NONE);
- FProjectIdList.setEnabled(false);
+ fProjectIdList = widgetFactory.createList(composite, SWT.READ_ONLY);
data = new FormData();
data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(FAuthorText, ITabbedPropertyConstants.VSPACE);
- FProjectIdList.setLayoutData(data);
+ data.top = new FormAttachment(fAuthorText, ITabbedPropertyConstants.VSPACE);
+ fProjectIdList.setLayoutData(data);
-
- final CLabel projectIdLabel = widgetFactory.createCLabel(composite, R4EUIConstants.PROJECT_ID_LABEL);
+ final CLabel projectIdLabel = widgetFactory.createCLabel(composite, R4EUIConstants.PROJECT_LABEL);
data = new FormData();
data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FProjectIdList, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FProjectIdList, 0, SWT.CENTER);
+ data.right = new FormAttachment(fProjectIdList, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fProjectIdList, 0, SWT.CENTER);
projectIdLabel.setLayoutData(data);
//Description (read-only)
- FDescriptionText = widgetFactory.createText(composite, "");
- FDescriptionText.setEditable(false);
- FDescriptionText.setEnabled(false);
+ fDescriptionText = widgetFactory.createText(composite, "", SWT.READ_ONLY);
data = new FormData();
data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
- data.top = new FormAttachment(FProjectIdList, ITabbedPropertyConstants.VSPACE);
- FDescriptionText.setLayoutData(data);
+ data.top = new FormAttachment(fProjectIdList, ITabbedPropertyConstants.VSPACE);
+ fDescriptionText.setLayoutData(data);
final CLabel descriptionLabel = widgetFactory.createCLabel(composite, R4EUIConstants.DESCRIPTION_LABEL);
data = new FormData();
data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FDescriptionText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FDescriptionText, 0, SWT.CENTER);
+ data.right = new FormAttachment(fDescriptionText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fDescriptionText, 0, SWT.CENTER);
descriptionLabel.setLayoutData(data);
}
-
- /**
- * Method setInput.
- * @param part IWorkbenchPart
- * @param aSelection ISelection
- * @see org.eclipse.ui.views.properties.tabbed.ISection#setInput(IWorkbenchPart, ISelection)
- */
- @Override
- public void setInput(IWorkbenchPart part, ISelection aSelection) {
- //Get current selection.
- if (null == aSelection || aSelection.isEmpty()) return;
-
- //Get model element selected
- final IR4EUIModelElement element = (IR4EUIModelElement) ((StructuredSelection)aSelection).getFirstElement();
- if (null != element && element instanceof R4EUIReviewItem) {
- fItemProps = (ReviewItemProperties) ((R4EUIReviewItem)element).getAdapter(IPropertySource.class);
- refresh();
- }
- }
/**
* Method refresh.
@@ -167,9 +131,28 @@
*/
@Override
public void refresh() {
- final R4EItem modelItem = ((R4EUIReviewItem)fItemProps.getElement()).getItem();
- FAuthorText.setText(modelItem.getAddedById());
- FProjectIdList.setItems((String[]) modelItem.getProjectURIs().toArray());
- FDescriptionText.setText(modelItem.getDescription());
+ fRefreshInProgress = true;
+ final R4EItem modelItem = ((R4EUIReviewItem)fProperties.getElement()).getItem();
+ fAuthorText.setText(modelItem.getAddedById());
+ fProjectIdList.setItems((String[]) modelItem.getProjectURIs().toArray());
+ fDescriptionText.setText(modelItem.getDescription());
+ setEnabledFields();
+ fRefreshInProgress = false;
+ }
+
+ /**
+ * Method setEnabledFields.
+ */
+ @Override
+ protected void setEnabledFields() {
+ if (R4EUIModelController.isDialogOpen()) {
+ fAuthorText.setEnabled(false);
+ fProjectIdList.setEnabled(false);
+ fDescriptionText.setEnabled(false);
+ } else {
+ fAuthorText.setEnabled(true);
+ fProjectIdList.setEnabled(true);
+ fDescriptionText.setEnabled(true);
+ }
}
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/SelectionTabPropertySection.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/SelectionTabPropertySection.java
similarity index 64%
rename from org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/SelectionTabPropertySection.java
rename to org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/SelectionTabPropertySection.java
index f34d056..00cf108 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/SelectionTabPropertySection.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/properties/tabbed/SelectionTabPropertySection.java
@@ -17,11 +17,9 @@
*
******************************************************************************/
-package org.eclipse.mylyn.reviews.r4e.ui.properties;
+package org.eclipse.mylyn.reviews.r4e.ui.properties.tabbed;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylyn.reviews.r4e.ui.model.IR4EUIModelElement;
+import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUIModelController;
import org.eclipse.mylyn.reviews.r4e.ui.model.R4EUISelection;
import org.eclipse.mylyn.reviews.r4e.ui.utils.R4EUIConstants;
import org.eclipse.swt.SWT;
@@ -29,11 +27,7 @@
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
@@ -42,21 +36,16 @@
* @author lmcdubo
* @version $Revision: 1.0 $
*/
-public class SelectionTabPropertySection extends AbstractPropertySection {
+public class SelectionTabPropertySection extends ModelElementTabPropertySection {
// ------------------------------------------------------------------------
// Member variables
// ------------------------------------------------------------------------
- /**
- * Field fPosition.
- */
- private SelectionProperties fSelectionProps;
-
/**
* Field FPositionText.
*/
- protected static Text FPositionText = null;
+ private Text fPositionText = null;
// ------------------------------------------------------------------------
@@ -79,42 +68,20 @@
FormData data = null;
//Position (read-only)
- FPositionText = widgetFactory.createText(composite, "");
- FPositionText.setEditable(false);
- FPositionText.setEnabled(false);
- FPositionText.setBackground(Display.getDefault().getSystemColor( SWT.COLOR_WIDGET_LIGHT_SHADOW));
+ fPositionText = widgetFactory.createText(composite, "", SWT.READ_ONLY);
data = new FormData();
data.left = new FormAttachment(0, R4EUIConstants.TABBED_PROPERTY_LABEL_WIDTH);
data.right = new FormAttachment(100, 0); // $codepro.audit.disable numericLiterals
data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
- FPositionText.setLayoutData(data);
+ fPositionText.setLayoutData(data);
final CLabel positionLabel = widgetFactory.createCLabel(composite, R4EUIConstants.POSITION_LABEL);
data = new FormData();
data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(FPositionText, -ITabbedPropertyConstants.HSPACE);
- data.top = new FormAttachment(FPositionText, 0, SWT.CENTER);
+ data.right = new FormAttachment(fPositionText, -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(fPositionText, 0, SWT.CENTER);
positionLabel.setLayoutData(data);
}
-
- /**
- * Method setInput.
- * @param part IWorkbenchPart
- * @param aSelection ISelection
- * @see org.eclipse.ui.views.properties.tabbed.ISection#setInput(IWorkbenchPart, ISelection)
- */
- @Override
- public void setInput(IWorkbenchPart part, ISelection aSelection) {
- //Get current selection.
- if (null == aSelection || aSelection.isEmpty()) return;
-
- //Get model element selected
- final IR4EUIModelElement element = (IR4EUIModelElement) ((StructuredSelection)aSelection).getFirstElement();
- if (null != element && element instanceof R4EUISelection) {
- fSelectionProps = (SelectionProperties) ((R4EUISelection)element).getAdapter(IPropertySource.class);
- refresh();
- }
- }
/**
* Method refresh.
@@ -122,8 +89,23 @@
*/
@Override
public void refresh() {
- if (null != ((R4EUISelection)fSelectionProps.getElement()).getPosition()) {
- FPositionText.setText(((R4EUISelection)fSelectionProps.getElement()).getPosition().toString());
+ if (null != ((R4EUISelection)fProperties.getElement()).getPosition()) {
+ fRefreshInProgress = true;
+ fPositionText.setText(((R4EUISelection)fProperties.getElement()).getPosition().toString());
+ setEnabledFields();
+ fRefreshInProgress = false;
+ }
+ }
+
+ /**
+ * Method setEnabledFields.
+ */
+ @Override
+ protected void setEnabledFields() {
+ if (R4EUIModelController.isDialogOpen()) {
+ fPositionText.setEnabled(false);
+ } else {
+ fPositionText.setEnabled(true);
}
}
}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/utils/EditableListWidget.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/utils/EditableListWidget.java
new file mode 100644
index 0000000..b8c9236
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/utils/EditableListWidget.java
@@ -0,0 +1,340 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class implements an editable List-like widget
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+package org.eclipse.mylyn.reviews.r4e.ui.utils;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.custom.TableEditor;
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public class EditableListWidget {
+
+ // ------------------------------------------------------------------------
+ // Constants
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field MAX_COLUMN_WIDTH.
+ * (value is 600)
+ */
+ private static final int MAX_COLUMN_WIDTH = 600;
+
+ /**
+ * Field MAX_COLUMN_HALF_WIDTH.
+ * (value is 300)
+ */
+ private static final int MAX_COLUMN_HALF_WIDTH = 300;
+
+
+ // ------------------------------------------------------------------------
+ // Member variables
+ // ------------------------------------------------------------------------
+
+ /**
+ * Field fMainComposite.
+ */
+ private Composite fMainComposite = null;
+
+ /**
+ * Field fMainTable.
+ */
+ private Table fMainTable = null;
+
+ /**
+ * Field fListener.
+ */
+ private IEditableListListener fListener = null;
+
+ /**
+ * Field fInstanceId.
+ */
+ private int fInstanceId = 0;
+
+
+ // ------------------------------------------------------------------------
+ // Constructor
+ // ------------------------------------------------------------------------
+
+ //TODO: This should be made more generic to accept various tables. Right now it is very hard-coded to our stuff...
+ /**
+ * Constructor for EditableListWidget.
+ * @param aToolkit - FormToolkit
+ * @param aParent - Composite
+ * @param aLayoutData - Object
+ * @param aListener - IEditableListListener
+ * @param aInstanceId - int
+ * @param aEditableWidgetClass - Class<?>
+ * @param aEditableValues - String[]
+ */
+ public EditableListWidget(FormToolkit aToolkit, Composite aParent, Object aLayoutData,
+ IEditableListListener aListener, int aInstanceId, Class<?> aEditableWidgetClass, String[] aEditableValues) {
+ fMainComposite = aToolkit.createComposite(aParent);
+ fMainComposite.setLayoutData(aLayoutData);
+ fMainComposite.setLayout(new GridLayout(4, false));
+ fMainTable = aToolkit.createTable(fMainComposite, SWT.FULL_SELECTION);
+ final GridData tableData = new GridData(GridData.FILL, GridData.FILL, true, true);
+ if (aEditableWidgetClass.equals(Date.class)) {
+ tableData.horizontalSpan = 1;
+ } else {
+ tableData.horizontalSpan = 2;
+ }
+ fMainTable.setLayoutData(tableData);
+ fMainTable.setLinesVisible(true);
+ fListener = aListener;
+ fInstanceId = aInstanceId;
+ createEditableListFromTable(aToolkit, fMainComposite, fMainTable, fListener, fInstanceId, aEditableWidgetClass,
+ aEditableValues);
+ }
+
+
+ // ------------------------------------------------------------------------
+ // Methods
+ // ------------------------------------------------------------------------
+
+ /**
+ * Method dispose.
+ */
+ public void dispose() {
+ fMainComposite.dispose();
+ }
+
+ /**
+ * Method createEditableListFromTable.
+ * Builds the editable list in the provided table
+ * @param aToolkit - FormToolkit
+ * @param aParent - Composite
+ * @param aTable - Table
+ * @param aListener - IEditableListListener
+ * @param aInstanceId - int
+ * @param aEditableWidgetClass - Class<?>
+ * @param aEditableValues - String[]
+ */
+ public static void createEditableListFromTable(FormToolkit aToolkit, Composite aParent, final Table aTable,
+ final IEditableListListener aListener, final int aInstanceId, final Class<?> aEditableWidgetClass,
+ final String[] aEditableValues) {
+
+ final TableColumn tableColumn = new TableColumn(aTable, SWT.LEFT, 0);
+ final TableColumn tableColumn2 = new TableColumn(aTable, SWT.RIGHT, 1);
+
+ if (aEditableWidgetClass.equals(Date.class)) {
+ aTable.setHeaderVisible(true);
+ tableColumn.setText(R4EUIConstants.SPENT_TIME_COLUMN_HEADER);
+ tableColumn2.setText(R4EUIConstants.ENTRY_TIME_COLUMN_HEADER);
+ }
+
+ aTable.addControlListener(new ControlAdapter() {
+ @Override
+ public void controlResized(ControlEvent e) {
+ //TODO: This is a hack so that the table is displayed somewhat correctly. However, we need to have a better implementation later
+ if (aEditableWidgetClass.equals(Date.class)) {
+ tableColumn.setWidth((aTable.getClientArea().width > MAX_COLUMN_WIDTH) ? MAX_COLUMN_HALF_WIDTH : aTable.getClientArea().width >> 1);
+ tableColumn2.setWidth((aTable.getClientArea().width > MAX_COLUMN_WIDTH) ? MAX_COLUMN_HALF_WIDTH : aTable.getClientArea().width >> 1);
+ } else {
+ tableColumn.setWidth((aTable.getClientArea().width > MAX_COLUMN_WIDTH) ? MAX_COLUMN_WIDTH : aTable.getClientArea().width);
+ }
+ }
+ });
+
+ aTable.addFocusListener(new FocusListener() {
+ public void focusLost(FocusEvent e) {
+ //Send items updated notification
+ if (null != aListener) {
+ aListener.itemsUpdated(aTable.getItems(), aInstanceId);
+ }
+ }
+ public void focusGained(FocusEvent e) {
+ //Send items updated notification
+ if (null != aListener) {
+ aListener.itemsUpdated(aTable.getItems(), aInstanceId);
+ }
+ }
+ });
+
+ final Composite buttonsComposite = aToolkit.createComposite(aParent);
+ buttonsComposite.setLayout(new GridLayout());
+ buttonsComposite.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, false));
+
+ final Button addButton = aToolkit.createButton(buttonsComposite, R4EUIConstants.BUTTON_ADD_LABEL, SWT.NONE);
+ final Button removeButton = aToolkit.createButton(buttonsComposite, R4EUIConstants.BUTTON_REMOVE_LABEL, SWT.NONE);
+
+ addButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+ addButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ final TableItem newItem = new TableItem(aTable, SWT.NONE);
+
+ final Control editableControl;
+ if (aEditableWidgetClass.equals(Text.class)) {
+ editableControl = new Text(aTable, SWT.NONE);
+ ((Text)editableControl).addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent me) {
+ newItem.setText(((Text)editableControl).getText());
+ }
+ });
+ } else if (aEditableWidgetClass.equals(CCombo.class)) {
+ editableControl = new CCombo(aTable, SWT.BORDER | SWT.READ_ONLY);
+ ((CCombo)editableControl).setItems(aEditableValues);
+ ((CCombo)editableControl).addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent me) {
+ newItem.setText(((CCombo)editableControl).getText());
+ }
+ });
+ } else if (aEditableWidgetClass.equals(Date.class)) {
+ editableControl = new Text(aTable, SWT.NONE);
+ final DateFormat dateFormat = new SimpleDateFormat(R4EUIConstants.DEFAULT_DATE_FORMAT);
+ final String[] data = { ((Text)editableControl).getText(),
+ dateFormat.format(Calendar.getInstance().getTime()) };
+ newItem.setText(data);
+ ((Text)editableControl).addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent me) {
+ //Only accept numbers
+ String newText = ((Text)editableControl).getText();
+ try {
+ Integer.valueOf(newText);
+ } catch (NumberFormatException nfe) {
+ if (newText.length() > 0) {
+ newText = newText.substring(0, newText.length() - 1);
+ ((Text)editableControl).setText(newText);
+ ((Text)editableControl).setSelection(newText.length());
+ }
+ }
+ newItem.setText(0, newText);
+ }
+ });
+ } else {
+ return;
+ }
+ editableControl.setFocus();
+ final TableEditor editor = new TableEditor (aTable);
+ editor.grabHorizontal = true;
+ editor.grabVertical = true;
+ editor.setEditor(editableControl, newItem, 0);
+ removeButton.setEnabled(true);
+
+ }
+ public void widgetDefaultSelected(SelectionEvent e) { // $codepro.audit.disable emptyMethod
+ }
+ });
+ removeButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+ removeButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ final int numItems = aTable.getItemCount();
+ if (numItems > 0) {
+ //Find the table index for the first control
+ final Control[] controls = aTable.getChildren();
+ final int firstControlIndex = numItems - controls.length;
+
+ //Currently selected item
+ int tableItemIndex = aTable.getSelectionIndex();
+ if ( R4EUIConstants.INVALID_VALUE == tableItemIndex) {
+ //Remove the selected element (and control if there is one) or the last one if noe is selected
+ tableItemIndex = numItems - 1;
+ }
+ if (tableItemIndex >= firstControlIndex ) {
+ controls[tableItemIndex - firstControlIndex].dispose();
+ }
+ aTable.getItem(tableItemIndex).dispose();
+ }
+ if (0 == aTable.getItemCount()) removeButton.setEnabled(false);
+ }
+ public void widgetDefaultSelected(SelectionEvent e) { // $codepro.audit.disable emptyMethod
+ }
+ });
+ }
+
+ /**
+ * Method clearAll.
+ */
+ public void clearAll() {
+ fMainTable.clearAll();
+ }
+
+ /**
+ * Method addItem.
+ * @return Item
+ */
+ public Item addItem() {
+ return new TableItem (fMainTable, SWT.NONE);
+ }
+
+ /**
+ * Method getItem.
+ * @param aIndex - int
+ * @return Item
+ */
+ public Item getItem(int aIndex) {
+ return fMainTable.getItem(aIndex);
+ }
+
+ /**
+ * Method getItems.
+ * @return Item[]
+ */
+ public Item[] getItems() {
+ return fMainTable.getItems();
+ }
+
+ /**
+ * Method getItemCount.
+ * @return int
+ */
+ public int getItemCount() {
+ return fMainTable.getItemCount();
+ }
+
+ /**
+ * Method setEnabled.
+ * @param aEnabled - boolean
+ */
+ public void setEnabled(boolean aEnabled) {
+ fMainComposite.setEnabled(aEnabled);
+ }
+
+ /**
+ * Method getComposite.
+ * @return Composite
+ */
+ public Composite getComposite() {
+ return fMainComposite;
+ }
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/utils/IEditableListListener.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/utils/IEditableListListener.java
new file mode 100644
index 0000000..1351e7a
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/utils/IEditableListListener.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Ericsson Research Canada
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Description:
+ *
+ * This class defines a listener that is used to notify users that
+ * an EditableListWidget they use was updated
+ *
+ * Contributors:
+ * Sebastien Dubois - Created for Mylyn Review R4E project
+ *
+ ******************************************************************************/
+package org.eclipse.mylyn.reviews.r4e.ui.utils;
+
+import org.eclipse.swt.widgets.Item;
+
+/**
+ * @author lmcdubo
+ * @version $Revision: 1.0 $
+ */
+public interface IEditableListListener {
+
+ /**
+ * Method itemAdded.
+ * @param aItems Item[]
+ * @param aInstanceId int
+ */
+ void itemsUpdated(Item[] aItems, int aInstanceId);
+}
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/utils/R4EUIConstants.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/utils/R4EUIConstants.java
index 57300a2..fe4d99c 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/utils/R4EUIConstants.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/utils/R4EUIConstants.java
@@ -136,11 +136,29 @@
public static final String DIALOG_TITLE_INFO = "R4E Info";
/**
+ * Field REVIEW_NOT_COMPLETED_ERROR.
+ * (value is ""Review Error"")
+ */
+ public static final String REVIEW_NOT_COMPLETED_ERROR = "Review Error";
+
+ /**
* Field SHOW_DISABLED_FILTER_NAME.
* (value is ""Show disabled elements"")
*/
public static final String SHOW_DISABLED_FILTER_NAME = "Show Disabled Elements";
+ /**
+ * Field DIALOG_DEFAULT_HEIGHT.
+ * (value is 500)
+ */
+ public static final int DIALOG_DEFAULT_HEIGHT = 600;
+
+ /**
+ * Field DIALOG_DEFAULT_WIDTH.
+ * (value is 500)
+ */
+ public static final int DIALOG_DEFAULT_WIDTH = 500;
+
//Tooltips
@@ -189,14 +207,49 @@
*/
public static final String REVIEW_GROUP_ICON_FILE = "icons/obj16/revgrp_obj.gif";
-
+ /**
+ * Field BUTTON_ADD_LABEL.
+ * (value is ""Add"")
+ */
+ public static final String BUTTON_ADD_LABEL = "Add";
+
+ /**
+ * Field BUTTON_REMOVE_LABEL.
+ * (value is ""Remove"")
+ */
+ public static final String BUTTON_REMOVE_LABEL = "Remove";
+
//Properties
/**
+ * Field AVAILABLE_PROJECTS_LABEL.
+ * (value is ""Available Projects: "")
+ */
+ public static final String AVAILABLE_PROJECTS_LABEL = "Available Projects: ";
+
+ /**
+ * Field AVAILABLE_COMPONENTS_LABEL.
+ * (value is ""Available Components: "")
+ */
+ public static final String AVAILABLE_COMPONENTS_LABEL = "Available Components: ";
+
+ /**
+ * Field DEFAULT_ENTRY_CRITERIA_LABEL.
+ * (value is ""Default Entry Criteria: "")
+ */
+ public static final String DEFAULT_ENTRY_CRITERIA_LABEL = "Default Entry Criteria: ";
+
+ /**
* Field TABBED_PROPERTY_LABEL_WIDTH.
* (value is 105)
*/
- public static final int TABBED_PROPERTY_LABEL_WIDTH = 135;
+ public static final int TABBED_PROPERTY_LABEL_WIDTH = 150; //pixels
+
+ /**
+ * Field TABBED_PROPERTY_TEXT_HEIGHT_DEFAULT.
+ * (value is 50)
+ */
+ public static final int TABBED_PROPERTY_TEXT_HEIGHT_DEFAULT = 50; //pixels
/**
* Field NAME_LABEL.
@@ -217,10 +270,76 @@
public static final String DESCRIPTION_LABEL = "Description: ";
/**
- * Field CREATION_DATE_LABEL.
- * (value is ""Creation date: "")
+ * Field COMPONENTS_LABEL.
+ * (value is ""Components: "")
*/
- public static final String CREATION_DATE_LABEL = "Creation Date: ";
+ public static final String COMPONENTS_LABEL = "Components: ";
+
+ /**
+ * Field ENTRY_CRITERIA_LABEL.
+ * (value is ""Entry Criteria: "")
+ */
+ public static final String ENTRY_CRITERIA_LABEL = "Entry Criteria: ";
+
+ /**
+ * Field OBJECTIVES_LABEL.
+ * (value is ""Objectives: "")
+ */
+ public static final String OBJECTIVES_LABEL = "Objectives: ";
+
+ /**
+ * Field REFERENCE_MATERIAL_LABEL.
+ * (value is ""Reference Material: "")
+ */
+ public static final String REFERENCE_MATERIAL_LABEL = "Reference Material: ";
+
+ /**
+ * Field EXIT_DECISION_LABEL.
+ * (value is ""Exit Decision: "")
+ */
+ public static final String EXIT_DECISION_LABEL = "Exit Decision: ";
+
+ /**
+ * Field CREATION_DATE_LABEL.
+ * (value is ""Created: "")
+ */
+ public static final String CREATION_DATE_LABEL = "Created: ";
+
+ /**
+ * Field START_DATE_LABEL.
+ * (value is ""Started: "")
+ */
+ public static final String START_DATE_LABEL = "Started: ";
+
+ /**
+ * Field END_DATE_LABEL.
+ * (value is ""Completed: "")
+ */
+ public static final String END_DATE_LABEL = "Completed: ";
+
+ /**
+ * Field TIME_SPENT_CURRENT_LABEL.
+ * (value is ""Time Spent (current): "")
+ */
+ public static final String TIME_SPENT_DETAILED_LABEL = "Time Spent (detailed): ";
+
+ /**
+ * Field TIME_SPENT_TOTAL_LABEL.
+ * (value is ""Time Spent (total): "")
+ */
+ public static final String TIME_SPENT_TOTAL_LABEL = "Time Spent (total): ";
+
+ /**
+ * Field TIME_SPENT_CURRENT_LABEL.
+ * (value is ""Time Spent (current): "")
+ */
+ public static final String ROLES_LABEL = "Roles: ";
+
+ /**
+ * Field FOCUS_AREA_LABEL.
+ * (value is ""Focus Area: "")
+ */
+ public static final String FOCUS_AREA_LABEL = "Focus Area: ";
/**
* Field AUTHOR_LABEL.
@@ -268,7 +387,7 @@
* Field PROJECT_ID_LABEL.
* (value is ""Project Id: "")
*/
- public static final String PROJECT_ID_LABEL = "Project Id: ";
+ public static final String PROJECT_LABEL = "Project Id: ";
/**
* Field PATH_LABEL.
@@ -306,6 +425,117 @@
*/
public static final String FILE_NOT_IN_VERSION_CONTROL_MSG = "(Not Version Controlled)";
+ /**
+ * Field IN_PROGRESS_MSG.
+ * (value is ""(In Progress)"")
+ */
+ public static final String IN_PROGRESS_MSG = "(In Progress)";
+
+ /**
+ * Field STATE_LABEL.
+ * (value is ""State: "")
+ */
+ public static final String STATE_LABEL = "State: ";
+
+ /**
+ * Field DUE_DATE_LABEL.
+ * (value is ""Due Date: "")
+ */
+ public static final String DUE_DATE_LABEL = "Due Date: ";
+
+ /**
+ * Field CLASS_LABEL.
+ * (value is ""Class: "")
+ */
+ public static final String CLASS_LABEL = "Class: ";
+
+ /**
+ * Field RANK_LABEL.
+ * (value is ""Rank: "")
+ */
+ public static final String RANK_LABEL = "Rank: ";
+
+ /**
+ * Field NOT_ACCEPTED_REASON_LABEL.
+ * (value is ""Reason for Rejection: "")
+ */
+ public static final String NOT_ACCEPTED_REASON_LABEL = "Reason for Rejection: ";
+
+ /**
+ * Field DECIDED_BY_LABEL.
+ * (value is ""Decided by: "")
+ */
+ public static final String DECIDED_BY_LABEL = "Decided by: ";
+
+ /**
+ * Field FIXED_BY_LABEL.
+ * (value is ""Fixed by: "")
+ */
+ public static final String FIXED_BY_LABEL = "Fixed by: ";
+
+ /**
+ * Field FOLLOWUP_BY_LABEL.
+ * (value is ""Follow-up by: "")
+ */
+ public static final String FOLLOWUP_BY_LABEL = "Follow-up by: ";
+
+ /**
+ * Field DEFAULT_DATE_FORMAT.
+ * (value is ""yyyy/MM/dd HH:mm:ss"")
+ */
+ public static final String DEFAULT_DATE_FORMAT = "yyyy/MM/dd HH:mm:ss";
+
+ /**
+ * Field SIMPLE_DATE_FORMAT.
+ * (value is ""yyyy/MM/dd"")
+ */
+ public static final String SIMPLE_DATE_FORMAT = "yyyy/MM/dd";
+
+ /**
+ * Field SPENT_TIME_COLUMN_HEADER.
+ * (value is ""Time spent (minutes)"")
+ */
+ public static final String SPENT_TIME_COLUMN_HEADER = "Time spent (minutes)";
+
+ /**
+ * Field ENTRY_TIME_COLUMN_HEADER.
+ * (value is ""Time of entry"")
+ */
+ public static final String ENTRY_TIME_COLUMN_HEADER = "Time of entry";
+
+ /**
+ * Field BASIC_PARAMS_HEADER.
+ * (value is ""Basic Parameters"")
+ */
+ public static final String BASIC_PARAMS_HEADER = "Basic Parameters";
+
+ /**
+ * Field EXTRA_PARAMS_HEADER.
+ * (value is ""Extra Parameters"")
+ */
+ public static final String EXTRA_PARAMS_HEADER = "Extra Parameters";
+
+
+ //Review types
+
+ /**
+ * Field REVIEW_TYPE_BASIC.
+ * (value is ""Basic"")
+ */
+ public static final String REVIEW_TYPE_BASIC = "Basic";
+
+ /**
+ * Field REVIEW_TYPE_INFORMAL.
+ * (value is ""Informal"")
+ */
+ public static final String REVIEW_TYPE_INFORMAL = "Informal";
+
+ /**
+ * Field REVIEW_TYPE_FORMAL.
+ * (value is ""Formal"")
+ */
+ public static final String REVIEW_TYPE_FORMAL = "Formal";
+
//Review item types
@@ -322,6 +552,27 @@
public static final int REVIEW_ITEM_TYPE_COMMIT = 1;
+ //User Roles
+
+ /**
+ * Field USER_ROLE_LEAD.
+ * (value is ""Lead"")
+ */
+ public static final String USER_ROLE_LEAD = "Lead";
+
+ /**
+ * Field USER_ROLE_AUTHOR.
+ * (value is ""Author"")
+ */
+ public static final String USER_ROLE_AUTHOR = "Author";
+
+ /**
+ * Field USER_ROLE_REVIEWER.
+ * (value is ""Reviewer"")
+ */
+ public static final String USER_ROLE_REVIEWER = "Reviewer";
+
+
//Commands
/**
diff --git a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/utils/UIUtils.java b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/utils/UIUtils.java
index 811b3f0..c6c15bc 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/utils/UIUtils.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui/src/org/eclipse/mylyn/reviews/r4e/ui/utils/UIUtils.java
@@ -32,7 +32,13 @@
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
import org.eclipse.mylyn.reviews.r4e.core.versions.ReviewVersionsException;
import org.eclipse.mylyn.reviews.r4e.ui.Activator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Text;
/**
* @author lmcdubo
@@ -124,4 +130,40 @@
}
return stringArray;
}
+
+ /**
+ * Method addTabbedPropertiesTextResizeListener.
+ * Resizes a Text widget in a ScrolledComposite to fit the text being typed. It also adds scrollbars to the composite as needed
+ * @param aText Text - The Text widget
+ */
+ //TODO this only works for flatFormComposites and not vanilla ones. For now this is not a big deal, but we will want to review it later
+ //A new auto-resizable text widget class should be created for this eventually
+ public static void addTabbedPropertiesTextResizeListener(final Text aText) {
+ aText.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ //compute new Text field size
+ final Point newSize = aText.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+ final Point oldSize = aText.getSize();
+ final int heightDiff = newSize.y - oldSize.y;
+ if (0 != heightDiff) {
+ aText.setSize(newSize);
+ aText.getParent().layout();
+
+ //Set scrollable height so that scrollbar appear if needed
+ final ScrolledComposite scrolledParent = (ScrolledComposite) aText.getParent().getParent().getParent().getParent().getParent().getParent();
+ scrolledParent.setMinSize(aText.getParent().computeSize(SWT.DEFAULT, SWT.DEFAULT));
+
+ //If the text falls outside of the display scroll down to reposition
+ if ((aText.getLocation().y + aText.getCaretLocation().y + aText.getLineHeight()) >
+ (scrolledParent.getClientArea().y + scrolledParent.getClientArea().height)) {
+
+ final Point origin = scrolledParent.getOrigin();
+ origin.y += heightDiff;
+
+ scrolledParent.setOrigin(origin);
+ }
+ }
+ }
+ });
+ }
}