Skip to content

Commit

Permalink
Activity log list page #148 [skip ci]
Browse files Browse the repository at this point in the history
  • Loading branch information
hmiguim committed Dec 17, 2019
1 parent 6aeb032 commit f97e3d1
Show file tree
Hide file tree
Showing 2 changed files with 121 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
package com.databasepreservation.common.client.common.visualization.activity.log;

import org.roda.core.data.v2.index.filter.BasicSearchFilterParameter;
import org.roda.core.data.v2.index.filter.Filter;

import com.databasepreservation.common.client.ViewerConstants;
import com.databasepreservation.common.client.common.ContentPanel;
import com.databasepreservation.common.client.common.breadcrumb.BreadcrumbPanel;
import com.databasepreservation.common.client.common.lists.ActivityLogList;
import com.databasepreservation.common.client.models.activity.logs.ActivityLogEntry;
import com.databasepreservation.common.client.tools.BreadcrumbManager;
import com.databasepreservation.common.client.tools.ViewerStringUtils;
import com.databasepreservation.common.client.widgets.wcag.AccessibleFocusPanel;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;

import config.i18n.client.ClientMessages;

/**
* @author Miguel Guimarães <mguimaraes@keep.pt>
*/
public class ActivityLogPanel extends ContentPanel {
private static final ClientMessages messages = GWT.create(ClientMessages.class);

public static ActivityLogPanel createInstance() {
return new ActivityLogPanel();
}

interface RowPanelUiBinder extends UiBinder<Widget, ActivityLogPanel> {
}

private static RowPanelUiBinder uiBinder = GWT.create(RowPanelUiBinder.class);

@UiField
TextBox searchInputBox;

@UiField
AccessibleFocusPanel searchInputButton;

@UiField(provided = true)
ActivityLogList activityLogList;

private ActivityLogPanel() {
activityLogList = new ActivityLogList();

initWidget(uiBinder.createAndBindUi(this));

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

searchInputBox.addKeyDownHandler(event -> {
if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
doSearch();
}
});

searchInputButton.addClickHandler(event -> doSearch());

activityLogList.getSelectionModel().addSelectionChangeHandler(event -> {
ActivityLogEntry selected = activityLogList.getSelectionModel().getSelectedObject();
if (selected != null) {
GWT.log("CLICK");
activityLogList.getSelectionModel().clear();
}

});
}

@Override
public void handleBreadcrumb(BreadcrumbPanel breadcrumb) {
BreadcrumbManager.updateBreadcrumb(breadcrumb, BreadcrumbManager.forActivityLog());
}

private void doSearch() {
// start searching
Filter filter;
String searchText = searchInputBox.getText();
if (ViewerStringUtils.isBlank(searchText)) {
filter = ViewerConstants.DEFAULT_FILTER;
} else {
filter = new Filter(new BasicSearchFilterParameter(ViewerConstants.INDEX_SEARCH, searchText));
}

activityLogList.setFilter(filter);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:wcag="urn:import:com.databasepreservation.common.client.widgets.wcag"
xmlns:lists="urn:import:com.databasepreservation.common.client.common.lists"
>

<g:FlowPanel addStyleNames="application-container">
<g:FlowPanel addStyleNames="manage-panel">
<g:FlowPanel styleName="searchPanel" ui:field="searchPanel">
<g:FlowPanel styleName="searchPanelLeft">
<g:FlowPanel styleName="searchPanelLeftInput">
<g:TextBox ui:field="searchInputBox" addStyleNames="searchBox"/>
</g:FlowPanel>
</g:FlowPanel>
<g:FlowPanel styleName="searchPanelRight">
<wcag:AccessibleFocusPanel styleName="searchButton"
ui:field="searchInputButton">
<g:HTML addStyleNames="searchButton-html">
<span class="fa-stack fa-lg">
<i class="fa fa-search fa-stack-1x"></i>
</span>
</g:HTML>
</wcag:AccessibleFocusPanel>
</g:FlowPanel>
</g:FlowPanel>
<g:FlowPanel addStyleNames="database-list">
<lists:ActivityLogList ui:field="activityLogList"/>
</g:FlowPanel>
</g:FlowPanel>
</g:FlowPanel>
</ui:UiBinder>

0 comments on commit f97e3d1

Please sign in to comment.