Skip to content

Commit

Permalink
Fixed breadcrumb on Server (refactoring) [skip ci]
Browse files Browse the repository at this point in the history
  • Loading branch information
006627 committed Oct 25, 2019
1 parent 60647a6 commit 7a02dfa
Show file tree
Hide file tree
Showing 19 changed files with 442 additions and 818 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.databasepreservation.desktop.client.common.helper;
package com.databasepreservation.common.shared.client.common.helpers;

import java.util.Collections;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
package com.databasepreservation.common.shared.client.common.lists;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.*;

import org.roda.core.data.v2.common.Pair;
import org.roda.core.data.v2.index.IndexResult;
Expand All @@ -17,21 +11,17 @@

import com.databasepreservation.common.client.BrowserService;
import com.databasepreservation.common.shared.ViewerConstants;
import com.databasepreservation.common.shared.ViewerStructure.ViewerColumn;
import com.databasepreservation.common.shared.ViewerStructure.ViewerDatabase;
import com.databasepreservation.common.shared.ViewerStructure.ViewerRow;
import com.databasepreservation.common.shared.ViewerStructure.ViewerTable;
import com.databasepreservation.common.shared.ViewerStructure.ViewerType;
import com.databasepreservation.common.shared.ViewerStructure.*;
import com.databasepreservation.common.shared.client.ClientLogger;
import com.databasepreservation.common.shared.client.common.DefaultAsyncCallback;
import com.databasepreservation.common.shared.client.common.dialogs.Dialogs;
import com.databasepreservation.common.shared.client.common.helpers.HelperExportTableData;
import com.databasepreservation.common.shared.client.common.utils.CommonClientUtils;
import com.databasepreservation.common.shared.client.common.utils.UriQueryUtils;
import com.databasepreservation.common.shared.client.tools.FilterUtils;
import com.databasepreservation.common.shared.client.tools.FontAwesomeIconManager;
import com.databasepreservation.common.shared.client.tools.ViewerJsonUtils;
import com.databasepreservation.common.shared.client.tools.ViewerStringUtils;
import com.databasepreservation.desktop.client.common.dialogs.Dialogs;
import com.google.gwt.cell.client.Cell;
import com.google.gwt.cell.client.SafeHtmlCell;
import com.google.gwt.core.shared.GWT;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.databasepreservation.common.shared.client.common.utils;

import com.databasepreservation.common.shared.ViewerStructure.ViewerDatabase;
import com.databasepreservation.common.shared.client.common.ContentPanel;

