Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjmisinco2011-10-19 18:56:36 +0000
committerRoberto E. Escobar2011-10-19 18:56:36 +0000
commit0b4e81fd31958d53671aba8076c50ba9605c5e52 (patch)
tree98332c43ad0ecffe2e01db3d29cac827c0845950 /plugins/org.eclipse.osee.display.presenter
parent8f0c38716aea53274f1ee6013f62fa4075b5f28b (diff)
downloadorg.eclipse.osee-0b4e81fd31958d53671aba8076c50ba9605c5e52.tar.gz
org.eclipse.osee-0b4e81fd31958d53671aba8076c50ba9605c5e52.tar.xz
org.eclipse.osee-0b4e81fd31958d53671aba8076c50ba9605c5e52.zip
feature[ats_8KF8L]: Updates from peer review
Diffstat (limited to 'plugins/org.eclipse.osee.display.presenter')
-rw-r--r--plugins/org.eclipse.osee.display.presenter/src/org/eclipse/osee/display/presenter/WebSearchPresenter.java87
1 files changed, 65 insertions, 22 deletions
diff --git a/plugins/org.eclipse.osee.display.presenter/src/org/eclipse/osee/display/presenter/WebSearchPresenter.java b/plugins/org.eclipse.osee.display.presenter/src/org/eclipse/osee/display/presenter/WebSearchPresenter.java
index ea353065a08..3b455955cfe 100644
--- a/plugins/org.eclipse.osee.display.presenter/src/org/eclipse/osee/display/presenter/WebSearchPresenter.java
+++ b/plugins/org.eclipse.osee.display.presenter/src/org/eclipse/osee/display/presenter/WebSearchPresenter.java
@@ -12,6 +12,7 @@ package org.eclipse.osee.display.presenter;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -51,11 +52,16 @@ public class WebSearchPresenter<T extends SearchHeaderComponent> implements Sear
private final static Pattern artifactPattern = Pattern.compile("artifact=([0-9A-Za-z\\+_=]{20,22})");
private final static Pattern nameOnlyPattern = Pattern.compile("nameOnly=(true|false)");
private final static Pattern searchPhrasePattern = Pattern.compile("search=([\\d\\w%]*)");
+ private final static Pattern verbosePattern = Pattern.compile("verbose=(true|false)");
+
+ private final static String SIDE_A_KEY = "sideAName";
+ private final static String SIDE_B_KEY = "sideBName";
protected final Matcher branchMatcher;
protected final Matcher artifactMatcher;
protected final Matcher nameOnlyMatcher;
protected final Matcher searchPhraseMatcher;
+ protected final Matcher verboseMatcher;
public WebSearchPresenter(ArtifactProvider artifactProvider) {
this.artifactProvider = artifactProvider;
@@ -63,6 +69,7 @@ public class WebSearchPresenter<T extends SearchHeaderComponent> implements Sear
artifactMatcher = artifactPattern.matcher("");
nameOnlyMatcher = nameOnlyPattern.matcher("");
searchPhraseMatcher = searchPhrasePattern.matcher("");
+ verboseMatcher = verbosePattern.matcher("");
}
@Override
@@ -83,14 +90,14 @@ public class WebSearchPresenter<T extends SearchHeaderComponent> implements Sear
searchResults =
artifactProvider.getSearchResults(TokenFactory.createBranch(params.getBranchId(), ""), params.isNameOnly(),
params.getSearchPhrase());
- } catch (OseeCoreException ex) {
- setErrorMessage(searchResultsComp, "Error while searching");
+ } catch (Exception ex) {
+ setErrorMessage(searchResultsComp, "An error occured while searching");
return;
}
if (searchResults != null && searchResults.size() > 0) {
try {
processSearchResults(searchResults, searchResultsComp);
- } catch (OseeCoreException ex) {
+ } catch (Exception ex) {
setErrorMessage(searchResultsComp, "Error while processing results");
return;
}
@@ -133,7 +140,7 @@ public class WebSearchPresenter<T extends SearchHeaderComponent> implements Sear
ReadableArtifact displayArt = null;
try {
displayArt = artifactProvider.getArtifactByGuid(TokenFactory.createBranch(branch, ""), art);
- } catch (OseeCoreException e) {
+ } catch (Exception e) {
setErrorMessage(artHeaderComp, String.format("Error while loading artifact[%s] from branch:[%s]", art, branch));
return;
}
@@ -149,20 +156,22 @@ public class WebSearchPresenter<T extends SearchHeaderComponent> implements Sear
Collection<RelationType> relationTypes = null;
try {
relationTypes = displayArt.getValidRelationTypes();
- } catch (OseeCoreException ex1) {
+ } catch (Exception e) {
setErrorMessage(relComp, String.format("Error loading relation types for: [%s]", displayArt.getName()));
return;
}
for (RelationType relType : relationTypes) {
- relComp.addRelationType(new WebId(relType.getGuid().toString() + ":A", relType.getSideAName()));
- relComp.addRelationType(new WebId(relType.getGuid().toString() + ":B", relType.getSideBName()));
+ WebId toAdd = new WebId(relType.getGuid().toString(), relType.getName());
+ toAdd.setAttribute(SIDE_A_KEY, relType.getSideAName());
+ toAdd.setAttribute(SIDE_B_KEY, relType.getSideBName());
+ relComp.addRelationType(toAdd);
}
attrComp.clearAll();
Collection<IAttributeType> attributeTypes = null;
try {
attributeTypes = displayArt.getAttributeTypes();
- } catch (OseeCoreException ex) {
+ } catch (Exception ex) {
setErrorMessage(attrComp, String.format("Error loading attributes for: [%s]", displayArt.getName()));
return;
}
@@ -173,7 +182,7 @@ public class WebSearchPresenter<T extends SearchHeaderComponent> implements Sear
for (ReadableAttribute<Object> value : attributesValues) {
attrComp.addAttribute(attrType.getName(), value.getDisplayableString());
}
- } catch (OseeCoreException ex) {
+ } catch (Exception ex) {
setErrorMessage(attrComp, String.format("Error loading attributes for: [%s]", displayArt.getName()));
return;
}
@@ -187,29 +196,63 @@ public class WebSearchPresenter<T extends SearchHeaderComponent> implements Sear
setErrorMessage(relationComponent, "Error: Null detected in selectRelationType parameters");
return;
}
- String relGuid = relation.getGuid().split(":")[0];
- String sideId = relation.getGuid().split(":")[1];
- RelationSide side = RelationSide.SIDE_B;
- if (sideId.equalsIgnoreCase("A")) {
- side = RelationSide.SIDE_A;
- }
+ String relGuid = relation.getGuid();
+
IRelationType type = TokenFactory.createRelationType(Long.parseLong(relGuid), relation.getName());
IOseeBranch branch = TokenFactory.createBranch(artifact.getBranch().getGuid(), "");
ReadableArtifact sourceArt;
+ Collection<ReadableArtifact> relatedSideA = null;
+ Collection<ReadableArtifact> relatedSideB = null;
Collection<ReadableArtifact> related = null;
try {
sourceArt = artifactProvider.getArtifactByGuid(branch, artifact.getGuid());
- related =
- sourceArt.getRelatedArtifacts(TokenFactory.createRelationTypeSide(side, type.getGuid(), type.getName()),
- null);
- } catch (OseeCoreException ex) {
+ for (RelationSide side : RelationSide.values()) {
+ related =
+ sourceArt.getRelatedArtifacts(TokenFactory.createRelationTypeSide(side, type.getGuid(), type.getName()),
+ null);
+ if (side.isSideA()) {
+ relatedSideA = related;
+ } else {
+ relatedSideB = related;
+ }
+ }
+ } catch (Exception ex) {
setErrorMessage(relationComponent,
String.format("Error loading relations for artifact[%s]", artifact.getGuid()));
return;
}
- for (ReadableArtifact rel : related) {
+
+ Collection<ReadableArtifact> relatedLeftSide = null;
+ Collection<ReadableArtifact> relatedRightSide = null;
+ String leftSideName = null, rightSideName = null;
+ if (relatedSideA.size() == 0 && relatedSideB.size() != 0) {
+ relatedRightSide = relatedSideB;
+ relatedLeftSide = Collections.emptyList();
+ rightSideName = relation.getAttribute(SIDE_B_KEY);
+ } else if (relatedSideA.size() != 0 && relatedSideB.size() == 0) {
+ relatedRightSide = relatedSideA;
+ relatedLeftSide = Collections.emptyList();
+ rightSideName = relation.getAttribute(SIDE_A_KEY);
+ } else if (relatedSideA.size() == 0 && relatedSideB.size() == 0) {
+ relatedRightSide = Collections.emptyList();
+ relatedLeftSide = Collections.emptyList();
+ } else {
+ relatedRightSide = relatedSideA;
+ relatedLeftSide = relatedSideB;
+ rightSideName = relation.getAttribute(SIDE_A_KEY);
+ leftSideName = relation.getAttribute(SIDE_B_KEY);
+ }
+
+ relationComponent.setLeftName(leftSideName);
+ relationComponent.setRightName(rightSideName);
+
+ for (ReadableArtifact rel : relatedLeftSide) {
+ WebArtifact id = convertToWebArtifact(rel);
+ relationComponent.addLeftRelated(id);
+ }
+ for (ReadableArtifact rel : relatedRightSide) {
WebArtifact id = convertToWebArtifact(rel);
- relationComponent.addRelation(id);
+ relationComponent.addRightRelated(id);
}
}
@@ -225,7 +268,7 @@ public class WebSearchPresenter<T extends SearchHeaderComponent> implements Sear
StringBuilder sb = new StringBuilder();
sb.append("/branch=");
sb.append(artifact.getBranch().getGuid());
- sb.append("?artifact=");
+ sb.append("&artifact=");
sb.append(artifact.getGuid());
return sb.toString();
}

Back to the top