Package edu.stanford.bmir.protege.web.client.ui.ontology.changes

Source Code of edu.stanford.bmir.protege.web.client.ui.ontology.changes.ChangesGrid

package edu.stanford.bmir.protege.web.client.ui.ontology.changes;

import com.gwtext.client.data.*;
import com.gwtext.client.widgets.PagingToolbar;
import com.gwtext.client.widgets.grid.ColumnConfig;
import com.gwtext.client.widgets.grid.ColumnModel;
import com.gwtext.client.widgets.grid.GridPanel;
import edu.stanford.bmir.protege.web.client.ui.util.PaginationUtil;
import edu.stanford.bmir.protege.web.shared.project.ProjectId;

import java.util.Date;

import static com.google.common.base.Preconditions.checkNotNull;

/**
* @author Jennifer Vendetti <vendetti@stanford.edu>
*
*/
public class ChangesGrid extends GridPanel {

    private ProjectId projectId;

    private RecordDef recordDef;
    private Store store;
    private ChangesProxyImpl proxy;

    public ChangesGrid(ProjectId projectId) {
        this.projectId = checkNotNull(projectId);
        createGrid();
    }

    private void createGrid() {
        createColumns();

        setAutoWidth(true);
        setAutoExpandColumn("ChangesGrid_ChangeDescCol");

        setStripeRows(true);
        setTitle("Change History");
        setFrame(true);

        recordDef = new RecordDef(new FieldDef[] { new StringFieldDef("desc"), new StringFieldDef("author"),
                new DateFieldDef("timestamp"), new StringFieldDef("applies") });

        ArrayReader reader = new ArrayReader(recordDef);
        proxy = new ChangesProxyImpl();
        store = new Store(proxy, reader);

        PagingToolbar pToolbar = PaginationUtil.getNewPagingToolbar(store, 20);
        this.setBottomToolbar(pToolbar);

        setStore(store);

        if (getStore() == null) {
            setStore(store);
        }

        reload();
    }

    private void createColumns() {
        ColumnConfig changeDescCol = new ColumnConfig("Description", "desc");
        changeDescCol.setId("ChangesGrid_ChangeDescCol");
        changeDescCol.setResizable(true);
        changeDescCol.setSortable(true);

        ColumnConfig authorCol = new ColumnConfig("Author", "author");
        authorCol.setResizable(true);
        authorCol.setSortable(true);

        ColumnConfig timestampCol = new ColumnConfig("Timestamp", "timestamp");
        timestampCol.setResizable(true);
        timestampCol.setSortable(true);

        ColumnConfig appliesToCol = new ColumnConfig("Applies to", "applies");
        appliesToCol.setResizable(true);
        appliesToCol.setSortable(true);
        appliesToCol.setHidden(true);

        ColumnConfig[] columns = new ColumnConfig[] { changeDescCol, authorCol, timestampCol, appliesToCol };
        ColumnModel columnModel = new ColumnModel(columns);
        setColumnModel(columnModel);
    }


    @SuppressWarnings("deprecation")
    public void reload() {
        store.removeAll();

        /*
         * Tried using the non-deprecated methods here (i.e., from Calendar),
         * but this results in GWT error: "No source code is available for type
         * java.util.Calendar; did you forget to inherit a required module?".
         * Apparently, the Calendar class is not in the GWT 1.5 JRE emulation
         * library and can't be used on the client-side. Check available classes
         * for client-side code here: http://tinyurl.com/bwrden.
         */
        Date weekBegin = new Date();
        weekBegin.setDate(weekBegin.getDate() - 7);
        proxy.setProjectId(projectId);
        proxy.setStartDate(weekBegin);
        proxy.setEndDate(new Date());
        store.load(0, ((PagingToolbar) this.getBottomToolbar()).getPageSize());
    }
}
TOP

Related Classes of edu.stanford.bmir.protege.web.client.ui.ontology.changes.ChangesGrid

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.