Skip to content

Commit d987286

Browse files
committed
wip ui representation information.
1 parent 1cd1330 commit d987286

File tree

7 files changed

+290
-295
lines changed

7 files changed

+290
-295
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package org.roda.wui.client.browse.tabs;
2+
3+
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
4+
import com.google.gwt.user.client.ui.Widget;
5+
import org.roda.core.data.v2.ri.RepresentationInformation;
6+
7+
/**
8+
*
9+
* @author Eduardo Teixeira <eteixeira@keep.pt>
10+
*/
11+
public class BrowseRepresentationInformationTabs extends Tabs{
12+
public void init(RepresentationInformation ri){
13+
createAndAddTab(SafeHtmlUtils.fromSafeConstant(messages.detailsTab()), new TabContentBuilder() {
14+
@Override
15+
public Widget buildTabWidget() {
16+
return new DetailsTab(ri);
17+
}
18+
});
19+
}
20+
}

roda-ui/roda-wui/src/main/java/org/roda/wui/client/browse/tabs/DetailsTab.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@
1111

1212
import org.roda.core.data.v2.ip.IndexedFile;
1313
import org.roda.core.data.v2.ip.TransferredResource;
14+
import org.roda.core.data.v2.ri.RepresentationInformation;
1415
import org.roda.wui.client.common.model.BrowseAIPResponse;
1516
import org.roda.wui.client.common.model.BrowseRepresentationResponse;
17+
import org.roda.wui.client.planning.DetailsPanelRepresentationInformation;
1618
import org.roda.wui.client.ingest.transfer.DetailsPanelTransferredResource;
1719
import org.roda.wui.client.planning.DetailsPanelAIP;
1820
import org.roda.wui.client.planning.DetailsPanelFile;
@@ -58,6 +60,13 @@ public DetailsTab(IndexedFile file, List<String> riRules) {
5860
content.add(detailsPanel);
5961
}
6062

63+
public DetailsTab(RepresentationInformation ri){
64+
initWidget(uiBinder.createAndBindUi(this));
65+
66+
DetailsPanelRepresentationInformation detailsPanel = new DetailsPanelRepresentationInformation(ri);
67+
content.add(detailsPanel);
68+
}
69+
6170
public DetailsTab(TransferredResource resource) {
6271
initWidget(uiBinder.createAndBindUi(this));
6372

roda-ui/roda-wui/src/main/java/org/roda/wui/client/main/BreadcrumbUtils.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,14 @@
1919
import org.roda.core.data.v2.ip.IndexedFile;
2020
import org.roda.core.data.v2.ip.IndexedRepresentation;
2121
import org.roda.core.data.v2.ip.TransferredResource;
22+
import org.roda.core.data.v2.ri.RepresentationInformation;
2223
import org.roda.wui.client.browse.BrowseTop;
2324
import org.roda.wui.client.browse.PreservationEvents;
2425
import org.roda.wui.client.disposal.DisposalDestroyedRecords;
2526
import org.roda.wui.client.ingest.appraisal.IngestAppraisal;
2627
import org.roda.wui.client.ingest.transfer.IngestTransfer;
28+
import org.roda.wui.client.planning.RepresentationInformationNetwork;
29+
import org.roda.wui.client.planning.ShowRepresentationInformation;
2730
import org.roda.wui.common.client.tools.DescriptionLevelUtils;
2831
import org.roda.wui.common.client.tools.HistoryUtils;
2932
import org.roda.wui.common.client.tools.ListUtils;
@@ -352,6 +355,23 @@ public static List<BreadcrumbItem> getTransferredResourceBreadcrumbs(Transferred
352355
return ret;
353356
}
354357

358+
public static List<BreadcrumbItem> getRepresentationInformationBreadCrumbs(RepresentationInformation ri){
359+
List<BreadcrumbItem> ret = new ArrayList<>();
360+
ret.add(new BreadcrumbItem(
361+
SafeHtmlUtils.fromSafeConstant(messages.representationInformationTitle()),
362+
messages.representationInformationTitle(),
363+
RepresentationInformationNetwork.RESOLVER.getHistoryPath()));
364+
365+
if (ri != null) {
366+
List<String> path = new ArrayList<>(ShowRepresentationInformation.RESOLVER.getHistoryPath());
367+
path.add(ri.getUUID());
368+
String label = ri.getName() != null ? ri.getName() : ri.getId();
369+
ret.add(new BreadcrumbItem(SafeHtmlUtils.fromString(label), label, path));
370+
}
371+
372+
return ret;
373+
}
374+
355375
public static List<BreadcrumbItem> getDipBreadcrumbs(IndexedDIP dip, DIPFile dipFile,
356376
List<DIPFile> dipFileAncestors) {
357377
List<BreadcrumbItem> ret = new ArrayList<>();
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package org.roda.wui.client.planning;
2+
3+
import com.google.gwt.core.client.GWT;
4+
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
5+
import com.google.gwt.uibinder.client.UiBinder;
6+
import com.google.gwt.uibinder.client.UiField;
7+
import com.google.gwt.user.client.ui.Composite;
8+
import com.google.gwt.user.client.ui.FlowPanel;
9+
import com.google.gwt.user.client.ui.InlineHTML;
10+
import com.google.gwt.user.client.ui.Label;
11+
import com.google.gwt.user.client.ui.Widget;
12+
import config.i18n.client.ClientMessages;
13+
import org.roda.core.data.v2.ri.RepresentationInformation;
14+
import org.roda.wui.common.client.tools.StringUtils;
15+
16+
/**
17+
*
18+
* @author Eduardo Teixeira <eteixeira@keep.pt>
19+
*/
20+
public class DetailsPanelRepresentationInformation extends Composite {
21+
private static final ClientMessages messages = GWT.create(ClientMessages.class);
22+
private static final MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
23+
24+
@UiField
25+
FlowPanel details;
26+
27+
public DetailsPanelRepresentationInformation(RepresentationInformation ri) {
28+
initWidget(uiBinder.createAndBindUi(this));
29+
init(ri);
30+
}
31+
32+
private void init(RepresentationInformation ri) {
33+
//addIfNotBlank();
34+
}
35+
36+
37+
private void addIfNotBlank(String label, String value) {
38+
if (StringUtils.isNotBlank(value)) {
39+
details.add(buildField(label, new InlineHTML(SafeHtmlUtils.htmlEscape(value))));
40+
}
41+
}
42+
43+
private Widget buildField(String label, InlineHTML html) {
44+
FlowPanel fieldPanel = new FlowPanel();
45+
fieldPanel.setStyleName("field");
46+
47+
Label fieldLabel = new Label(label);
48+
fieldLabel.setStyleName("label");
49+
50+
FlowPanel fieldValuePanel = new FlowPanel();
51+
fieldValuePanel.setStyleName("value");
52+
fieldValuePanel.add(html);
53+
54+
fieldPanel.add(fieldLabel);
55+
fieldPanel.add(fieldValuePanel);
56+
57+
return fieldPanel;
58+
}
59+
60+
interface MyUiBinder extends UiBinder<Widget, DetailsPanelRepresentationInformation> {
61+
Widget createAndBindUi(DetailsPanelRepresentationInformation representationInformationPanel);
62+
}
63+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
3+
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui"
4+
>
5+
6+
<ui:with field='messages' type='config.i18n.client.ClientMessages'/>
7+
8+
<g:FlowPanel addStyleNames="descriptiveMetadataHTML">
9+
<g:FlowPanel ui:field="details" addStyleNames="descriptiveMetadata"/>
10+
11+
</g:FlowPanel>
12+
</ui:UiBinder>

0 commit comments

Comments
 (0)