extendedMetadata.ExtendedMetaDataComposite.java Source code

Java tutorial

Introduction

Here is the source code for extendedMetadata.ExtendedMetaDataComposite.java

Source

/*
 * Copyright (c) 2012 Diamond Light Source Ltd.
 *
 * 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
 */

package extendedMetadata;

import java.text.SimpleDateFormat;

import org.apache.commons.io.FileUtils;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.dawnsci.analysis.api.metadata.IExtendedMetadata;
import org.eclipse.dawnsci.analysis.api.metadata.IMetadata;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.progress.UIJob;

import uk.ac.diamond.sda.meta.page.IMetadataPage;
import uk.ac.diamond.sda.meta.views.MetadataTableView;

public class ExtendedMetaDataComposite implements IMetadataPage {

    private Composite comp;
    private Text scanCommand;
    private Text fullPath;
    private Text lastMod;
    private Text size;
    private Text owner;
    private Text creator;
    private Text fileName;
    private Text creation;
    private MetadataTableView view;
    private static SimpleDateFormat dateformat = new SimpleDateFormat("dd-MMM-yyyy 'at' HH:mm:ss");

    public ExtendedMetaDataComposite() {
        // Need a default constructor for extension point
    }

    @Override
    public void setMetaData(IMetadata metadata) {
        if (metadata instanceof IExtendedMetadata)
            updateComposite((IExtendedMetadata) metadata);

    }

    private void updateComposite(final IExtendedMetadata metadata) {
        UIJob updateCompositeGUI = new UIJob("Update with new metadata") {

            @Override
            public IStatus runInUIThread(IProgressMonitor monitor) {
                if (metadata.getScanCommand() != null)
                    scanCommand.setText(metadata.getScanCommand());
                if (metadata.getFullPath() != null)
                    fullPath.setText(metadata.getFullPath());
                if (metadata.getFileName() != null)
                    fileName.setText(metadata.getFileName());
                if (metadata.getLastModified() != null)
                    lastMod.setText(dateformat.format(metadata.getLastModified()));
                if (metadata.getCreation() != null)
                    creation.setText(dateformat.format(metadata.getCreation()));
                if (metadata.getFileSize() != 0)
                    size.setText(FileUtils.byteCountToDisplaySize(metadata.getFileSize()));
                if (metadata.getFileOwner() != null)
                    owner.setText(metadata.getFileOwner());
                if (metadata.getCreator() != null)
                    creator.setText(metadata.getCreator());

                view.setMeta(metadata);
                return Status.OK_STATUS;
            }
        };
        updateCompositeGUI.schedule();
    }

    @Override
    public Composite createComposite(Composite parent) {
        comp = new Composite(parent, SWT.NONE);
        comp.setLayout(new GridLayout(1, false));
        comp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

        Group gpExtendedMetadataViewer = new Group(comp, SWT.NONE);
        gpExtendedMetadataViewer.setLayout(new GridLayout(2, false));
        gpExtendedMetadataViewer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
        gpExtendedMetadataViewer.setText("Extended Metadata");

        new Label(gpExtendedMetadataViewer, SWT.NONE).setText("Scan Command");
        scanCommand = new Text(gpExtendedMetadataViewer, SWT.READ_ONLY);
        scanCommand.setBackground(gpExtendedMetadataViewer.getBackground());
        scanCommand.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

        new Label(gpExtendedMetadataViewer, SWT.NONE).setText("Full Path");
        fullPath = new Text(gpExtendedMetadataViewer, SWT.READ_ONLY);
        fullPath.setBackground(gpExtendedMetadataViewer.getBackground());
        fullPath.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

        new Label(gpExtendedMetadataViewer, SWT.NONE).setText("File name");
        fileName = new Text(gpExtendedMetadataViewer, SWT.READ_ONLY);
        fileName.setBackground(gpExtendedMetadataViewer.getBackground());
        fileName.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

        new Label(gpExtendedMetadataViewer, SWT.NONE).setText("Last Modified");
        lastMod = new Text(gpExtendedMetadataViewer, SWT.READ_ONLY);
        lastMod.setBackground(gpExtendedMetadataViewer.getBackground());
        lastMod.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

        new Label(gpExtendedMetadataViewer, SWT.NONE).setText("Cretion");
        creation = new Text(gpExtendedMetadataViewer, SWT.READ_ONLY);
        creation.setBackground(gpExtendedMetadataViewer.getBackground());
        creation.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

        new Label(gpExtendedMetadataViewer, SWT.NONE).setText("File Size");
        size = new Text(gpExtendedMetadataViewer, SWT.READ_ONLY);
        size.setBackground(gpExtendedMetadataViewer.getBackground());
        size.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

        new Label(gpExtendedMetadataViewer, SWT.NONE).setText("Owner");
        owner = new Text(gpExtendedMetadataViewer, SWT.READ_ONLY);
        owner.setBackground(gpExtendedMetadataViewer.getBackground());
        owner.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

        new Label(gpExtendedMetadataViewer, SWT.NONE).setText("Creator");
        creator = new Text(gpExtendedMetadataViewer, SWT.READ_ONLY);
        creator.setBackground(gpExtendedMetadataViewer.getBackground());
        creator.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

        // Composite tableComp = new Composite(comp, SWT.NONE);

        view = new MetadataTableView();
        view.createPartControl(comp);

        return comp;
    }

}