Package org.dyno.visual.swing.lnfs

Source Code of org.dyno.visual.swing.lnfs.WindowsLookAndFeelAdapter

/************************************************************************************
* Copyright (c) 2008 William Chen.                                                 *
*                                                                                  *
* 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 *
*                                                                                  *
* Use is subject to the terms of Eclipse Public License v1.0.                      *
*                                                                                  *
* Contributors:                                                                    *
*     William Chen - initial API and implementation.                               *
************************************************************************************/

package org.dyno.visual.swing.lnfs;

import java.awt.Component;
import java.awt.Toolkit;
import java.util.HashMap;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JComboBox;
import javax.swing.JDesktopPane;
import javax.swing.JDialog;
import javax.swing.JEditorPane;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JProgressBar;
import javax.swing.JRadioButton;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JSlider;
import javax.swing.JSpinner;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.JToggleButton;
import javax.swing.JToolBar;
import javax.swing.JTree;
import javax.swing.LookAndFeel;

import org.dyno.visual.swing.lnfs.windowsxp.ClassicJAppletValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJButtonValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJCheckBoxMenuItemValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJCheckBoxValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJComboBoxValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJDesktopPaneValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJDialogValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJEditorPaneValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJFormattedTextFieldValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJFrameValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJInternalFrameValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJLabelValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJListValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJMenuBarValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJMenuItemValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJMenuValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJPanelValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJPasswordFieldValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJProgressBarValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJRadioButtonMenuItemValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJRadioButtonValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJScrollBarValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJScrollPaneValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJSeparatorValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJSliderValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJSpinnerValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJSplitPaneValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJTabbedPaneValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJTableValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJTextAreaValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJTextFieldValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJTextPaneValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJToggleButtonValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJToolBarValue;
import org.dyno.visual.swing.lnfs.windowsxp.ClassicJTreeValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJAppletValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJButtonValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJCheckBoxMenuItemValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJCheckBoxValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJComboBoxValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJDesktopPaneValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJDialogValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJEditorPaneValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJFormattedTextFieldValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJFrameValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJInternalFrameValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJLabelValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJListValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJMenuBarValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJMenuItemValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJMenuValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJPanelValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJPasswordFieldValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJProgressBarValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJRadioButtonMenuItemValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJRadioButtonValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJScrollBarValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJScrollPaneValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJSeparatorValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJSliderValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJSpinnerValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJSplitPaneValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJTabbedPaneValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJTableValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJTextAreaValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJTextFieldValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJTextPaneValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJToggleButtonValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJToolBarValue;
import org.dyno.visual.swing.lnfs.windowsxp.XpJTreeValue;
import org.dyno.visual.swing.plugin.spi.ILookAndFeelAdapter;

@SuppressWarnings("unchecked")
public class WindowsLookAndFeelAdapter implements ILookAndFeelAdapter {
  private HashMap<Class, WidgetValue> xpValues;
  private HashMap<Class, WidgetValue> classicValues;

