From eb657e8e6334cd10e6e9f28a10c0cdf656ce1355 Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Fri, 17 Dec 2010 11:49:05 +0800 Subject: [PATCH] Fixed loading of image resource for web ui. --- .../src/org/compiere/Adempiere.java | 49 ++----------------- org.adempiere.ui.zk/META-INF/MANIFEST.MF | 5 +- org.adempiere.ui.zk/WEB-INF/classes/.hgignore | 1 - .../org/adempiere/webui/WebUIActivator.java | 46 +++++++++++++++++ .../webui/util/WebUIResourceFinder.java | 33 +++++++++++++ org.adempiere.ui.zk/plugin.xml | 7 +++ 6 files changed, 95 insertions(+), 46 deletions(-) delete mode 100644 org.adempiere.ui.zk/WEB-INF/classes/.hgignore create mode 100644 org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WebUIActivator.java create mode 100644 org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/util/WebUIResourceFinder.java diff --git a/org.adempiere.base/src/org/compiere/Adempiere.java b/org.adempiere.base/src/org/compiere/Adempiere.java index 00a55642e9..2f14bf0d9a 100644 --- a/org.adempiere.base/src/org/compiere/Adempiere.java +++ b/org.adempiere.base/src/org/compiere/Adempiere.java @@ -294,8 +294,7 @@ public final class Adempiere if (s_image16 == null) { Toolkit tk = Toolkit.getDefaultToolkit(); - URL url = org.compiere.Adempiere.class.getResource(s_File16x16); - // System.out.println(url); + URL url = Core.getResourceFinder().getResource(s_File16x16); if (url == null) return null; s_image16 = tk.getImage(url); @@ -315,10 +314,9 @@ public final class Adempiere Toolkit tk = Toolkit.getDefaultToolkit(); URL url = null; if (hr) - url = org.compiere.Adempiere.class.getResource(s_file48x15HR); + url = Core.getResourceFinder().getResource(s_file48x15HR); else - url = org.compiere.Adempiere.class.getResource(s_file48x15); - // System.out.println(url); + url = Core.getResourceFinder().getResource(s_file48x15); if (url == null) return null; s_image48x15 = tk.getImage(url); @@ -336,8 +334,6 @@ public final class Adempiere { Toolkit tk = Toolkit.getDefaultToolkit(); URL url = Core.getResourceFinder().getResource(s_file100x30); -// URL url = org.compiere.Adempiere.class.getResource(s_file100x30); - // System.out.println(url); if (url == null) return null; s_imageLogo = tk.getImage(url); @@ -353,8 +349,7 @@ public final class Adempiere { if (s_imageIcon32 == null) { - URL url = org.compiere.Adempiere.class.getResource(s_file32x32); - // System.out.println(url); + URL url = Core.getResourceFinder().getResource(s_file32x32); if (url == null) return null; s_imageIcon32 = new ImageIcon(url); @@ -370,8 +365,7 @@ public final class Adempiere { if (s_imageIconLogo == null) { - URL url = org.compiere.Adempiere.class.getResource(s_file100x30); - // System.out.println(url); + URL url = Core.getResourceFinder().getResource(s_file100x30); if (url == null) return null; s_imageIconLogo = new ImageIcon(url); @@ -581,37 +575,4 @@ public final class Adempiere return Core.getResourceFinder().getResource(name); } - - /** - * Main Method - * - * @param args optional start class - */ -// public static void main (String[] args) -// { -// Splash.getSplash(); -// startup(true); // error exit and initUI -// -// // Start with class as argument - or if nothing provided with Client -// String className = "org.compiere.apps.AMenu"; -// for (int i = 0; i < args.length; i++) -// { -// if (!args[i].equals("-debug")) // ignore -debug -// { -// className = args[i]; -// break; -// } -// } -// // -// try -// { -// Class startClass = Class.forName(className); -// startClass.newInstance(); -// } -// catch (Exception e) -// { -// System.err.println("ADempiere starting: " + className + " - " + e.toString()); -// e.printStackTrace(); -// } -// } // main } // Adempiere diff --git a/org.adempiere.ui.zk/META-INF/MANIFEST.MF b/org.adempiere.ui.zk/META-INF/MANIFEST.MF index 3b2936f177..5ef99ccf96 100644 --- a/org.adempiere.ui.zk/META-INF/MANIFEST.MF +++ b/org.adempiere.ui.zk/META-INF/MANIFEST.MF @@ -374,4 +374,7 @@ Import-Package: javax.servlet;version="2.5.0", javax.servlet.http;version="2.5.0", org.apache.commons.codec.binary, org.apache.ecs, - org.apache.ecs.xhtml + org.apache.ecs.xhtml, + org.osgi.framework;version="1.5.0" +Bundle-ActivationPolicy: lazy +Bundle-Activator: org.adempiere.webui.WebUIActivator diff --git a/org.adempiere.ui.zk/WEB-INF/classes/.hgignore b/org.adempiere.ui.zk/WEB-INF/classes/.hgignore deleted file mode 100644 index 574bc8325a..0000000000 --- a/org.adempiere.ui.zk/WEB-INF/classes/.hgignore +++ /dev/null @@ -1 +0,0 @@ -syntax: regexp diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WebUIActivator.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WebUIActivator.java new file mode 100644 index 0000000000..4ec465ebf5 --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/WebUIActivator.java @@ -0,0 +1,46 @@ +/****************************************************************************** + * Product: Adempiere ERP & CRM Smart Business Solution * + * Copyright (C) 2010 Heng Sin Low * + * This program is free software; you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * + * by the Free Software Foundation. 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.adempiere.webui; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +/** + * @author hengsin + * + */ +public class WebUIActivator implements BundleActivator { + + private static BundleContext bundleContext = null; + + /* (non-Javadoc) + * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) + */ + @Override + public void start(BundleContext context) throws Exception { + bundleContext = context; + } + + /* (non-Javadoc) + * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) + */ + @Override + public void stop(BundleContext context) throws Exception { + bundleContext = null; + } + + public static BundleContext getBundleContext() { + return bundleContext; + } +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/util/WebUIResourceFinder.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/util/WebUIResourceFinder.java new file mode 100644 index 0000000000..4aa2f88c27 --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/util/WebUIResourceFinder.java @@ -0,0 +1,33 @@ +/****************************************************************************** + * Product: Adempiere ERP & CRM Smart Business Solution * + * Copyright (C) 2010 Heng Sin Low * + * This program is free software; you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * + * by the Free Software Foundation. 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.adempiere.webui.util; + +import java.net.URL; + +import org.adempiere.base.IResourceFinder; +import org.adempiere.webui.WebUIActivator; + +/** + * + * @author hengsin + * + */ +public class WebUIResourceFinder implements IResourceFinder { + + @Override + public URL getResource(String name) { + return WebUIActivator.getBundleContext().getBundle().getEntry(name); + } + +} diff --git a/org.adempiere.ui.zk/plugin.xml b/org.adempiere.ui.zk/plugin.xml index cf173cc19d..35b2f2510a 100644 --- a/org.adempiere.ui.zk/plugin.xml +++ b/org.adempiere.ui.zk/plugin.xml @@ -46,5 +46,12 @@ priority="0"> + + + +