package org.droiddraw;
import java.awt.BorderLayout;
import java.awt.Image;
import java.awt.MediaTracker;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JApplet;
import javax.swing.UIManager;
import org.droiddraw.gui.DroidDrawPanel;
import org.droiddraw.gui.ImageResources;
import org.droiddraw.gui.LayoutPainter;
import org.droiddraw.gui.ScrollViewPainter;
import org.droiddraw.gui.WidgetRegistry;
import org.droiddraw.widget.AbstractLayout;
import org.droiddraw.widget.Layout;
import org.droiddraw.widget.ScrollView;
public class DroidDraw extends JApplet implements URLOpener {
private static final long serialVersionUID = 1L;
protected static final void switchToLookAndFeel(String clazz) {
try {
UIManager.setLookAndFeel(clazz);
} catch (Exception ex) {
AndroidEditor.instance().error(ex);
}
}
public void openURL(String url) {
try {
getAppletContext().showDocument(new URL(url), "_blank");
}
catch (MalformedURLException ex) {
AndroidEditor.instance().error(ex);
}
}
protected static final void setupRootLayout(Layout l) {
l.setPosition(AndroidEditor.OFFSET_X,AndroidEditor.OFFSET_Y);
l.setPropertyByAttName("android:layout_width", "fill_parent");
l.setPropertyByAttName("android:layout_height", "fill_parent");
l.apply();
}
MediaTracker md;
int ix;
protected void loadImage(String name) {
Image img = getImage(getCodeBase(), "ui/"+name+".png");
md.addImage(img, ix++);
ImageResources.instance().addImage(img, name);
}
@Override
public void init() {
super.init();
AndroidEditor.instance().setURLOpener(this);
AndroidEditor.instance().getPropertiesPanel().setApplet(true);
// This is so that I can test out the Google examples...
// START
/*
if ("true".equals(this.getParameter("load_strings"))) {
try {
URL url = new URL(getCodeBase(), "strings.xml");
AndroidEditor.instance().setStrings(StringHandler.load(url.openStream()));
} catch (Exception ex) {
AndroidEditor.instance().error(ex);
}
}*/
// END
String screen = this.getParameter("Screen");
if (screen == null) {
screen="hvgap";
}
md = new MediaTracker(this);
ix = 0;
loadImage("emu1");
loadImage("emu2");
loadImage("emu3");
loadImage("emu4");
loadImage("emu5");
loadImage("emu6");
loadImage("paint");
loadImage("droiddraw_small");
loadImage("paypal");
loadImage("background_01p");
loadImage("background_01l");
loadImage("statusbar_background_p");
loadImage("statusbar_background_l");
loadImage("title_bar.9");
loadImage("stat_sys_data_connected");
loadImage("stat_sys_battery_charge_100");
loadImage("stat_sys_signal_3");
loadImage("scrollbar.9");
loadImage("scrollfield.9");
loadImage("light/checkbox_off_background");
loadImage("light/checkbox_on_background");
loadImage("light/clock_dial");
loadImage("light/clock_hand_hour");
loadImage("light/clock_hand_minute");
loadImage("light/radiobutton_off_background");
loadImage("light/radiobutton_on_background");
loadImage("light/button_background_normal.9");
loadImage("light/editbox_background_normal.9");
loadImage("light/progress_circular_background");
loadImage("light/progress_particle");
loadImage("light/progress_circular_indeterminate");
loadImage("light/arrow_up_float");
loadImage("light/arrow_down_float");
loadImage("light/spinnerbox_background_focus_yellow.9");
loadImage("light/spinnerbox_arrow_middle.9");
loadImage("def/btn_check_off");
loadImage("def/btn_check_on");
loadImage("def/btn_radio_off");
loadImage("def/btn_radio_on");
loadImage("def/textfield.9");
loadImage("def/btn_default_normal.9");
loadImage("def/progress_wheel_medium");
loadImage("def/spinner_normal.9");
loadImage("def/btn_dropdown_neither.9");
for (int i=0;i<ix;i++) {
try {
md.waitForID(i);
} catch (InterruptedException ex) {}
}
WidgetRegistry.registerPainter(AbstractLayout.class, new LayoutPainter());
WidgetRegistry.registerPainter(ScrollView.class, new ScrollViewPainter());
setLayout(new BorderLayout());
setSize(1024, 650);
add(new DroidDrawPanel(screen, true), BorderLayout.CENTER);
}
}