Package com.mountainminds.eclemma.internal.ui.editors

Source Code of com.mountainminds.eclemma.internal.ui.editors.SessionDataPage$SessionIdColumnLabelProvider

/*******************************************************************************
* Copyright (c) 2006, 2014 Mountainminds GmbH & Co. KG and Contributors
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*    Brock Janiczak - initial API and implementation
*   
******************************************************************************/
package com.mountainminds.eclemma.internal.ui.editors;

import static com.mountainminds.eclemma.internal.ui.UIMessages.ExecutionDataEditorSessionsPageColumnDumpTime_label;
import static com.mountainminds.eclemma.internal.ui.UIMessages.ExecutionDataEditorSessionsPageColumnSessionId_label;
import static com.mountainminds.eclemma.internal.ui.UIMessages.ExecutionDataEditorSessionsPageColumnStartTime_label;
import static com.mountainminds.eclemma.internal.ui.UIMessages.ExecutionDataEditorSessionsPage_title;

import java.text.DateFormat;
import java.util.Date;

import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.forms.editor.FormPage;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.jacoco.core.data.SessionInfo;

/**
* Page to list session information.
*/
class SessionDataPage extends FormPage {

  private final ExecutionDataContent content;
  private final DateFormat dateTimeFormat;

  public SessionDataPage(FormEditor parent, ExecutionDataContent content) {
    super(parent, "sessions", ExecutionDataEditorSessionsPage_title); //$NON-NLS-1$
    this.content = content;
    this.dateTimeFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,
        DateFormat.MEDIUM);
  }

  @Override
  protected void createFormContent(IManagedForm managedForm) {
    final FormToolkit toolkit = managedForm.getToolkit();

    final ScrolledForm form = managedForm.getForm();
    form.setText(ExecutionDataEditorSessionsPage_title);
    toolkit.decorateFormHeading(form.getForm());

    final Composite body = form.getBody();
    GridLayoutFactory.swtDefaults().applyTo(body);

    final Table sessionTable = toolkit.createTable(body, SWT.FULL_SELECTION
        | SWT.V_SCROLL | SWT.BORDER);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(sessionTable);
    sessionTable.setHeaderVisible(true);
    sessionTable.setLinesVisible(true);

    final TableViewer sessionTableViewer = new TableViewer(sessionTable);

    final TableViewerColumn sessionIdColumnViewer = new TableViewerColumn(
        sessionTableViewer, SWT.NONE);
    sessionIdColumnViewer.setLabelProvider(new SessionIdColumnLabelProvider());
    final TableColumn sessionIdColumn = sessionIdColumnViewer.getColumn();
    sessionIdColumn
        .setText(ExecutionDataEditorSessionsPageColumnSessionId_label);
    sessionIdColumn.setWidth(300);

    final TableViewerColumn startTimeColumnViewer = new TableViewerColumn(
        sessionTableViewer, SWT.NONE);
    startTimeColumnViewer.setLabelProvider(new StartTimeColumnLabelProvider());
    final TableColumn startTimeColumn = startTimeColumnViewer.getColumn();
    startTimeColumn
        .setText(ExecutionDataEditorSessionsPageColumnStartTime_label);
    startTimeColumn.setWidth(200);

    final TableViewerColumn dumpTimeColumnViewer = new TableViewerColumn(
        sessionTableViewer, SWT.NONE);
    dumpTimeColumnViewer.setLabelProvider(new DumpTimeColumnLabelProvider());
    final TableColumn dumpTimeColumn = dumpTimeColumnViewer.getColumn();
    dumpTimeColumn.setText(ExecutionDataEditorSessionsPageColumnDumpTime_label);
    dumpTimeColumn.setWidth(200);

    sessionTable.setSortColumn(startTimeColumn);
    sessionTable.setSortDirection(SWT.UP);

    sessionTableViewer
        .setContentProvider(new AbstractExecutionDataContentProvider() {
          public Object[] getElements(ExecutionDataContent content) {
            return content.getSessionInfos();
          }
        });
    sessionTableViewer.setInput(content);
  }

  private static final class SessionIdColumnLabelProvider extends
      ColumnLabelProvider {

    @Override
    public String getText(Object element) {
      return ((SessionInfo) element).getId();
    }
  }

  private final class StartTimeColumnLabelProvider extends ColumnLabelProvider {

    @Override
    public String getText(Object element) {
      return dateTimeFormat.format(new Date(((SessionInfo) element)
          .getStartTimeStamp()));
    }
  }

  private final class DumpTimeColumnLabelProvider extends ColumnLabelProvider {

    @Override
    public String getText(Object element) {
      return dateTimeFormat.format(new Date(((SessionInfo) element)
          .getDumpTimeStamp()));
    }
  }

}
TOP

Related Classes of com.mountainminds.eclemma.internal.ui.editors.SessionDataPage$SessionIdColumnLabelProvider

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.