eu.geclipse.batch.ui.dialogs.BatchJobInfoDialog.java Source code

Java tutorial

Introduction

Here is the source code for eu.geclipse.batch.ui.dialogs.BatchJobInfoDialog.java

Source

/******************************************************************************
 * Copyright (c) 2007 g-Eclipse consortium
 * 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
 *
 * Initial development of the original code was made for
 * project g-Eclipse founded by European Union
 * project number: FP6-IST-034327  http://www.geclipse.eu/
 *
 * Contributor(s):
 *     UCY (http://www.cs.ucy.ac.cy)
 *      - Harald Gjermundrod (harald@cs.ucy.ac.cy)
 *
 *****************************************************************************/
package eu.geclipse.batch.ui.dialogs;

import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.IconAndMessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

import eu.geclipse.batch.IBatchJobInfo;
import eu.geclipse.batch.ui.internal.Messages;

/**
 * A dialog that presents information about a batch job.
 */
public class BatchJobInfoDialog extends IconAndMessageDialog {

    /**
     * The job for which to display information.
     */
    private IBatchJobInfo job;

    /**
     * Construct a new info dialog from the specified job.
     * 
     * @param job The <code>IBatchJobInfo</code> for which to display the information.
     * @param parentShell The parent shell of this dialog.
     */
    public BatchJobInfoDialog(final IBatchJobInfo job, final Shell parentShell) {
        super(parentShell);
        setShellStyle(SWT.CLOSE | SWT.TITLE | SWT.BORDER | SWT.APPLICATION_MODAL | SWT.RESIZE | SWT.MIN | SWT.MAX);
        this.job = job;
    }

    /**
     * Get the job of this info dialog.
     * 
     * @return The <code>IBatchJobInfo</code> for which to display the info.
     */
    protected IBatchJobInfo getJob() {
        return this.job;
    }

    /* (non-Javadoc)
     * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
     */
    @Override
    protected Control createDialogArea(final Composite parent) {
        createMessageArea(parent);
        GridData gData;

        Composite mainComp = new Composite(parent, SWT.NONE);
        mainComp.setLayout(new GridLayout(2, false));
        gData = new GridData(GridData.FILL_BOTH);
        gData.grabExcessHorizontalSpace = true;
        gData.grabExcessVerticalSpace = true;
        gData.widthHint = 450;
        gData.heightHint = 250;
        mainComp.setLayoutData(gData);

        // Id field
        Label idLabel = new Label(mainComp, SWT.LEFT);
        idLabel.setText(Messages.getString("BatchJobInfoDialog.job_id_label")); //$NON-NLS-1$
        gData = new GridData();
        gData.horizontalAlignment = GridData.BEGINNING;
        idLabel.setLayoutData(gData);

        Text idText = new Text(mainComp, SWT.LEFT | SWT.BORDER);
        idText.setText(this.job.getJobId());
        gData = new GridData(GridData.FILL_HORIZONTAL);
        gData.grabExcessHorizontalSpace = true;
        idText.setLayoutData(gData);
        idText.setEditable(false);

        // Name field
        Label nameLabel = new Label(mainComp, SWT.LEFT);
        nameLabel.setText(Messages.getString("BatchJobInfoDialog.job_name_label")); //$NON-NLS-1$
        gData = new GridData();
        gData.horizontalAlignment = GridData.BEGINNING;
        nameLabel.setLayoutData(gData);

        Text nameText = new Text(mainComp, SWT.LEFT | SWT.BORDER);
        nameText.setText(this.job.getJobName());
        gData = new GridData(GridData.FILL_HORIZONTAL);
        gData.grabExcessHorizontalSpace = true;
        nameText.setLayoutData(gData);
        nameText.setEditable(false);

        // QueueName field
        Label queueNameLabel = new Label(mainComp, SWT.LEFT);
        queueNameLabel.setText(Messages.getString("BatchJobInfoDialog.job_queue_name_label")); //$NON-NLS-1$
        gData = new GridData();
        gData.horizontalAlignment = GridData.BEGINNING;
        queueNameLabel.setLayoutData(gData);

        Text queueNameText = new Text(mainComp, SWT.LEFT | SWT.BORDER);
        queueNameText.setText(this.job.getQueueName());
        gData = new GridData(GridData.FILL_HORIZONTAL);
        gData.grabExcessHorizontalSpace = true;
        queueNameText.setLayoutData(gData);
        queueNameText.setEditable(false);

        // UserAccount field 
        Label userAccountLabel = new Label(mainComp, SWT.LEFT);
        userAccountLabel.setText(Messages.getString("BatchJobInfoDialog.job_user_account_label")); //$NON-NLS-1$
        gData = new GridData();
        gData.horizontalAlignment = GridData.BEGINNING;
        userAccountLabel.setLayoutData(gData);

        Text userAccountText = new Text(mainComp, SWT.LEFT | SWT.BORDER);
        userAccountText.setText(this.job.getUserAccount());
        gData = new GridData(GridData.FILL_HORIZONTAL);
        gData.grabExcessHorizontalSpace = true;
        userAccountText.setLayoutData(gData);
        userAccountText.setEditable(false);

        // Status field
        Label statusLabel = new Label(mainComp, SWT.LEFT);
        statusLabel.setText(Messages.getString("BatchJobInfoDialog.job_status_label")); //$NON-NLS-1$
        gData = new GridData();
        gData.horizontalAlignment = GridData.BEGINNING;
        statusLabel.setLayoutData(gData);

        Text statusText = new Text(mainComp, SWT.LEFT | SWT.BORDER);
        statusText.setText(this.job.getStatus().toString());
        gData = new GridData(GridData.FILL_HORIZONTAL);
        gData.grabExcessHorizontalSpace = true;
        statusText.setLayoutData(gData);
        statusText.setEditable(false);

        // TimeUsed field
        Label timeUsedLabel = new Label(mainComp, SWT.LEFT);
        timeUsedLabel.setText(Messages.getString("BatchJobInfoDialog.job_time_used_label")); //$NON-NLS-1$
        gData = new GridData();
        gData.horizontalAlignment = GridData.BEGINNING;
        timeUsedLabel.setLayoutData(gData);

        Text timeUsedText = new Text(mainComp, SWT.LEFT | SWT.BORDER);
        timeUsedText.setText(this.job.getTimeUse());
        gData = new GridData(GridData.FILL_HORIZONTAL);
        gData.grabExcessHorizontalSpace = true;
        timeUsedText.setLayoutData(gData);
        timeUsedText.setEditable(false);

        return mainComp;
    }

