📄 compiereplaf.java
字号:
* Get available Look And Feels
* @return Array of ValueNamePair with name and class of Look and Feel
*/
public static ValueNamePair[] getPLAFs()
{
return s_looks;
} // getPLAFs
/**
* Get the list of available Metal Themes if the current L&F is a Metal L&F
* @return Array of Strings with Names of Metal Themes
*/
public static ValueNamePair[] getThemes ()
{
if (UIManager.getLookAndFeel() instanceof MetalLookAndFeel)
return s_themes;
return new ValueNamePair[0];
} // getThemes
/*************************************************************************/
/**
* Set PLAF based on Ini Properties
* @param win Optional Window
*/
public static void setPLAF (Window win)
{
String look = Ini.getProperty(Ini.P_UI_LOOK);
String lookTheme = Ini.getProperty(Ini.P_UI_THEME);
// Search for PLAF
ValueNamePair plaf = null;
for (int i = 0; i < s_looks.length; i++)
{
if (s_looks[i].getName().equals(look))
{
plaf = s_looks[i];
break;
}
}
// Search for Theme
ValueNamePair theme = null;
for (int i = 0; i < s_themes.length; i++)
{
if (s_themes[i].getName().equals(lookTheme))
{
theme = s_themes[i];
break;
}
}
// Set PLAF
setPLAF (plaf == null ? s_defaultPLAF : plaf, theme, win);
} // setPLAF
/**
* Set PLAF and update Ini
*
* @param plaf ValueNamePair of the PLAF to be set
* @param theme Optional Theme name
* @param win Optional Window
*/
public static void setPLAF (ValueNamePair plaf, ValueNamePair theme, Window win)
{
if (plaf == null)
return;
System.out.println("PLAF = " + plaf + (theme == null ? "" : (" - " + theme)));
// Look & Feel
try
{
UIManager.setLookAndFeel(plaf.getValue());
}
catch (Exception e)
{
System.err.println("CompierePLAF.setPLAF - " + e.getMessage());
}
LookAndFeel laf = UIManager.getLookAndFeel();
Ini.setProperty(Ini.P_UI_LOOK, plaf.getName());
// Optional Theme
Ini.setProperty(Ini.P_UI_THEME, "");
// Default Theme
if (theme == null && laf instanceof MetalLookAndFeel)
{
String className = laf.getClass().getName();
if (className.equals("javax.swing.plaf.metal.MetalLookAndFeel"))
theme = s_vp_metalTheme;
else if (className.equals("org.compiere.plaf.CompiereLookAndFeel"))
theme = s_vp_compiereTheme;
else if (className.equals("com.incors.plaf.kunststoff.KunststoffLookAndFeel"))
theme = s_vp_kunststoffTheme;
}
if (theme != null && laf instanceof MetalLookAndFeel && theme.getValue().length() > 0)
{
try
{
Class c = Class.forName(theme.getValue());
MetalTheme t = (MetalTheme)c.newInstance();
if (laf instanceof CompiereLookAndFeel)
((CompiereLookAndFeel)laf).setCurrentTheme(t);
else
((MetalLookAndFeel)laf).setCurrentTheme(t);
//
CompiereTheme.setTheme(t); // copies it if not CompiereTheme
Ini.setProperty(Ini.P_UI_THEME, theme.getName());
}
catch (Exception e)
{
System.err.println("CompierePLAF.setPLAF Theme - " + e.getMessage());
}
}
updateUI (win);
// printPLAFDefaults();
} // setPLAF
/**
* Update UI of this and parent Windows
* @param win window
*/
public static void updateUI (Window win)
{
if (win == null)
return;
Window c = win;
do
{
SwingUtilities.updateComponentTreeUI(c);
c.invalidate();
c.pack();
c.validate();
c.repaint();
c = c.getOwner();
}
while (c != null);
} // updateUI
/**
* Reset PLAF Settings
* @param win Window to be reset
*/
public static void reset (Window win)
{
// Clean Theme Properties
CompiereTheme.reset (Ini.getProperties()); // sets properties
CompierePLAF.setPLAF (win);
} // reset
/**
* Print current UIDefaults
*/
public static void printPLAFDefaults ()
{
System.out.println(UIManager.getLookAndFeel());
Object[] keys = UIManager.getLookAndFeelDefaults().keySet().toArray();
Arrays.sort(keys);
char lastStart = ' ';
for (int i = 0; i < keys.length; i++)
{
StringBuffer sb = new StringBuffer();
sb.append(keys[i]).append(" = ").append(UIManager.get(keys[i]));
if (keys[i].toString().charAt(0) != lastStart)
{
System.out.println();
lastStart = keys[i].toString().charAt(0);
}
System.out.println(sb);
}
} // printPLAFDefaults
/**
* Is CompiereL&F the active L&F
* @return true if L&F is Compiere
*/
public static boolean isActive()
{
return UIManager.getLookAndFeel() instanceof CompiereLookAndFeel;
} // isActive
/*************************************************************************/
static ResourceBundle s_res = ResourceBundle.getBundle("org.compiere.plaf.PlafRes");
/**
* Create OK Button
* @return OK button
*/
public static CButton getOKButton()
{
CButton b = new CButton();
b.setIcon(new ImageIcon(CompierePLAF.class.getResource("icons/Ok24.gif")));
b.setMargin(new Insets(0,10,0,10));
b.setToolTipText (s_res.getString("OK"));
return b;
} // getOKButton
/**
* Create Cancel Button
* @return Cancel button
*/
public static CButton getCancelButton()
{
CButton b = new CButton();
b.setIcon(new ImageIcon(CompierePLAF.class.getResource("icons/Cancel24.gif")));
b.setMargin(new Insets(0,10,0,10));
b.setToolTipText (s_res.getString("Cancel"));
return b;
} // getCancelButton
/**
* Center Window on Screen and show it
* @param window window
*/
public static void showCenterScreen (Window window)
{
window.pack();
Dimension sSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension wSize = window.getSize();
window.setLocation(((sSize.width-wSize.width)/2), ((sSize.height-wSize.height)/2));
window.toFront();
window.setVisible(true);
} // showCenterScreen
/*************************************************************************/
/**
* Start Class With Compiere Look or Compiere PLAF Editor
* @param args first parameter is class to start, if none start PLAF Editor
*/
public static void main (String[] args)
{
String jVersion = System.getProperty("java.version");
if (!(jVersion.startsWith("1.4")))
{
JOptionPane.showMessageDialog (null,
"Require Java Version 1.4 or up - Not " + jVersion,
"CompierePLAF - Version Conflict",
JOptionPane.ERROR_MESSAGE);
System.exit(1);
}
// set the defined PLAF
Ini.loadProperties (true);
CompiereTheme.load ();
setPLAF (null);
//
if (args.length == 0)
{
CompierePLAFFrame frame = new CompierePLAFFrame();
return;
}
String className = args[0];
// find class
Class startClass = null;
try
{
startClass = Class.forName(className);
}
catch (Exception e)
{
System.err.println("Did not find: " + className);
e.printStackTrace();
System.exit(1);
}
// try static main method
try
{
Method[] methods = startClass.getMethods();
for (int i = 0; i < methods.length; i++)
{
if (Modifier.isStatic(methods[i].getModifiers()) && methods[i].getName().equals("main"))
{
String[] startArgs = new String[args.length-1];
for (int ii = 1; ii < args.length; ii++)
startArgs[ii-i] = args[ii];
methods[i].invoke(null, new Object[] {startArgs});
}
return;
}
}
catch (Exception ee)
{
System.err.println("Problems invoking main");
ee.printStackTrace();
}
// start the class
try
{
startClass.newInstance();
}
catch (Exception e)
{
System.err.println("Cannot start: " + className);
e.printStackTrace();
System.exit(1);
}
} // main
} // CompierePLAF
/**
* Frame to display Editor
*/
class CompierePLAFFrame extends JFrame
{
/**
* Frame to display Editor
*/
public CompierePLAFFrame()
{
super("CompierePLAF");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setIconImage(Toolkit.getDefaultToolkit().getImage(CompierePLAF.class.getResource("icons/CL16.gif")));
CompierePLAF.showCenterScreen(this);
} // CompierePLAFFrame
/**
* Show Editor
* @param e event
*/
protected void processWindowEvent (WindowEvent e)
{
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_OPENED)
{
CompierePLAFEditor ed = new CompierePLAFEditor(this, true);
dispose();
}
} // processWindowEvents
} // CompierePLAFFrame
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -