Package org.pdfsam.guiclient.commons.components

Source Code of org.pdfsam.guiclient.commons.components.CommonComponentsFactory

/*
* Created on 28-Nov-2007
* Copyright (C) 2007 by Andrea Vacondio.
*
* This program is free software; you can redistribute it and/or modify it under the terms of the
* GNU General Public License as published by the Free Software Foundation;
* either version 2 of the License.
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
* You should have received a copy of the GNU General Public License along with this program;
* if not, write to the Free Software Foundation, Inc.,
*  59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.pdfsam.guiclient.commons.components;

import java.awt.Insets;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.border.EtchedBorder;

import org.pdfsam.guiclient.configuration.Configuration;
import org.pdfsam.i18n.GettextResource;

/**
* Factory for components commonly used by plugins
* @author Andrea Vacondio
*
*/
public class CommonComponentsFactory {

  public static final int SIMPLE_TEXT_FIELD_TYPE = 0;
  public static final int DESTINATION_TEXT_FIELD_TYPE = 1;
  public static final int PREFIX_TEXT_FIELD_TYPE = 2;
  public static final int PREFIX_TEXT_FIELD_TYPE_FULL_MENU = 3;
 
  public static final int RUN_BUTTON_TYPE = 1;
  public static final int BROWSE_BUTTON_TYPE = 2;
  public static final int ADD_BUTTON_TYPE = 3;

  public static final int OVERWRITE_CHECKBOX_TYPE = 1;
  public static final int COMPRESS_CHECKBOX_TYPE = 2;
  public static final int DONT_PRESERVER_ORDER_CHECKBOX_TYPE = 3;
 
  public static final int PDF_VERSION_LABEL = 1;
 
  private static CommonComponentsFactory instance = null;
  private Configuration config;
 
  private CommonComponentsFactory(){
    config = Configuration.getInstance();
  }
 
  /**
   * @return the instance of CommonComponentsFactory
   */
  public static synchronized CommonComponentsFactory getInstance() {
    if (instance == null){
      instance = new CommonComponentsFactory();
    }
    return instance;
  }
 
  /**
   *
   * @param buttonType
   * @return a button instance
   */
  public synchronized JButton createButton(int buttonType){
    JButton retVal = new JButton();
   
    switch(buttonType){
   
    case RUN_BUTTON_TYPE:
      retVal.setMargin(new Insets(2, 2, 2, 2));
      retVal.setIcon(new ImageIcon(this.getClass().getResource("/images/run.png")));
      retVal.setText(GettextResource.gettext(config.getI18nResourceBundle(),"Run"));
      break;
   
    case BROWSE_BUTTON_TYPE:
      retVal.setMargin(new Insets(2, 2, 2, 2));
      retVal.setIcon(new ImageIcon(this.getClass().getResource("/images/browse.png")));
      retVal.setText(GettextResource.gettext(config.getI18nResourceBundle(),"Browse"));
      break;
   
    case ADD_BUTTON_TYPE:
      retVal.setMargin(new Insets(2, 2, 2, 2));
      retVal.setIcon(new ImageIcon(this.getClass().getResource("/images/add.png")));
      retVal.setText(GettextResource.gettext(config.getI18nResourceBundle(),"Add"));
      break;

    default:
      break;
    }
   
    return retVal;
  }
 
  /**
   *
   * @param checkboxType
   * @return a JCheckBox instance
   */
  public synchronized JCheckBox createCheckBox(int checkboxType){
    JCheckBox retVal = new JCheckBox();
   
    switch(checkboxType){
   
    case COMPRESS_CHECKBOX_TYPE:
      retVal.setText(GettextResource.gettext(config.getI18nResourceBundle(),"Compress output file/files"));
      retVal.setToolTipText(GettextResource.gettext(config.getI18nResourceBundle(),"Pdf version required:")+" 1.5");     
      break;
   
    case OVERWRITE_CHECKBOX_TYPE:
      retVal.setText(GettextResource.gettext(config.getI18nResourceBundle(),"Overwrite if already exists"));
      retVal.setSelected(true);
      break;
   
    case DONT_PRESERVER_ORDER_CHECKBOX_TYPE:
      retVal.setText(GettextResource.gettext(config.getI18nResourceBundle(),"Don't preserve file order (fast load)"));
      break;

    default:
      break;
    }
   
    return retVal;
  }
 
  /**
   *
   * @param labelType
   * @return a JLabel instance
   */
  public synchronized JLabel createLabel(int labelType){
    JLabel retVal = new JLabel();
   
    switch(labelType){
   
    case PDF_VERSION_LABEL:
      retVal.setText(GettextResource.gettext(config.getI18nResourceBundle(),"Output document pdf version:"));
      break;   

    default:
      break;
    }
   
    return retVal;
  }
 
  /**
   *
   * @param textFieldType
   * @return a JTextField instance
   */
  public synchronized JTextField createTextField(int textFieldType){
    JTextField retVal = new JTextField();
    retVal.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
   
    switch(textFieldType){
   
    case SIMPLE_TEXT_FIELD_TYPE:
    case DESTINATION_TEXT_FIELD_TYPE:
      retVal.setComponentPopupMenu(new DefaultPopupMenu());
      break;   

    case PREFIX_TEXT_FIELD_TYPE:
      retVal.setComponentPopupMenu(new PrefixPopupMenu(PrefixPopupMenu.BASIC_MENU, retVal));
      retVal.setText("pdfsam_");
      break;   

    case PREFIX_TEXT_FIELD_TYPE_FULL_MENU:
      retVal.setComponentPopupMenu(new PrefixPopupMenu(PrefixPopupMenu.FULL_MENU, retVal));
      retVal.setText("pdfsam_");
      break;   

    default:
      break;
    }
   
    return retVal;
  }
 
  public Object clone() throws CloneNotSupportedException {
    throw new CloneNotSupportedException("Cannot clone ComponentFactory object.");
  }
}
TOP

Related Classes of org.pdfsam.guiclient.commons.components.CommonComponentsFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.