com.nokia.tools.variant.confml.ui.wizards.ImportCPFPage2.java Source code

Java tutorial

Introduction

Here is the source code for com.nokia.tools.variant.confml.ui.wizards.ImportCPFPage2.java

Source

/*
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 * 
 * Initial Contributors:
 * Nokia Corporation - Initial contribution
 * 
 * Contributors:
 * 
 * Description: This file is part of com.nokia.tools.variant.confml.ui component.
 */

package com.nokia.tools.variant.confml.ui.wizards;

import java.security.cert.X509Certificate;
import java.text.DateFormat;

import org.eclipse.jface.layout.TreeColumnLayout;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.TreeColumn;

import com.nokia.tools.vct.common.secure.core.SigningUtils;

public class ImportCPFPage2 extends WizardPage {
    static final class CertContentProvider extends ArrayContentProvider implements ITreeContentProvider {
        public Object[] getChildren(Object parentElement) {
            return new Object[0];
        }

        public boolean hasChildren(Object element) {
            return getChildren(element).length > 0;
        }

        public Object getParent(Object element) {
            return null;
        }
    }

    static final class CertLabelProvider extends LabelProvider implements ITableLabelProvider {

        public Image getColumnImage(Object element, int columnIndex) {
            return null;
        }

        public String getColumnText(Object element, int columnIndex) {
            if (!(element instanceof X509Certificate)) {
                return null;
            }
            X509Certificate cert = (X509Certificate) element;
            switch (columnIndex) {
            case 0:
                return SigningUtils.getShortName(cert);
            case 1:
                DateFormat fmt = DateFormat.getDateInstance(DateFormat.LONG);
                return fmt.format(cert.getNotAfter());
            }

            return null;
        }
    }

    static final String PAGE_NAME = ImportCPFPage2.class.getName();

    private TreeViewer viewer;

    public ImportCPFPage2() {
        super(PAGE_NAME);

        setTitle("CPF Encryption Information");
    }

    public void createControl(Composite parent) {
        Composite control = new Composite(parent, SWT.NONE);
        TreeColumnLayout layout = new TreeColumnLayout();
        control.setLayout(layout);

        viewer = new TreeViewer(control, SWT.FULL_SELECTION | SWT.BORDER);
        viewer.getTree().setHeaderVisible(true);
        TreeColumn column1 = new TreeColumn(viewer.getTree(), SWT.LEFT);
        TreeColumn column2 = new TreeColumn(viewer.getTree(), SWT.LEFT);
        column1.setText("Certificate");
        column2.setText("");
        layout.setColumnData(column1, new ColumnWeightData(15, 200));
        layout.setColumnData(column2, new ColumnWeightData(5, 60));

        viewer.setContentProvider(new CertContentProvider());
        viewer.setLabelProvider(new CertLabelProvider());

        setControl(control);
    }

    @Override
    public void setVisible(boolean visible) {
        super.setVisible(visible);

        if (visible) {
            ImportCPFPage1 page1 = (ImportCPFPage1) getWizard().getPage(ImportCPFPage1.PAGE_ID);
            if (viewer.getInput() == null) {
                viewer.setInput(page1.getUsers());
            } else {
                viewer.refresh();
            }
        }
    }
}