    /* (non-Javadoc)
     * @see org.eclipse.jface.dialogs.IconAndMessageDialog#getImage()
     */
    @Override
    protected Image getImage() {
        return getInfoImage();
    }

    /**
     * Create the token specific info area.
     * 
     * @param parent The parent composite that will contain the created info area.
     * @return The created info area.
     */
    protected Control createInfoArea(final Composite parent) {

        GridData gData;

        Composite mainComp = new Composite(parent, SWT.BORDER);
        mainComp.setLayout(new GridLayout(2, false));

        Label label = new Label(mainComp, SWT.NONE);
        label.setText(Messages.getString("BatchJobInfoDialog.no_info_label")); //$NON-NLS-1$
        gData = new GridData();
        label.setLayoutData(gData);

        return mainComp;

    }

    /* (non-Javadoc)
     * @see org.eclipse.jface.dialogs.Dialog#getDialogBoundsSettings()
     */
    //  @Override
    //  protected IDialogSettings getDialogBoundsSettings() {
    //    return eu.geclipse.batch.internal.Activator.getDefault().getDialogSettings();
    //  }

    /* (non-Javadoc)
     * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
     */
    @Override
    protected void configureShell(final Shell shell) {
        String batchType;
        String type;

        super.configureShell(shell);

        type = this.job.getServiceTypeName();
        if (null != type)
            batchType = this.job.getServiceTypeName();
        else
            batchType = Messages.getString("BatchJobInfoDialog.unknown"); //$NON-NLS-1$

        shell.setText(batchType + " " //$NON-NLS-1$ 
                + Messages.getString("BatchJobInfoDialog.info_suffix")); //$NON-NLS-1$
    }

    /* (non-Javadoc)
     * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar()
     */
    @Override
    protected void createButtonsForButtonBar(final Composite parent) {
        createButton(parent, IDialogConstants.CANCEL_ID, Messages.getString("BatchJobInfoDialog.close"), //$NON-NLS-1$
                false);
    }
}