/**
* @author Gabriel Barros <gbarros@keep.pt>
*/
public abstract class ContentPanelLoader {
public abstract ContentPanel load(ViewerDatabase database);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,19 @@
import java.util.HashMap;
import java.util.Map;

import com.databasepreservation.Constants;
import com.databasepreservation.common.shared.ViewerConstants;
import com.databasepreservation.common.shared.client.common.ContentPanel;
import com.databasepreservation.common.shared.client.common.utils.ApplicationType;
import org.roda.core.data.v2.user.User;

import com.databasepreservation.common.client.BrowserService;
import com.databasepreservation.common.shared.ViewerConstants;
import com.databasepreservation.common.shared.ViewerStructure.IsIndexed;
import com.databasepreservation.common.shared.ViewerStructure.ViewerDatabase;
import com.databasepreservation.common.shared.client.breadcrumb.BreadcrumbPanel;
import com.databasepreservation.common.shared.client.common.ContentPanel;
import com.databasepreservation.common.shared.client.common.DefaultAsyncCallback;
import com.databasepreservation.common.shared.client.common.LoginStatusListener;
import com.databasepreservation.common.shared.client.common.UserLogin;
import com.databasepreservation.common.shared.client.common.sidebar.DatabaseSidebar;
import com.databasepreservation.common.shared.client.common.utils.ApplicationType;
import com.databasepreservation.common.shared.client.common.utils.ContentPanelLoader;
import com.databasepreservation.common.shared.client.common.utils.JavascriptUtils;
import com.databasepreservation.common.shared.client.tools.BreadcrumbManager;
import com.databasepreservation.common.shared.client.tools.FontAwesomeIconManager;
Expand Down Expand Up @@ -218,7 +217,35 @@ public void load(ContentPanel panel) {
panel.handleBreadcrumb(breadcrumb);
panelContainer.setWidget(panel);
panel.setVisible(true);
}

public void load(ContentPanelLoader panelLoader) {
if (databaseUUID != null && (database == null || !ViewerDatabase.Status.AVAILABLE.equals(database.getStatus()))) {
// need to load database (not present or not available), go get it
loadPanelWithDatabase(panelLoader);
} else {
loadPanel(panelLoader);
}
}

private void loadPanelWithDatabase(final ContentPanelLoader panelLoader) {
BrowserService.Util.getInstance().retrieve(databaseUUID, ViewerDatabase.class.getName(), databaseUUID,
new DefaultAsyncCallback<IsIndexed>() {
@Override
public void onSuccess(IsIndexed result) {
database = (ViewerDatabase) result;
loadPanel(panelLoader);
}
});
}

public void loadPanel(ContentPanelLoader panelLoader) {
ContentPanel panel = panelLoader.load(database);
if (panel != null) {
panel.handleBreadcrumb(breadcrumb);
panelContainer.setWidget(panel);
panel.setVisible(true);
}
}

public void setTopLevelPanelCSS(String css) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,32 +13,21 @@
import com.databasepreservation.common.shared.client.common.ContentPanel;
import com.databasepreservation.common.shared.client.common.DefaultAsyncCallback;
import com.databasepreservation.common.shared.client.common.MetadataField;
import com.databasepreservation.common.shared.client.common.NavigationPanel;
import com.databasepreservation.common.shared.client.common.desktop.GenericField;
import com.databasepreservation.common.shared.client.common.dialogs.CommonDialogs;
import com.databasepreservation.common.shared.client.common.dialogs.Dialogs;
import com.databasepreservation.common.shared.client.common.helper.HelperValidator;
import com.databasepreservation.common.shared.client.common.utils.ApplicationType;
import com.databasepreservation.common.shared.client.common.utils.JavascriptUtils;
import com.databasepreservation.common.shared.client.common.visualization.browse.validate.ValidatorPage;
import com.databasepreservation.common.shared.client.tools.BreadcrumbManager;
import com.databasepreservation.common.shared.client.tools.FontAwesomeIconManager;
import com.databasepreservation.common.shared.client.tools.HistoryManager;
import com.databasepreservation.common.shared.client.tools.Humanize;
import com.databasepreservation.common.shared.client.tools.PathUtils;
import com.databasepreservation.common.shared.client.tools.SolrHumanizer;
import com.databasepreservation.common.shared.client.tools.ViewerStringUtils;
import com.databasepreservation.common.shared.client.common.NavigationPanel;
import com.databasepreservation.common.shared.client.common.dialogs.Dialogs;
import com.databasepreservation.common.shared.client.common.helper.HelperValidator;
import com.databasepreservation.common.shared.client.tools.*;
import com.google.gwt.core.client.GWT;
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.user.client.ui.*;

import config.i18n.client.ClientMessages;

Expand Down Expand Up @@ -80,12 +69,15 @@ interface SIARDInfoUiBinder extends UiBinder<Widget, SIARDMainPage> {
@Override
public void handleBreadcrumb(BreadcrumbPanel breadcrumb) {
this.breadcrumb = breadcrumb;
List<BreadcrumbItem> breadcrumbItems = BreadcrumbManager.forSIARDMainPage(database.getUUID(),
database.getMetadata().getName());
BreadcrumbManager.updateBreadcrumb(breadcrumb, breadcrumbItems);
}

public static SIARDMainPage getInstance(String databaseUUID) {

public static SIARDMainPage getInstance(ViewerDatabase database) {
String databaseUUID = database.getUUID();
if (instances.get(databaseUUID) == null) {
SIARDMainPage instance = new SIARDMainPage(databaseUUID);
SIARDMainPage instance = new SIARDMainPage(database);
instances.put(databaseUUID, instance);
}

Expand All @@ -104,9 +96,6 @@ public static SIARDMainPage getInstance(String databaseUUID) {
@UiField
FlowPanel navigationPanels;

// @UiField
// BreadcrumbPanel breadcrumb;

@UiField
SimplePanel description;

Expand All @@ -116,43 +105,31 @@ public static SIARDMainPage getInstance(String databaseUUID) {
@UiField
Button btnExclude;

private SIARDMainPage(final String databaseUUID) {

private SIARDMainPage(final ViewerDatabase database) {
initWidget(binder.createAndBindUi(this));
this.database = database;

final Widget loading = new HTML(SafeHtmlUtils.fromSafeConstant(
"<div id='loading' class='spinner'><div class='double-bounce1'></div><div class='double-bounce2'></div></div>"));
container.add(loading);

BrowserService.Util.getInstance().retrieve(databaseUUID, ViewerDatabase.class.getName(), databaseUUID,
new DefaultAsyncCallback<IsIndexed>() {
BrowserService.Util.getInstance().getDateTimeHumanized(database.getValidatedAt(),
new DefaultAsyncCallback<String>() {
@Override
public void onSuccess(IsIndexed result) {
database = (ViewerDatabase) result;
BrowserService.Util.getInstance().getDateTimeHumanized(database.getValidatedAt(),
public void onSuccess(String result) {
validateAtHumanized = result;
BrowserService.Util.getInstance().getDateTimeHumanized(database.getMetadata().getArchivalDate(),
new DefaultAsyncCallback<String>() {
@Override
public void onSuccess(String result) {
validateAtHumanized = result;
BrowserService.Util.getInstance().getDateTimeHumanized(database.getMetadata().getArchivalDate(),
new DefaultAsyncCallback<String>() {
@Override
public void onSuccess(String result) {
archivalDateHumanized = result;
populateMetadataInfo();
populateDescription();
populateNavigationPanels();

List<BreadcrumbItem> breadcrumbItems = BreadcrumbManager.forSIARDMainPage(databaseUUID,
database.getMetadata().getName());
BreadcrumbManager.updateBreadcrumb(breadcrumb, breadcrumbItems);

setupFooterButtons();

container.remove(loading);
populationFieldsCompleted = true;
}
});
archivalDateHumanized = result;
populateMetadataInfo();
populateDescription();
populateNavigationPanels();
setupFooterButtons();

container.remove(loading);
populationFieldsCompleted = true;
}
});
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:m='urn:import:com.databasepreservation.common.shared.client.breadcrumb'>
xmlns:g='urn:import:com.google.gwt.user.client.ui'>

<g:FlowPanel addStyleNames="application-container" ui:field="container">
<!-- <m:BreadcrumbPanel ui:field="breadcrumb" addStyleNames="browseContentBreadcrumb"/>-->
<g:FlowPanel addStyleNames="browseContentPreviewPanel" ui:field="panel">
<g:FlowPanel addStyleNames="metadata-information-panel" ui:field="metadataInformation"/>
<g:SimplePanel addStyleNames="metadata-description" ui:field="description"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import java.util.List;
import java.util.Map;

import com.databasepreservation.common.shared.ViewerStructure.ViewerDatabase;
import com.databasepreservation.common.shared.client.breadcrumb.BreadcrumbItem;
import com.databasepreservation.common.shared.client.breadcrumb.BreadcrumbPanel;
import com.databasepreservation.common.shared.client.common.ContentPanel;
Expand Down Expand Up @@ -32,7 +33,6 @@ interface IngestPageUiBinder extends UiBinder<Widget, IngestPage> {

private static IngestPageUiBinder binder = GWT.create(IngestPageUiBinder.class);
private static Map<String, IngestPage> instances = new HashMap<>();
private BreadcrumbPanel breadcrumb;
private String databaseUUID;
private String databaseName;

Expand All @@ -42,8 +42,10 @@ public void handleBreadcrumb(BreadcrumbPanel breadcrumb) {
BreadcrumbManager.updateBreadcrumb(breadcrumb, breadcrumbItems);
}

public static IngestPage getInstance(String databaseUUID, String databaseName) {
public static IngestPage getInstance(ViewerDatabase database) {

String databaseUUID = database.getUUID();
String databaseName = database.getMetadata().getName();
if (instances.get(databaseUUID) == null) {
IngestPage instance = new IngestPage(databaseUUID, databaseName);
instances.put(databaseUUID, instance);
Expand All @@ -55,9 +57,6 @@ public static IngestPage getInstance(String databaseUUID, String databaseName) {
@UiField
FlowPanel container, panel;

// @UiField
// BreadcrumbPanel breadcrumb;

@UiField
Button btnBack;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.databasepreservation.desktop.client.dbptk;
package com.databasepreservation.common.shared.client.common.visualization.browse.manager;

import java.util.List;

Expand All @@ -9,20 +9,21 @@
import com.databasepreservation.common.shared.ViewerStructure.ViewerDatabase;
import com.databasepreservation.common.shared.client.breadcrumb.BreadcrumbItem;
import com.databasepreservation.common.shared.client.breadcrumb.BreadcrumbPanel;
import com.databasepreservation.common.shared.client.common.ContentPanel;
import com.databasepreservation.common.shared.client.common.helpers.HelperUploadSIARDFile;
import com.databasepreservation.common.shared.client.common.lists.DatabaseList;
import com.databasepreservation.common.shared.client.common.utils.ApplicationType;
import com.databasepreservation.common.shared.client.tools.BreadcrumbManager;
import com.databasepreservation.common.shared.client.tools.HistoryManager;
import com.databasepreservation.common.shared.client.tools.ViewerStringUtils;
import com.databasepreservation.common.shared.client.widgets.wcag.AccessibleFocusPanel;
import com.databasepreservation.desktop.client.common.helper.HelperUploadSIARDFile;
import com.databasepreservation.common.shared.client.common.lists.DatabaseList;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.KeyDownEvent;
import com.google.gwt.event.dom.client.KeyDownHandler;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;

Expand All @@ -31,17 +32,23 @@
/**
* @author Miguel Guimarães <mguimaraes@keep.pt>
*/
public class Manage extends Composite {
public class Manage extends ContentPanel {
@UiField
public ClientMessages messages = GWT.create(ClientMessages.class);

@Override
public void handleBreadcrumb(BreadcrumbPanel breadcrumb) {
List<BreadcrumbItem> breadcrumbItems = BreadcrumbManager.forManageSIARD();
BreadcrumbManager.updateBreadcrumb(breadcrumb, breadcrumbItems);
}

interface ManageUiBinder extends UiBinder<Widget, Manage> {
}

private static ManageUiBinder binder = GWT.create(ManageUiBinder.class);

@UiField
BreadcrumbPanel breadcrumb;
// @UiField
// BreadcrumbPanel breadcrumb;

@UiField
TextBox searchInputBox;
Expand Down Expand Up @@ -70,9 +77,6 @@ private Manage() {

initWidget(binder.createAndBindUi(this));

List<BreadcrumbItem> breadcrumbItems = BreadcrumbManager.forManageSIARD();
BreadcrumbManager.updateBreadcrumb(breadcrumb, breadcrumbItems);

searchInputBox.getElement().setPropertyString("placeholder", messages.searchPlaceholder());

searchInputBox.addKeyDownHandler(new KeyDownHandler() {
Expand All @@ -89,17 +93,24 @@ public void onKeyDown(KeyDownEvent event) {
databaseList.getSelectionModel().addSelectionChangeHandler(event -> {
ViewerDatabase selected = databaseList.getSelectionModel().getSelectedObject();
if (selected != null) {
databaseList.getSelectionModel().clear();
if(ApplicationType.getType().equals(ViewerConstants.SERVER)){
HistoryManager.gotoSIARDInfo(selected.getUUID());
}
databaseList.getSelectionModel().clear();
}
});

initButtons();
}

private void initButtons() {
create.addClickHandler(event -> HistoryManager.gotoCreateSIARD());

open.addClickHandler(event -> new HelperUploadSIARDFile().openFile(databaseList));
if (ApplicationType.getType().equals(ViewerConstants.DESKTOP)) {
create.addClickHandler(event -> HistoryManager.gotoCreateSIARD());
open.addClickHandler(event -> new HelperUploadSIARDFile().openFile(databaseList));
} else {
create.setVisible(false);
open.addClickHandler(event -> HistoryManager.gotoNewUpload());
}
}

private void doSearch() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@

<ui:with field='messages' type='config.i18n.client.ClientMessages' />
<g:FlowPanel addStyleNames="application-container">
<m:BreadcrumbPanel ui:field="breadcrumb" />
<g:FlowPanel addStyleNames="manage-panel">
<g:FlowPanel styleName="searchPanel" ui:field="searchPanel">
<g:FlowPanel styleName="searchPanelLeft">
Expand Down
Loading

0 comments on commit 7a02dfa

Please sign in to comment.