  public WindowsLookAndFeelAdapter() {
    xpValues = new HashMap<Class, WidgetValue>();
    classicValues = new HashMap<Class, WidgetValue>();
   
    xpValues.put(JLabel.class, new XpJLabelValue());
    xpValues.put(JApplet.class, new XpJAppletValue());
    xpValues.put(JPanel.class, new XpJPanelValue());
    xpValues.put(JFrame.class, new XpJFrameValue());
    xpValues.put(JDialog.class, new XpJDialogValue());
    xpValues.put(JButton.class, new XpJButtonValue());
    xpValues.put(JToggleButton.class, new XpJToggleButtonValue());
    xpValues.put(JCheckBox.class, new XpJCheckBoxValue());
    xpValues.put(JRadioButton.class,new XpJRadioButtonValue());
    xpValues.put(JComboBox.class, new XpJComboBoxValue());
    xpValues.put(JList.class, new XpJListValue());
    xpValues.put(JTextField.class, new XpJTextFieldValue());
    xpValues.put(JTextArea.class, new XpJTextAreaValue());
    xpValues.put(JScrollBar.class, new XpJScrollBarValue());
    xpValues.put(JSlider.class, new XpJSliderValue());
    xpValues.put(JProgressBar.class, new XpJProgressBarValue());
    xpValues.put(JFormattedTextField.class, new XpJFormattedTextFieldValue());
    xpValues.put(JPasswordField.class, new XpJPasswordFieldValue());
    xpValues.put(JSpinner.class, new XpJSpinnerValue());
    xpValues.put(JSeparator.class, new XpJSeparatorValue());
    xpValues.put(JTextPane.class, new XpJTextPaneValue());
    xpValues.put(JEditorPane.class, new XpJEditorPaneValue());
    xpValues.put(JTree.class, new XpJTreeValue());
    xpValues.put(JTable.class, new XpJTableValue());
    xpValues.put(JTabbedPane.class, new XpJTabbedPaneValue());
    xpValues.put(JSplitPane.class, new XpJSplitPaneValue());
    xpValues.put(JToolBar.class, new XpJToolBarValue());
    xpValues.put(JDesktopPane.class, new XpJDesktopPaneValue());
    xpValues.put(JInternalFrame.class, new XpJInternalFrameValue());   
    xpValues.put(JScrollPane.class, new XpJScrollPaneValue());
    xpValues.put(JMenuBar.class, new XpJMenuBarValue());
    xpValues.put(JMenu.class, new XpJMenuValue());
    xpValues.put(JMenuItem.class, new XpJMenuItemValue());
    xpValues.put(JCheckBoxMenuItem.class, new XpJCheckBoxMenuItemValue());
    xpValues.put(JRadioButtonMenuItem.class, new XpJRadioButtonMenuItemValue());
   
    classicValues.put(JLabel.class, new ClassicJLabelValue());
    classicValues.put(JApplet.class, new ClassicJAppletValue());
    classicValues.put(JPanel.class, new ClassicJPanelValue());
    classicValues.put(JFrame.class, new ClassicJFrameValue());
    classicValues.put(JDialog.class, new ClassicJDialogValue());
    classicValues.put(JButton.class, new ClassicJButtonValue());
    classicValues.put(JToggleButton.class, new ClassicJToggleButtonValue());
    classicValues.put(JCheckBox.class, new ClassicJCheckBoxValue());
    classicValues.put(JRadioButton.class, new ClassicJRadioButtonValue());
    classicValues.put(JComboBox.class, new ClassicJComboBoxValue());
    classicValues.put(JList.class, new ClassicJListValue());
    classicValues.put(JTextField.class, new ClassicJTextFieldValue());
    classicValues.put(JTextArea.class, new ClassicJTextAreaValue());
    classicValues.put(JScrollBar.class, new ClassicJScrollBarValue());
    classicValues.put(JSlider.class, new ClassicJSliderValue());
    classicValues.put(JProgressBar.class, new ClassicJProgressBarValue());
    classicValues.put(JFormattedTextField.class, new ClassicJFormattedTextFieldValue());
    classicValues.put(JPasswordField.class, new ClassicJPasswordFieldValue());
    classicValues.put(JSpinner.class, new ClassicJSpinnerValue());
    classicValues.put(JSeparator.class, new ClassicJSeparatorValue());
    classicValues.put(JTextPane.class, new ClassicJTextPaneValue());
    classicValues.put(JEditorPane.class, new ClassicJEditorPaneValue());
    classicValues.put(JTree.class, new ClassicJTreeValue());
    classicValues.put(JTable.class, new ClassicJTableValue());
    classicValues.put(JTabbedPane.class, new ClassicJTabbedPaneValue());
    classicValues.put(JSplitPane.class, new ClassicJSplitPaneValue());
    classicValues.put(JToolBar.class, new ClassicJToolBarValue());
    classicValues.put(JDesktopPane.class, new ClassicJDesktopPaneValue());
    classicValues.put(JInternalFrame.class, new ClassicJInternalFrameValue());   
    classicValues.put(JScrollPane.class, new ClassicJScrollPaneValue());
    classicValues.put(JMenuBar.class, new ClassicJMenuBarValue());
    classicValues.put(JMenu.class, new ClassicJMenuValue());
    classicValues.put(JMenuItem.class, new ClassicJMenuItemValue());
    classicValues.put(JCheckBoxMenuItem.class, new ClassicJCheckBoxMenuItemValue());
    classicValues.put(JRadioButtonMenuItem.class, new ClassicJRadioButtonMenuItemValue());
  }

  private static boolean isXP() {
    Boolean xp = (Boolean) Toolkit.getDefaultToolkit().getDesktopProperty(
        "win.xpstyle.themeActive"); //$NON-NLS-1$
    return xp != null && xp.booleanValue();
  }

 
  public Object getDefaultValue(Class widgetClass, String propertyName) {
    WidgetValue widgetValue = getWidgetValue(widgetClass);
    if (widgetValue != null){
      return widgetValue.get(propertyName);
    }else
      return null;
  }
  private WidgetValue getWidgetValue(Class widgetClass){
    WidgetValue widgetValue;
    if (isXP()) {
      widgetValue = xpValues.get(widgetClass);
    } else {
      widgetValue = classicValues.get(widgetClass);
    }
    if(widgetValue==null&&widgetClass!=Component.class){
      return getWidgetValue(widgetClass.getSuperclass());
    }else{
      return widgetValue;
    }
  }
  private LookAndFeel metalLnf;
 
  public LookAndFeel getLookAndFeelInstance() {
    if(metalLnf==null){
      try {
        metalLnf=(LookAndFeel) Class.forName("com.sun.java.swing.plaf.windows.WindowsLookAndFeel").newInstance(); //$NON-NLS-1$
      } catch (Exception e) {
        LnfPlugin.getLogger().error(e);
      }
    }
    return metalLnf;
  }

 
  public String getClassname() {
    return "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; //$NON-NLS-1$
  }

 
  public String getName() {
    return Messages.WindowsLookAndFeelAdapter_Windows_Lnf;
  }   
}

TOP

Related Classes of org.dyno.visual.swing.lnfs.WindowsLookAndFeelAdapter

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.