package rene.gui;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.SystemColor;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Locale;
import java.util.Properties;
import java.util.ResourceBundle;
import java.util.StringTokenizer;
import rene.dialogs.Warning;
import rene.util.FileName;
import rene.util.parser.StringParser;
/**
The Global class.
<p>
This class will load a resource bundle with local support. It will
set various things from this resource file.
*/
public class Global
{
// Fonts:
static public Font NormalFont=
null,FixedFont=
null,BoldFont=
null;
static public void makeFonts ()
{ NormalFont=createfont(
"normalfont","SansSerif",12,false);
FixedFont=createfont(
"fixedfont","Monospaced",12,false);
BoldFont=createfont(
"fixedfont","Monospaced",12,true);
}
static
{ makeFonts();
}
boolean bold)
{ String fontname=getParameter
(name+
".name",def
);
String mode=getParameter
(name+
".mode",
"plain");
if (bold || mode.equals("bold"))
{ return new Font(fontname,
Font.
BOLD,getParameter
(name+
".size",defsize
));
}
else if (mode.equals("italic"))
{ return new Font(fontname,
Font.
ITALIC,getParameter
(name+
".size",defsize
));
}
else
{ return new Font(fontname,
Font.
PLAIN,Global.
getParameter(name+
".size",defsize
));
}
}
static public Color Background=
null,ControlBackground=
null;
static
{ makeColors();
}
static public void makeColors ()
{ if (haveParameter("color.background"))
Background=getParameter
("color.background",
Color.
gray.
brighter());
if (haveParameter("color.control"))
ControlBackground=getParameter
("color.control",
Color.
gray.
brighter());
}
// Resources:
{ if (B!=null) return B.getKeys();
else return null;
}
if (B==null) return def;
try
{ s=B.getString(tag);
}
{ s=def;
}
return s;
}
{ return name(tag,tag.substring(tag.lastIndexOf(".")+1));
}
public static void initBundle
(String file,
boolean language
)
{ try
String lang=getParameter
("language",
"");
if (language && !lang.equals("") && !lang.equals("default"))
if (lang.length()>3 && lang.charAt(2)=='_')
{ langsec=lang.substring(3);
lang=lang.substring(0,2);
}
initBundle(file,false);
}
}
{ B=null;
}
}
public static void initBundle
(String file
)
{ initBundle(file,false);
}
// Properties:
public static synchronized Enumeration properties
() { return P.
keys(); }
public static synchronized void loadProperties
(InputStream in
)
{ try
P.load(in);
in.close();
}
}
}
public static synchronized boolean loadPropertiesFromResource
(String filename
)
{ try
InputStream in=G.
getClass().
getResourceAsStream(filename
);
P.load(in);
in.close();
}
return false;
}
ConfigName=filename;
return true;
}
public static synchronized boolean loadProperties
(String filename
)
{ ConfigName=filename;
try
P.load(in);
in.close();
}
return false;
}
return true;
}
public static synchronized void loadProperties
(String dir,
String filename
)
{ try
ConfigName=dir+
p.getProperty("file.separator")+filename;
loadProperties(ConfigName);
}
}
}
public static synchronized void loadPropertiesInHome
(String filename
)
{ try
loadProperties(p.getProperty("user.home"),filename);
}
}
}
public static synchronized void clearProperties ()
}
public static synchronized void saveProperties
(String text
)
{ try
P.save(out,text);
out.close();
}
}
public static void saveProperties
(String text,
String filename
)
{ ConfigName=filename;
saveProperties(text);
}
public static synchronized void setParameter
(String key,
boolean value
)
{ if (P==null) return;
if (value) P.put(key,"true");
else P.put(key,"false");
}
public static synchronized boolean getParameter
(String key,
boolean def
)
{ try
{ String s=P.
getProperty(key
);
if (s.equals("true")) return true;
else if (s.equals("false")) return false;
return def;
}
{ return def;
}
}
try
{ res=P.getProperty(key);
}
if (res!=null)
{ if (res.startsWith("$")) res=res.substring(1);
return res;
}
else return def;
}
public static synchronized void setParameter
(String key,
String value
)
{ if (P==null) return;
if (value.
length()>0 && Character.
isSpaceChar(value.
charAt(0)))
value="$"+value;
P.put(key,value);
}
public static synchronized int getParameter
(String key,
int def
)
{ try
{ return Integer.
parseInt(getParameter
(key,
""));
}
{ try
{ double x=
new Double(getParameter
(key,
"")).
doubleValue();
return (int)x;
}
return def;
}
}
public static synchronized void setParameter
(String key,
int value
)
{ setParameter(key,""+value);
}
public static synchronized double getParameter
(String key,
double def
)
{ try
{ return new Double(getParameter
(key,
"")).
doubleValue();
}
{ return def;
}
}
public static synchronized void setParameter
(String key,
double value
)
{ setParameter(key,""+value);
}
{ String s=getParameter
(key,
"");
if (s.equals("")) return c;
StringParser p=new StringParser(s);
p.replace(',',' ');
int red,green,blue;
red=p.parseint(); green=p.parseint(); blue=p.parseint();
try
{ return new Color(red,green,blue
);
}
{ return c;
}
}
static public synchronized Color getParameter
(String key,
int red,
int green,
int blue
)
{ String s=getParameter
(key,
"");
if (s.
equals("")) return new Color(red,green,blue
);
StringParser p=new StringParser(s);
p.replace(',',' ');
red=p.parseint(); green=p.parseint(); blue=p.parseint();
try
{ return new Color(red,green,blue
);
}
}
}
public static synchronized void setParameter
(String key,
Color c
)
{ setParameter(key,""+c.getRed()+","+c.getGreen()+","+c.getBlue());
}
/**
Remove a specific Paramater.
*/
public static synchronized void removeParameter
(String key
)
}
/**
Remove all Parameters that start with the string.
*/
public static synchronized void removeAllParameters
(String start
)
while (e.hasMoreElements())
if (key.startsWith(start))
}
}
}
/**
* Set default values for parameters
* resetDefaults("default.") is the same as:
* setParameter("xxx",getParameter("default.xxx",""));
* if "default.xxx" has a value.
* @param defaults
*/
public static synchronized void resetDefaults
(String defaults
)
while (e.hasMoreElements())
if (key.startsWith(defaults))
{ setParameter(key.substring(defaults.length()),
getParameter(key,""));
}
}
}
public static void resetDefaults ()
{ resetDefaults("default.");
}
/**
@return if I have such a parameter.
*/
public static synchronized boolean haveParameter
(String key
)
{ try
{ String res=P.
getProperty(key
);
if (res==null) return false;
}
return true;
}
// Warnings
public static void warning
(String s
)
{ if (F==null)
}
Warning W=new Warning(F,s,name("warning"),false);
W.center();
W.setVisible(true);
}
// Clipboard for applets
static public String AppletClipboard=
null;
static public boolean IsApplet=false;
static public void setApplet (boolean flag) { IsApplet=flag; }
static public boolean isApplet () { return IsApplet; }
// Java Version
public static double getJavaVersion ()
if (version==null) return 0.0;
double v=0.0;
if (t.hasMoreTokens())
{ v=convert(t.nextToken());
}
else return v;
if (t.hasMoreTokens())
{ v=v+convert(t.nextToken())/10;
}
else return v;
if (t.hasMoreTokens())
{ v=v+convert(t.nextToken())/100;
}
return v;
}
public static double convert
(String s
)
{ try
}
{ return 0;
}
}
public static synchronized String getUserDir
()
return FileName.canonical(dir);
}
public static synchronized void exit (int i)
{ synchronized (ExitBlock)
}
}
public static void main
(String args
[])
{ try
}
}
}