//idega 2001 - Tryggvi Larusson /* *Copyright 2000 idega.is All Rights Reserved. */ package com.idega.presentation.app; import java.util.List; import com.idega.core.component.data.ICObject; import com.idega.core.component.data.ICObjectBMPBean; import com.idega.data.EntityFinder; import com.idega.exception.IWBundleDoesNotExist; import com.idega.idegaweb.IWBundle; import com.idega.idegaweb.IWConstants; import com.idega.idegaweb.IWResourceBundle; import com.idega.presentation.FrameSet; import com.idega.presentation.IWContext; import com.idega.presentation.Image; import com.idega.presentation.PresentationObject; import com.idega.presentation.Table; import com.idega.presentation.text.Link; import com.idega.presentation.text.Text; import com.idega.presentation.ui.Window; /** *@author <a href="mailto:tryggvi@idega.is">Tryggvi Larusson</a> *@version 1.2 */ public class IWApplication extends FrameSet { private final static String IW_BUNDLE_IDENTIFIER = "com.idega.core"; private String applicationName; public IWApplication() { this("idegaWeb Application"); } public IWApplication(String applicationName) { this(applicationName, 600, 400); } public IWApplication(String applicationName, int initialWidth, int initialHeight) { this.setApplicationName(applicationName); this.setWidth(initialWidth); this.setHeight(initialHeight); } public void _main(IWContext iwc) throws Exception { if (isChildOfOtherPage()) { } else { super._main(iwc); } } public void setApplicationName(String applicationName) { this.applicationName = applicationName; setTitle(applicationName); } public String getApplicationName() { return this.applicationName; } public Image getIcon() { return new Image(""); } public static PresentationObject getIWApplicationIcon(Class iwApplicationClass, IWContext iwc) { ICObject obj = ICObjectBMPBean.getICObject(iwApplicationClass.getName()); return getIWApplicationIcon(obj, iwApplicationClass, iwc); } public static PresentationObject getIWApplicationIcon(ICObject obj, IWContext iwc) { Class iwApplicationClass = null; try { iwApplicationClass = obj.getObjectClass(); } catch (ClassNotFoundException e) { } return getIWApplicationIcon(obj, iwApplicationClass, iwc); } private static PresentationObject getIWApplicationIcon(ICObject obj, Class iwApplicationClass, IWContext iwc) { Table icon = new Table(1, 2); String name = null; if (obj != null) { name = obj.getName(); } else { Window instance = Window.getStaticInstance(iwApplicationClass); name = instance.getName(); } /** * @todo get the right Image */ try { Image iconImage = null; IWBundle bundle = null; IWResourceBundle iwrb = null; if (obj == null) { bundle = iwc.getIWMainApplication().getBundle(IW_BUNDLE_IDENTIFIER); iconImage = bundle.getImage("IWApplicationIcon.gif"); } else { bundle = obj.getBundle(iwc.getIWMainApplication()); if (bundle == null) { bundle = iwc.getIWMainApplication().getBundle(IW_BUNDLE_IDENTIFIER); iconImage = bundle.getImage("IWApplicationIcon.gif"); } else { iconImage = bundle.getImage("IWApplicationIcon.gif"); } } iwrb = bundle.getResourceBundle(iwc); if(iwrb!=null){ name = iwrb.getLocalizedString("iwapplication_name."+name,name); } Link icon_image = new Link(iconImage); icon_image.setWindowToOpen(iwApplicationClass); Text icon_text = new Text(name); icon_text.setFontSize(1); icon_text.setFontColor("black"); Link icon_link = new Link(name); icon_link.setStyleAttribute(IWConstants.BUILDER_FONT_STYLE_LARGE); icon_link.setWindowToOpen(iwApplicationClass); icon.setAlignment(1, 1, "center"); icon.add(icon_image, 1, 1); icon.setAlignment(1, 2, "center"); icon.add(icon_link, 1, 2); return icon; } catch (IWBundleDoesNotExist e) { e.printStackTrace(); Link missingBundle = new Link(name+"<br> The "+obj.getBundleIdentifier()+" bundle is missing!"); missingBundle.setWindowToOpen(iwApplicationClass); missingBundle.setFontSize(1); missingBundle.setFontColor("red"); return missingBundle; } } public static List getApplictionICObjects() { try { return EntityFinder.findAllByColumn( com.idega.data.GenericEntity.getStaticInstance(ICObject.class), ICObjectBMPBean.getObjectTypeColumnName(), ICObjectBMPBean.COMPONENT_TYPE_APPLICATION); } catch (Exception e) { return null; } } public void print(IWContext iwc) throws Exception { if (isChildOfOtherPage()) { //getIWApplicationIcon(this.getClass(), iwc).print(iwc); this.renderChild(iwc,getIWApplicationIcon(this.getClass(), iwc)); } else { super.print(iwc); } } } //End class