001/*****************************************************************************
002 * Copyright by The HDF Group.                                               *
003 * Copyright by the Board of Trustees of the University of Illinois.         *
004 * All rights reserved.                                                      *
005 *                                                                           *
006 * This file is part of the HDF Java Products distribution.                  *
007 * The full copyright notice, including terms governing use, modification,   *
008 * and redistribution, is contained in the COPYING file, which can be found  *
009 * at the root of the source code distribution tree,                         *
010 * or in https://www.hdfgroup.org/licenses.                                  *
011 * If you do not have access to either file, you may request a copy from     *
012 * help@hdfgroup.org.                                                        *
013 ****************************************************************************/
014
015package hdf.view.dialog;
016
017import org.slf4j.Logger;
018import org.slf4j.LoggerFactory;
019
020import org.eclipse.jface.preference.PreferencePage;
021import org.eclipse.jface.resource.ImageDescriptor;
022import org.eclipse.swt.graphics.Font;
023import org.eclipse.swt.widgets.Button;
024import org.eclipse.swt.widgets.Composite;
025import org.eclipse.swt.widgets.Shell;
026
027/**
028 * <code>UserOptionsDefaultPage</code> extends <code>PreferencePage</code>
029 * to display the default button
030 * images for the ok, cancel, apply and defaults button. All configuration pages
031 * that need finer control on the created editor <code>Controls</code> should
032 * inherit this class.
033 */
034public abstract class UserOptionsDefaultPage extends PreferencePage {
035
036    private static final Logger log = LoggerFactory.getLogger(UserOptionsDefaultPage.class);
037
038    /** The reference to the visual shell */
039    protected Shell                 shell;
040
041    /** The setting of the current font */
042    protected Font                  curFont;
043
044    /** The setting of the root directory */
045    protected String                rootDir = null;
046
047    /**
048     * <code>UserOptionsDefaultPage</code> default constructor.
049     */
050    public UserOptionsDefaultPage() {
051        super();
052    }
053
054    /**
055     * Creates a new abstract <code>UserOptionsDefaultPage</code> with the
056     * given title.
057     *
058     * @param title the page title
059     */
060    public UserOptionsDefaultPage(String title) {
061        super(title);
062    }
063
064    /**
065     * Creates a new abstract <code>UserOptionsDefaultPage</code> with the
066     * given title and image.
067     *
068     * @param title the page title
069     * @param image the image for this page, or <code>null</code> if none
070     */
071    public UserOptionsDefaultPage(String title, ImageDescriptor image) {
072        super(title, image);
073    }
074
075    @Override
076    public void createControl(Composite parent)
077    {
078        super.createControl(parent);
079
080        Button applyButton = this.getApplyButton();
081        Button defaultsButton = this.getDefaultsButton();
082        if (applyButton != null && defaultsButton != null) {
083            /* Apply and default button are shown */
084
085            /* Customize apply button (text + image) */
086            applyButton.setText("apply changes");
087            //applyButton.setImage(SWTHelper.loadImage("save.gif"));
088            this.setButtonLayoutData(applyButton);
089
090            /* Customize defaults button (text + image) */
091            defaultsButton.setText("restore defaults");
092            //defaultsButton.setImage(SWTHelper.loadImage("clear.gif"));
093            this.setButtonLayoutData(defaultsButton);
094        }
095    }
096}