Skip to content

Commit

Permalink
Add property uri to relation definitions. Use relation definition uri…
Browse files Browse the repository at this point in the history
… in rel attribute.
  • Loading branch information
Andreas committed Aug 24, 2016
1 parent 2dc2553 commit f5a8a67
Show file tree
Hide file tree
Showing 8 changed files with 42 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,16 @@
import com.vaadin.ui.Notification;
import com.vaadin.ui.Notification.Type;

import ch.hsr.isf.serepo.data.restinterface.common.Link;
import ch.hsr.isf.serepo.data.restinterface.metadata.MetadataContainer;
import ch.hsr.isf.serepo.data.restinterface.seitem.Relation;
import ch.hsr.isf.serepo.data.restinterface.seitem.RelationContainer;

public class SeItemDataLoader {

private SeItemDataLoader() {
}

public static List<Relation> loadRelations(String seItemUrl) {
public static List<Link> loadRelations(String seItemUrl) {
String uri = String.format("%s?relations", seItemUrl);
Client client = ClientBuilder.newClient();
WebTarget target = client.target(uri);
Expand All @@ -34,7 +34,7 @@ public static List<Relation> loadRelations(String seItemUrl) {
response = target.request().accept(MediaType.APPLICATION_JSON_TYPE).get();
if (response.getStatus() == Status.OK.getStatusCode()) {
RelationContainer relationContainer = response.readEntity(new GenericType<RelationContainer>(RelationContainer.class));
return relationContainer.getEntry().getRelations();
return relationContainer.getEntry().getLinks();
} else {
Notification.show(String.format("Error while loading metadata for SE-Item."), response.getStatusInfo().getReasonPhrase(), Type.ERROR_MESSAGE);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import java.util.List;
import java.util.Map;

import ch.hsr.isf.serepo.data.restinterface.seitem.Relation;
import ch.hsr.isf.serepo.data.restinterface.common.Link;
import ch.hsr.isf.serepo.data.restinterface.seitem.SeItem;

public interface ISeItemsView {
Expand All @@ -15,6 +15,6 @@ public interface ISeItemsView {

void setSeItemMetadata(String seItemName, Map<String, Object> metadata);

void setSeItemRelations(String seItemName, List<Relation> relations);
void setSeItemRelations(String seItemName, List<Link> relations);

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

import ch.hsr.isf.serepo.client.webapp.model.Settings;
import ch.hsr.isf.serepo.client.webapp.services.SeItemDataLoader;
import ch.hsr.isf.serepo.data.restinterface.seitem.Relation;
import ch.hsr.isf.serepo.data.restinterface.common.Link;
import ch.hsr.isf.serepo.data.restinterface.seitem.SeItem;
import ch.hsr.isf.serepo.data.restinterface.seitem.SeItemContainer;

Expand Down Expand Up @@ -76,7 +76,7 @@ private Map<String, Object> getMetadata(SeItem seItem) {
.toString());
}

private List<Relation> getRelations(SeItem seItem) {
private List<Link> getRelations(SeItem seItem) {
return SeItemDataLoader.loadRelations(seItem.getId()
.toString());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import ch.hsr.isf.serepo.client.webapp.view.seitems.containers.RelationsContainer;
import ch.hsr.isf.serepo.client.webapp.view.seitems.containers.seitem.SeItemTreeContainer;
import ch.hsr.isf.serepo.client.webapp.view.seitems.containers.seitem.SeItemTreeItem;
import ch.hsr.isf.serepo.data.restinterface.common.Link;
import ch.hsr.isf.serepo.data.restinterface.seitem.Relation;
import ch.hsr.isf.serepo.data.restinterface.seitem.SeItem;

Expand Down Expand Up @@ -82,7 +83,7 @@ public void setSeItemMetadata(String seItemName, Map<String, Object> metadata) {
}

@Override
public void setSeItemRelations(String seItemName, List<Relation> relations) {
public void setSeItemRelations(String seItemName, List<Link> relations) {
relationsContainer.setCaption(String.format("Relations for SE-Item '%s'", seItemName));
relationsContainer.setRelations(relations);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,36 +14,36 @@
import com.vaadin.ui.Table.ColumnGenerator;
import com.vaadin.ui.themes.ValoTheme;

import ch.hsr.isf.serepo.data.restinterface.seitem.Relation;
import ch.hsr.isf.serepo.data.restinterface.common.Link;

public class RelationsContainer extends CustomComponent {

private static final long serialVersionUID = 6136634101557738647L;

private final Table table;
private final BeanItemContainer<Relation> container;
private final BeanItemContainer<Link> container;

public RelationsContainer() {

setSizeFull();

table = new Table(null, container = new BeanItemContainer<>(Relation.class));
table = new Table(null, container = new BeanItemContainer<>(Link.class));
table.addStyleName(ValoTheme.TABLE_SMALL);
table.setSizeFull();
table.setSelectable(false);
table.setNullSelectionAllowed(false);
table.setVisibleColumns("type");
table.setVisibleColumns("title");
table.addGeneratedColumn("actions", new ColumnGenerator() {
private static final long serialVersionUID = -4513240938829501255L;

@Override
public Object generateCell(Table source, Object itemId, Object columnId) {
final Relation rel = (Relation) itemId;
final Link link = (Link) itemId;
Button btnShowTarget = new Button("show target", new ClickListener() {
private static final long serialVersionUID = 3560526349123313597L;
@Override
public void buttonClick(ClickEvent event) {
new RelationTargetContentBrowser(rel.getType(), rel.getTarget());
new RelationTargetContentBrowser(link.getTitle(), link.getHref());
}
});
btnShowTarget.addStyleName(ValoTheme.BUTTON_LINK);
Expand All @@ -56,14 +56,13 @@ public void buttonClick(ClickEvent event) {

}

public void setRelations(List<Relation> relations) {
List<Relation> relationsSorted = new ArrayList<Relation>(relations);
Collections.sort(relationsSorted, new Comparator<Relation>() {
public void setRelations(List<Link> relations) {
List<Link> relationsSorted = new ArrayList<Link>(relations);
Collections.sort(relationsSorted, new Comparator<Link>() {

@Override
public int compare(Relation o1, Relation o2) {
return o1.getType()
.compareTo(o2.getType());
public int compare(Link o1, Link o2) {
return o1.getTitle().compareTo(o2.getTitle());
}

});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,8 @@ public class RelationEntry {
private Date updated;

@AtomLink
@JsonIgnore
private List<Link> links = new ArrayList<>();

private List<Relation> relations = new ArrayList<>();

@AtomSummary
@JsonIgnore
private static final String SUMMARY = "Relations";
Expand Down Expand Up @@ -78,12 +75,4 @@ public void setLinks(List<Link> links) {
this.links = links;
}

public List<Relation> getRelations() {
return relations;
}

public void setRelations(List<Relation> relations) {
this.relations = relations;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,16 @@ public class RelationDefinition {

private String identifier;

private String uri;

private String description;

public RelationDefinition() {
}

public RelationDefinition(String identifier, String description) {
public RelationDefinition(String identifier, String uri, String description) {
this.identifier = identifier;
this.uri = uri;
this.description = description;
}

Expand All @@ -22,7 +25,15 @@ public void setIdentifier(String identifier) {
this.identifier = identifier;
}

public String getDescription() {
public String getUri() {
return uri;
}

public void setUri(String uri) {
this.uri = uri;
}

public String getDescription() {
return description;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
Expand All @@ -22,7 +24,6 @@
import ch.hsr.isf.serepo.data.restinterface.common.User;
import ch.hsr.isf.serepo.data.restinterface.metadata.MetadataContainer;
import ch.hsr.isf.serepo.data.restinterface.metadata.MetadataEntry;
import ch.hsr.isf.serepo.data.restinterface.seitem.Relation;
import ch.hsr.isf.serepo.data.restinterface.seitem.RelationContainer;
import ch.hsr.isf.serepo.data.restinterface.seitem.RelationEntry;
import ch.hsr.isf.serepo.data.restinterface.seitem.SeItem;
Expand Down Expand Up @@ -346,15 +347,20 @@ public boolean read(GitFile gitFile) {
relationEntry.setAuthor(new User(log.getAuthor().getName(), log.getAuthor().getEmail()));
relationEntry.setUpdated(log.getWhen());

// map relation identifier to relation
Map<String, RelationDefinition> mapRelDef = new HashMap<>();
for (RelationDefinition relDef : relationsFile.getDefinitions()) {
mapRelDef.put(relDef.getIdentifier(), relDef);
}
for (SectionLink sectionLink : sectionLinks) {
String target = null;
try {
target = new URI(null, null, baseUri.toString(), null).resolve(sectionLink.getUrl().replace(".md", "")).toString();
} catch (URISyntaxException e) {
target = sectionLink.getUrl();
}
relationEntry.getLinks().add(new Link(sectionLink.getSection(), target));
relationEntry.getRelations().add(new Relation(sectionLink.getSection(), target));
RelationDefinition relDef = mapRelDef.get(sectionLink.getSection());
relationEntry.getLinks().add(new Link(relDef.getIdentifier(), relDef.getUri(), target));
}

return Response.ok(relationContainer).build();
Expand Down

0 comments on commit f5a8a67

Please sign in to comment.