diff options
author | ddunne | 2008-07-09 00:15:31 +0000 |
---|---|---|
committer | ddunne | 2008-07-09 00:15:31 +0000 |
commit | 7a42d687274a4310e9089ece247cf0a309be057b (patch) | |
tree | 2e506acaec0cb17db05f83f4ef0bd15e9e6e4098 | |
parent | 4129cf901a0e1e47739a34ac13d10c104d7c8cbe (diff) | |
download | org.eclipse.osee-7a42d687274a4310e9089ece247cf0a309be057b.tar.gz org.eclipse.osee-7a42d687274a4310e9089ece247cf0a309be057b.tar.xz org.eclipse.osee-7a42d687274a4310e9089ece247cf0a309be057b.zip |
"Team Workflow" - 3374L - "Additional column in task editor to show date the task was last updated"
12 files changed, 72 insertions, 11 deletions
diff --git a/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ATSLog.java b/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ATSLog.java index f73d535cf34..258b4c9c6dd 100644 --- a/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ATSLog.java +++ b/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ATSLog.java @@ -23,6 +23,7 @@ import org.eclipse.osee.framework.skynet.core.SkynetAuthentication; import org.eclipse.osee.framework.skynet.core.User; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.skynet.core.exception.MultipleAttributesExist; +import org.eclipse.osee.framework.skynet.core.exception.OseeCoreException; import org.eclipse.osee.framework.ui.skynet.util.OSEELog; import org.eclipse.osee.framework.ui.skynet.widgets.XDate; import org.w3c.dom.Document; @@ -90,6 +91,12 @@ public class ATSLog { return logItems; } + public Date getLastStatusedDate() throws OseeCoreException, SQLException { + LogItem logItem = getLastEvent(LogType.Metrics); + if (logItem == null) return null; + return logItem.getDate(); + } + public void putLogItems(List<LogItem> items) { try { Document doc = Jaxp.newDocument(); diff --git a/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionArtifact.java b/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionArtifact.java index 9839d9ec007..705465c5755 100644 --- a/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionArtifact.java +++ b/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionArtifact.java @@ -1404,4 +1404,12 @@ public class ActionArtifact extends ATSArtifact implements IWorldViewArtifact { return rollPercent.intValue(); } + public String getWorldViewLastUpdated() throws OseeCoreException, SQLException { + return XDate.getDateStr(getLastModified(), XDate.MMDDYYHHMM); + } + + public String getWorldViewLastStatused() throws OseeCoreException, SQLException { + return "(see children)"; + } + } diff --git a/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/StateMachineArtifact.java b/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/StateMachineArtifact.java index 5b1a3770b4d..1a190ecaa06 100644 --- a/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/StateMachineArtifact.java +++ b/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/StateMachineArtifact.java @@ -1217,4 +1217,11 @@ public abstract class StateMachineArtifact extends ATSArtifact implements IWorld return smaRelations; } + public String getWorldViewLastUpdated() throws OseeCoreException, SQLException { + return XDate.getDateStr(getLastModified(), XDate.MMDDYYHHMM); + } + + public String getWorldViewLastStatused() throws OseeCoreException, SQLException { + return XDate.getDateStr(getLog().getLastStatusedDate(), XDate.MMDDYYHHMM); + } } diff --git a/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkFlowArtifact.java b/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkFlowArtifact.java index e636d67ccea..449624fdee0 100644 --- a/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkFlowArtifact.java +++ b/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkFlowArtifact.java @@ -279,7 +279,8 @@ public class TeamWorkFlowArtifact extends TaskableStateMachineArtifact implement return XViewerCells.getCellExceptionString(errStr); } VersionArtifact verArt = verArts.iterator().next(); - if (!smaMgr.isCompleted() && verArt.getSoleAttributeValue(ATSAttributes.RELEASED_ATTRIBUTE.getStoreName(), false)) { + if (!smaMgr.isCompleted() && !smaMgr.isCancelled() && verArt.getSoleAttributeValue( + ATSAttributes.RELEASED_ATTRIBUTE.getStoreName(), false)) { String errStr = "Workflow " + smaMgr.getSma().getHumanReadableId() + " targeted for released version, but not completed: " + verArt; OSEELog.logException(AtsPlugin.class, errStr, null, false); diff --git a/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/AtsXColumn.java b/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/AtsXColumn.java index 6a3829693ed..0fec44e5ed8 100644 --- a/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/AtsXColumn.java +++ b/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/AtsXColumn.java @@ -78,6 +78,8 @@ public enum AtsXColumn { Percent_Rework_Col("Percent Rework", 40, SWT.CENTER, false, SortDataType.Integer, false), Branch_Status_Col("Branch Status", 40, SWT.CENTER, false, SortDataType.String, false), Number_of_Tasks_Col("Number of Tasks", 40, SWT.CENTER, false, SortDataType.String, false), + Last_Modified_Col("Last Modified", 40, SWT.CENTER, false, SortDataType.Date, false, "Retrieves timestamp of last database update of this artifact."), + Last_Statused_Col("Last Statused", 40, SWT.CENTER, false, SortDataType.Date, false, "Retrieves timestamp of status (percent completed or hours spent)."), Validation_Required_Col("Validation Required", 80, SWT.LEFT, false, SortDataType.String, false, "If set, Originator will be asked to perform a review to\nensure changes are as expected."); private final String name; diff --git a/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/IWorldViewArtifact.java b/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/IWorldViewArtifact.java index b70378669f1..9767f7bb081 100644 --- a/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/IWorldViewArtifact.java +++ b/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/IWorldViewArtifact.java @@ -10,7 +10,9 @@ *******************************************************************************/ package org.eclipse.osee.ats.world; +import java.sql.SQLException; import java.util.Date; +import org.eclipse.osee.framework.skynet.core.exception.OseeCoreException; import org.eclipse.osee.framework.ui.plugin.util.Result; import org.eclipse.osee.framework.ui.skynet.util.ChangeType; import org.eclipse.swt.graphics.Image; @@ -85,6 +87,10 @@ public interface IWorldViewArtifact { public String getWorldViewNumberOfTasks() throws Exception; + public String getWorldViewLastUpdated() throws OseeCoreException, SQLException; + + public String getWorldViewLastStatused() throws OseeCoreException, SQLException; + public String getWorldViewOriginator() throws Exception; public int getWorldViewPercentCompleteState() throws Exception; diff --git a/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldLabelProvider.java b/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldLabelProvider.java index a40f869eeb9..c538a3cd4a7 100644 --- a/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldLabelProvider.java +++ b/MS_0.2.0_20080619/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldLabelProvider.java @@ -70,6 +70,8 @@ public class WorldLabelProvider implements ITableLabelProvider, ITableColorProvi if (aCol == AtsXColumn.User_Community_Col) return wva.getWorldViewUserCommunity(); if (aCol == AtsXColumn.Title_Col) return wva.getWorldViewTitle(); if (aCol == AtsXColumn.Number_of_Tasks_Col) return wva.getWorldViewNumberOfTasks(); + if (aCol == AtsXColumn.Last_Modified_Col) return wva.getWorldViewLastUpdated(); + if (aCol == AtsXColumn.Last_Statused_Col) return wva.getWorldViewLastStatused(); if (aCol == AtsXColumn.Description_Col) return wva.getWorldViewDescription(); if (aCol == AtsXColumn.Validation_Required_Col) return wva.getWorldViewValidationRequiredStr(); if (aCol == AtsXColumn.Version_Target_Col) return wva.getWorldViewVersion(); diff --git a/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Artifact.java b/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Artifact.java index 65ca27945b7..482871baf49 100644 --- a/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Artifact.java +++ b/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Artifact.java @@ -18,6 +18,7 @@ import java.sql.SQLException; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Date;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
@@ -85,6 +86,7 @@ public class Artifact implements IAdaptable, Comparable<Artifact> { private int transactionId;
private int artId;
private int gammaId;
+ private Date lastModified;
private boolean linksLoaded;
protected Artifact(ArtifactFactory parentFactory, String guid, String humanReadableId, Branch branch, ArtifactType artifactType) {
@@ -1550,9 +1552,21 @@ public class Artifact implements IAdaptable, Comparable<Artifact> { return RelationManager.getRelatedArtifactsAll(this);
}
- void initPersistenceData(int gammaId, int transactionId, ModificationType modType, boolean active) {
+ void initPersistenceData(int gammaId, int transactionId, ModificationType modType, Date lastModified, boolean active) {
+ this.lastModified = lastModified;
this.deleted = modType == ModificationType.DELETED;
this.gammaId = gammaId;
this.transactionId = active ? 0 : transactionId;
}
+
+ public Date getLastModified() throws OseeCoreException, SQLException {
+ return lastModified;
+ }
+
+ /**
+ * @param lastModified the lastModified to set
+ */
+ public void setLastModified(Date lastModified) {
+ this.lastModified = lastModified;
+ }
}
\ No newline at end of file diff --git a/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactFactory.java b/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactFactory.java index bd7d536353d..7f75cce8d80 100644 --- a/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactFactory.java +++ b/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactFactory.java @@ -11,6 +11,7 @@ package org.eclipse.osee.framework.skynet.core.artifact; import java.sql.SQLException; +import java.util.Date; import org.eclipse.osee.framework.db.connection.core.schema.SkynetDatabase; import org.eclipse.osee.framework.skynet.core.attribute.AttributeToTransactionOperation; import org.eclipse.osee.framework.skynet.core.change.ModificationType; @@ -69,11 +70,11 @@ public abstract class ArtifactFactory { return artifact; } - public synchronized Artifact loadExisitingArtifact(int artId, int gammaId, String guid, String humandReadableId, String factoryKey, Branch branch, ArtifactType artifactType, int transactionId, ModificationType modType, boolean active) throws OseeCoreException { + public synchronized Artifact loadExisitingArtifact(int artId, int gammaId, String guid, String humandReadableId, String factoryKey, Branch branch, ArtifactType artifactType, int transactionId, ModificationType modType, Date time, boolean active) throws OseeCoreException { Artifact artifact = getArtifactInstance(guid, humandReadableId, factoryKey, branch, artifactType); artifact.setArtId(artId); - artifact.initPersistenceData(gammaId, transactionId, modType, active); + artifact.initPersistenceData(gammaId, transactionId, modType, time, active); ArtifactCache.cache(artifact); return artifact; diff --git a/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactLoader.java b/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactLoader.java index 44e44c33b01..aa434935e9f 100644 --- a/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactLoader.java +++ b/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactLoader.java @@ -55,7 +55,7 @@ public final class ArtifactLoader { "SELECT att1.art_id, att1.attr_id, att1.value, att1.gamma_id, att1.attr_type_id, att1.uri, al1.branch_id FROM osee_join_artifact al1, osee_define_attribute att1, osee_define_txs txs1, osee_define_tx_details txd1 WHERE al1.query_id = ? AND al1.art_id = att1.art_id AND att1.gamma_id = txs1.gamma_id AND txs1.tx_current=" + TxChange.CURRENT.getValue() + " AND txs1.transaction_id = txd1.transaction_id AND txd1.branch_id = al1.branch_id order by al1.branch_id, al1.art_id";
private static final String SELECT_ARTIFACTS =
- "SELECT al1.art_id, txs1.gamma_id, txs1.transaction_id, txd1.branch_id, art_type_id, guid, human_readable_id, mod_type FROM osee_join_artifact al1, osee_define_artifact art1, osee_define_artifact_version arv1, osee_define_txs txs1, osee_define_tx_details txd1 WHERE al1.query_id = ? AND al1.art_id = art1.art_id AND art1.art_id = arv1.art_id AND arv1.gamma_id = txs1.gamma_id AND txd1.branch_id = al1.branch_id AND txd1.transaction_id = txs1.transaction_id AND txs1.tx_current in (" + TxChange.CURRENT.getValue() + ", " + TxChange.DELETED.getValue() + ")";
+ "SELECT al1.art_id, txs1.gamma_id, txs1.transaction_id, txd1.time, txd1.branch_id, art_type_id, guid, human_readable_id, mod_type FROM osee_join_artifact al1, osee_define_artifact art1, osee_define_artifact_version arv1, osee_define_txs txs1, osee_define_tx_details txd1 WHERE al1.query_id = ? AND al1.art_id = art1.art_id AND art1.art_id = arv1.art_id AND arv1.gamma_id = txs1.gamma_id AND txd1.branch_id = al1.branch_id AND txd1.transaction_id = txs1.transaction_id AND txs1.tx_current in (" + TxChange.CURRENT.getValue() + ", " + TxChange.DELETED.getValue() + ")";
private static final String INSERT_JOIN_ARTIFACT =
"INSERT INTO osee_join_artifact (query_id, insert_time, art_id, branch_id) VALUES (?, ?, ?, ?)";
@@ -230,10 +230,11 @@ public final class ArtifactLoader { artifact =
factory.loadExisitingArtifact(artifactId, rSet.getInt("gamma_id"), rSet.getString("guid"),
rSet.getString("human_readable_id"), artifactType.getFactoryKey(), branch, artifactType,
- rSet.getInt("transaction_id"), ModificationType.getMod(rSet.getInt("mod_type")), true);
+ rSet.getInt("transaction_id"), ModificationType.getMod(rSet.getInt("mod_type")),
+ rSet.getDate("time"), true);
} else if (reload) {
artifact.initPersistenceData(rSet.getInt("gamma_id"), rSet.getInt("transaction_id"),
- ModificationType.getMod(rSet.getInt("mod_type")), true);
+ ModificationType.getMod(rSet.getInt("mod_type")), rSet.getDate("time"), true);
}
return artifact;
}
diff --git a/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactPersistenceManager.java b/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactPersistenceManager.java index c60c93dfff2..c330976deff 100644 --- a/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactPersistenceManager.java +++ b/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactPersistenceManager.java @@ -285,7 +285,7 @@ public class ArtifactPersistenceManager { factory.loadExisitingArtifact(rSet.getInt("art_id"), rSet.getInt("gamma_id"), rSet.getString("guid"),
rSet.getString("human_readable_id"), artifactType.getFactoryKey(), transactionId.getBranch(),
artifactType, rSet.getInt("transaction_id"), ModificationType.getMod(rSet.getInt("mod_type")),
- false);
+ rSet.getDate("time"), false);
setAttributesOnHistoricalArtifact(artifact);
diff --git a/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/transaction/SkynetTransaction.java b/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/transaction/SkynetTransaction.java index 45e9da036ae..6f7087c9b27 100644 --- a/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/transaction/SkynetTransaction.java +++ b/MS_0.2.0_20080619/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/transaction/SkynetTransaction.java @@ -17,6 +17,7 @@ import static org.eclipse.osee.framework.skynet.core.change.ModificationType.DEL import static org.eclipse.osee.framework.skynet.core.change.ModificationType.NEW;
import java.sql.SQLException;
import java.util.Collection;
+import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
@@ -79,6 +80,7 @@ public class SkynetTransaction { // exact transaction must be known over the life of this transaction despite the head transaction
// potentially moving on from other transactions occurring in parallel.
private Integer transactionNumber;
+ private Date transactionDate;
public SkynetTransaction(Branch branch) throws SQLException {
this(branch, SkynetAuthentication.getUser());
@@ -123,10 +125,10 @@ public class SkynetTransaction { blameArtId = userToBlame.getArtId();
}
+ transactionDate = GlobalTime.GreenwichMeanTimestamp();
datas.add(new Object[] {SQL3DataType.INTEGER, transactionNumber, SQL3DataType.VARCHAR, getComment(),
- SQL3DataType.TIMESTAMP, GlobalTime.GreenwichMeanTimestamp(), SQL3DataType.INTEGER, blameArtId,
- SQL3DataType.INTEGER, branch.getBranchId(), SQL3DataType.INTEGER,
- TransactionDetailsType.NonBaselined.getId()});
+ SQL3DataType.TIMESTAMP, transactionDate, SQL3DataType.INTEGER, blameArtId, SQL3DataType.INTEGER,
+ branch.getBranchId(), SQL3DataType.INTEGER, TransactionDetailsType.NonBaselined.getId()});
ConnectionHandler.runPreparedUpdateBatch(INSERT_INTO_TRANSACTION_DETAIL_TABLE, datas);
preparedBatch = new HashMap<String, List<Object[]>>();
@@ -164,6 +166,7 @@ public class SkynetTransaction { }
setArtifactsNotDirty();
+ updateLastModified();
} catch (SQLException ex) {
deleteTransactionDetail = true;
transactionCleanUp();
@@ -229,6 +232,15 @@ public class SkynetTransaction { }
}
+ private void updateLastModified() throws SQLException {
+ for (ITransactionData transactionData : transactionItems.keySet()) {
+ if (transactionData instanceof ArtifactTransactionData) {
+ Artifact artifact = ((ArtifactTransactionData) transactionData).getArtifact();
+ artifact.setLastModified(transactionDate);
+ }
+ }
+ }
+
// Supports adding new artifacts to the artifact table and
// updating attributes that are not versioned.
public boolean executeBatchToTransactions(IProgressMonitor monitor) throws SQLException {
|