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 files COPYING and Copyright.html. * 009 * COPYING can be found at the root of the source code distribution tree. * 010 * Or, see https://support.hdfgroup.org/products/licenses.html * 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.eclipse.jface.preference.PreferencePage; 018import org.eclipse.jface.resource.ImageDescriptor; 019import org.eclipse.swt.graphics.Font; 020import org.eclipse.swt.widgets.Button; 021import org.eclipse.swt.widgets.Composite; 022import org.eclipse.swt.widgets.Shell; 023 024/** 025 * <code>UserOptionsDefaultPage</code> extends <code>PreferencePage</code> 026 * to display the default button 027 * images for the ok, cancel, apply and defaults button. All configuration pages 028 * that need finer control on the created editor <code>Controls</code> should 029 * inherit this class. 030 */ 031public abstract class UserOptionsDefaultPage extends PreferencePage { 032 033 private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(UserOptionsDefaultPage.class); 034 035 protected Shell shell; 036 037 protected Font curFont; 038 039 protected String rootDir = null; 040 041 /** 042 * <code>UserOptionsDefaultPage</code> default constructor. 043 */ 044 public UserOptionsDefaultPage() { 045 super(); 046 } 047 048 /** 049 * Creates a new abstract <code>UserOptionsDefaultPage</code> with the 050 * given title. 051 * 052 * @param title the page title 053 */ 054 public UserOptionsDefaultPage(String title) { 055 super(title); 056 } 057 058 /** 059 * Creates a new abstract <code>UserOptionsDefaultPage</code> with the 060 * given title and image. 061 * 062 * @param title the page title 063 * @param image the image for this page, or <code>null</code> if none 064 */ 065 public UserOptionsDefaultPage(String title, ImageDescriptor image) { 066 super(title, image); 067 } 068 069 @Override 070 public void createControl(Composite parent) 071 { 072 super.createControl(parent); 073 074 Button applyButton = this.getApplyButton(); 075 Button defaultsButton = this.getDefaultsButton(); 076 if (applyButton != null && defaultsButton != null) { 077 /* Apply and default button are shown */ 078 079 /* Customize apply button (text + image) */ 080 applyButton.setText("apply changes"); 081 //applyButton.setImage(SWTHelper.loadImage("save.gif")); 082 this.setButtonLayoutData(applyButton); 083 084 /* Customize defaults button (text + image) */ 085 defaultsButton.setText("restore defaults"); 086 //defaultsButton.setImage(SWTHelper.loadImage("clear.gif")); 087 this.setButtonLayoutData(defaultsButton); 088 } 089 } 090}