details: https://code.openbravo.com/erp/devel/pi/rev/5b9f270d0bff changeset: 13268:5b9f270d0bff user: Antonio Moreno <antonio.moreno <at> openbravo.com> date: Tue Jul 26 12:40:29 2011 +0200 summary: Fixed issue with ClientInformation and OrganizationInformation in OB3
details: https://code.openbravo.com/erp/devel/pi/rev/8bfbd41b6ea6 changeset: 13269:8bfbd41b6ea6 user: Antonio Moreno <antonio.moreno <at> openbravo.com> date: Tue Jul 26 12:40:42 2011 +0200 summary: Added support for the ImageBLOB reference in OB3 diffstat: modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml | 66 ++ modules/org.openbravo.client.application/src/org/openbravo/client/application/ApplicationComponentProvider.java | 10 +- modules/org.openbravo.client.application/src/org/openbravo/client/application/ApplicationUtils.java | 13 - modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java | 27 +- modules/org.openbravo.client.application/src/org/openbravo/client/application/window/ImagesActionHandler.java | 101 +++ modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFormComponent.java | 13 +- modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-image.js | 316 ++++++++++ modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/erase_icon.png | 0 modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/erase_icon_Disabled.png | 0 modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/erase_icon_Disabled_orig.png | 0 modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/erase_icon_Down.png | 0 modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/erase_icon_Over.png | 0 modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/upload_icon.png | 0 modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/upload_icon_Disabled.png | 0 modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/upload_icon_Disabled_orig.png | 0 modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/upload_icon_Down.png | 0 modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/images/form/upload_icon_Over.png | 0 modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-form-styles.css | 66 ++ modules/org.openbravo.client.kernel/src-db/database/sourcedata/OBCLKER_UIDEFINITION.xml | 4 +- modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/ImageUIDefinition.java | 11 + src-db/database/sourcedata/AD_FIELD.xml | 20 +- src/org/openbravo/erpCommon/info/ImageInfoBLOB.java | 66 +- 22 files changed, 643 insertions(+), 70 deletions(-) diffs (truncated from 1021 to 300 lines): diff -r bc4bd502bc4d -r 8bfbd41b6ea6 modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml --- a/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml Tue Jul 26 12:30:41 2011 +0200 +++ b/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml Tue Jul 26 12:40:42 2011 +0200 @@ -1378,6 +1378,72 @@ <!--FF808081314C76B401314D0A2A240082--> <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID> <!--FF808081314C76B401314D0A2A240082--></AD_MESSAGE> +<!--FF80808131509CDA013150B6379F0013--><AD_MESSAGE> +<!--FF80808131509CDA013150B6379F0013--> <AD_MESSAGE_ID><![CDATA[FF80808131509CDA013150B6379F0013]]></AD_MESSAGE_ID> +<!--FF80808131509CDA013150B6379F0013--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--FF80808131509CDA013150B6379F0013--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--FF80808131509CDA013150B6379F0013--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--FF80808131509CDA013150B6379F0013--> <VALUE><![CDATA[OBUIAPP_ConfirmDeleteImage]]></VALUE> +<!--FF80808131509CDA013150B6379F0013--> <MSGTEXT><![CDATA[Are you sure you want to permanently delete this image?]]></MSGTEXT> +<!--FF80808131509CDA013150B6379F0013--> <MSGTYPE><![CDATA[I]]></MSGTYPE> +<!--FF80808131509CDA013150B6379F0013--> <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID> +<!--FF80808131509CDA013150B6379F0013--></AD_MESSAGE> + +<!--FF80808131509CDA013150B6FDC80016--><AD_MESSAGE> +<!--FF80808131509CDA013150B6FDC80016--> <AD_MESSAGE_ID><![CDATA[FF80808131509CDA013150B6FDC80016]]></AD_MESSAGE_ID> +<!--FF80808131509CDA013150B6FDC80016--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--FF80808131509CDA013150B6FDC80016--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--FF80808131509CDA013150B6FDC80016--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--FF80808131509CDA013150B6FDC80016--> <VALUE><![CDATA[OBUIAPP_ImageSelectorTitle]]></VALUE> +<!--FF80808131509CDA013150B6FDC80016--> <MSGTEXT><![CDATA[Upload image]]></MSGTEXT> +<!--FF80808131509CDA013150B6FDC80016--> <MSGTYPE><![CDATA[I]]></MSGTYPE> +<!--FF80808131509CDA013150B6FDC80016--> <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID> +<!--FF80808131509CDA013150B6FDC80016--></AD_MESSAGE> + +<!--FF80808131509CDA013150B7DBF30021--><AD_MESSAGE> +<!--FF80808131509CDA013150B7DBF30021--> <AD_MESSAGE_ID><![CDATA[FF80808131509CDA013150B7DBF30021]]></AD_MESSAGE_ID> +<!--FF80808131509CDA013150B7DBF30021--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--FF80808131509CDA013150B7DBF30021--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--FF80808131509CDA013150B7DBF30021--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--FF80808131509CDA013150B7DBF30021--> <VALUE><![CDATA[OBUIAPP_ImageFile]]></VALUE> +<!--FF80808131509CDA013150B7DBF30021--> <MSGTEXT><![CDATA[Image File]]></MSGTEXT> +<!--FF80808131509CDA013150B7DBF30021--> <MSGTYPE><![CDATA[I]]></MSGTYPE> +<!--FF80808131509CDA013150B7DBF30021--> <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID> +<!--FF80808131509CDA013150B7DBF30021--></AD_MESSAGE> + +<!--FF80808131509CDA013150B85F370024--><AD_MESSAGE> +<!--FF80808131509CDA013150B85F370024--> <AD_MESSAGE_ID><![CDATA[FF80808131509CDA013150B85F370024]]></AD_MESSAGE_ID> +<!--FF80808131509CDA013150B85F370024--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--FF80808131509CDA013150B85F370024--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--FF80808131509CDA013150B85F370024--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--FF80808131509CDA013150B85F370024--> <VALUE><![CDATA[OBUIAPP_Close]]></VALUE> +<!--FF80808131509CDA013150B85F370024--> <MSGTEXT><![CDATA[Close]]></MSGTEXT> +<!--FF80808131509CDA013150B85F370024--> <MSGTYPE><![CDATA[I]]></MSGTYPE> +<!--FF80808131509CDA013150B85F370024--> <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID> +<!--FF80808131509CDA013150B85F370024--></AD_MESSAGE> + +<!--FF80808131509CDA013150B8CC730027--><AD_MESSAGE> +<!--FF80808131509CDA013150B8CC730027--> <AD_MESSAGE_ID><![CDATA[FF80808131509CDA013150B8CC730027]]></AD_MESSAGE_ID> +<!--FF80808131509CDA013150B8CC730027--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--FF80808131509CDA013150B8CC730027--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--FF80808131509CDA013150B8CC730027--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--FF80808131509CDA013150B8CC730027--> <VALUE><![CDATA[OBUIAPP_Upload]]></VALUE> +<!--FF80808131509CDA013150B8CC730027--> <MSGTEXT><![CDATA[Upload]]></MSGTEXT> +<!--FF80808131509CDA013150B8CC730027--> <MSGTYPE><![CDATA[I]]></MSGTYPE> +<!--FF80808131509CDA013150B8CC730027--> <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID> +<!--FF80808131509CDA013150B8CC730027--></AD_MESSAGE> + +<!--FF80808131509CDA013150BA6C5C002E--><AD_MESSAGE> +<!--FF80808131509CDA013150BA6C5C002E--> <AD_MESSAGE_ID><![CDATA[FF80808131509CDA013150BA6C5C002E]]></AD_MESSAGE_ID> +<!--FF80808131509CDA013150BA6C5C002E--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--FF80808131509CDA013150BA6C5C002E--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--FF80808131509CDA013150BA6C5C002E--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--FF80808131509CDA013150BA6C5C002E--> <VALUE><![CDATA[OBUIAPP_ConfirmOverwriteImage]]></VALUE> +<!--FF80808131509CDA013150BA6C5C002E--> <MSGTEXT><![CDATA[The existing image will be replaced by the new one. Are you sure you want to continue?]]></MSGTEXT> +<!--FF80808131509CDA013150BA6C5C002E--> <MSGTYPE><![CDATA[I]]></MSGTYPE> +<!--FF80808131509CDA013150BA6C5C002E--> <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID> +<!--FF80808131509CDA013150BA6C5C002E--></AD_MESSAGE> + <!--FF80808131517E5F0131523F2F9000C1--><AD_MESSAGE> <!--FF80808131517E5F0131523F2F9000C1--> <AD_MESSAGE_ID><![CDATA[FF80808131517E5F0131523F2F9000C1]]></AD_MESSAGE_ID> <!--FF80808131517E5F0131523F2F9000C1--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> diff -r bc4bd502bc4d -r 8bfbd41b6ea6 modules/org.openbravo.client.application/src/org/openbravo/client/application/ApplicationComponentProvider.java --- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/ApplicationComponentProvider.java Tue Jul 26 12:30:41 2011 +0200 +++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/ApplicationComponentProvider.java Tue Jul 26 12:40:42 2011 +0200 @@ -87,6 +87,8 @@ "web/org.openbravo.client.application/js/utilities/ob-utilities-number.js", true)); globalResources.add(createStaticResource( + "web/org.openbravo.client.application/js/utilities/ob-popup.js", false)); + globalResources.add(createStaticResource( "web/org.openbravo.client.application/js/form/ob-form-button.js", true)); globalResources.add(createStaticResource( "web/org.openbravo.client.application/js/form/formitem/ob-formitem-checkbox.js", true)); @@ -139,6 +141,10 @@ "web/org.openbravo.client.application/js/form/formitem/ob-formitem-yesno.js", true)); globalResources.add(createStaticResource( + "web/org.openbravo.client.application/js/toolbar/ob-toolbar.js", false)); + globalResources.add(createStaticResource( + "web/org.openbravo.client.application/js/form/formitem/ob-formitem-image.js", true)); + globalResources.add(createStaticResource( "web/org.openbravo.client.application/js/navbar/ob-application-menu.js", false)); globalResources.add(createStaticResource( "web/org.openbravo.client.application/js/main/ob-tab.js", false)); @@ -174,8 +180,6 @@ globalResources.add(createStaticResource( "web/org.openbravo.client.application/js/main/ob-standard-view.js", false)); globalResources.add(createStaticResource( - "web/org.openbravo.client.application/js/utilities/ob-popup.js", false)); - globalResources.add(createStaticResource( "web/org.openbravo.client.application/js/form/ob-view-form-linked-items.js", false)); globalResources.add(createStaticResource( "web/org.openbravo.client.application/js/form/ob-view-form-notes.js", false)); @@ -190,8 +194,6 @@ globalResources.add(createStaticResource( "web/org.openbravo.client.application/js/classic/ob-classic-popup.js", false)); globalResources.add(createStaticResource( - "web/org.openbravo.client.application/js/toolbar/ob-toolbar.js", false)); - globalResources.add(createStaticResource( "web/org.openbravo.client.application/js/main/ob-messagebar.js", false)); globalResources.add(createStaticResource( "web/org.openbravo.client.application/js/form/ob-statusbar.js", false)); diff -r bc4bd502bc4d -r 8bfbd41b6ea6 modules/org.openbravo.client.application/src/org/openbravo/client/application/ApplicationUtils.java --- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/ApplicationUtils.java Tue Jul 26 12:30:41 2011 +0200 +++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/ApplicationUtils.java Tue Jul 26 12:40:42 2011 +0200 @@ -31,7 +31,6 @@ import org.openbravo.dal.core.OBContext; import org.openbravo.dal.service.OBCriteria; import org.openbravo.dal.service.OBDal; -import org.openbravo.dal.service.OBQuery; import org.openbravo.model.ad.access.Role; import org.openbravo.model.ad.access.RoleOrganization; import org.openbravo.model.ad.access.User; @@ -57,19 +56,7 @@ } static void showWindowInClassicMode(Window window, List<String> reasonsToBeShownInClassic) { - // FIXME Remove this once ImageBLOB is implemented - // Currently, windows with ImageBLOB reference columns will be shown in classic mode - String qryStr = "as f where f.column.reference.id = '4AA6C3BE9D3B4D84A3B80489505A23E5' " - + "and f.tab.window.id = :windowId "; List<String> reasonsOfWindow = new ArrayList<String>(); - OBQuery<Field> qry = OBDal.getInstance().createQuery(Field.class, qryStr); - qry.setNamedParameter("windowId", window.getId()); - if (qry.count() > 0) { - String reason = " One or more columns in the window " + window.getName() - + " have an ImageBLOB reference "; - reasonsOfWindow.add(reason); - } - for (Tab tab : window.getADTabList()) { if (!tab.isActive()) { continue; diff -r bc4bd502bc4d -r 8bfbd41b6ea6 modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java --- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java Tue Jul 26 12:30:41 2011 +0200 +++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java Tue Jul 26 12:40:42 2011 +0200 @@ -381,24 +381,25 @@ } if (mode.equals("EDIT") && row != null) { - if (((ClientEnabled) row).getClient() != null - || ((OrganizationEnabled) row).getOrganization() != null) { + if ((row instanceof ClientEnabled && ((ClientEnabled) row).getClient() != null)) { final String rowClientId = ((ClientEnabled) row).getClient().getId(); final String currentClientId = OBContext.getOBContext().getCurrentClient().getId(); if (!rowClientId.equals(currentClientId)) { finalObject.put("_readOnly", true); - } else { - boolean writable = false; - final String objectOrgId = ((OrganizationEnabled) row).getOrganization().getId(); - for (String orgId : OBContext.getOBContext().getWritableOrganizations()) { - if (orgId.equals(objectOrgId)) { - writable = true; - break; - } + } + } + if (row instanceof OrganizationEnabled + && ((OrganizationEnabled) row).getOrganization() != null) { + boolean writable = false; + final String objectOrgId = ((OrganizationEnabled) row).getOrganization().getId(); + for (String orgId : OBContext.getOBContext().getWritableOrganizations()) { + if (orgId.equals(objectOrgId)) { + writable = true; + break; } - if (!writable) { - finalObject.put("_readOnly", true); - } + } + if (!writable) { + finalObject.put("_readOnly", true); } } } diff -r bc4bd502bc4d -r 8bfbd41b6ea6 modules/org.openbravo.client.application/src/org/openbravo/client/application/window/ImagesActionHandler.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/ImagesActionHandler.java Tue Jul 26 12:40:42 2011 +0200 @@ -0,0 +1,101 @@ +/* + ************************************************************************* + * The contents of this file are subject to the Openbravo Public License + * Version 1.1 (the "License"), being the Mozilla Public License + * Version 1.1 with a permitted attribution clause; you may not use this + * file except in compliance with the License. You may obtain a copy of + * the License at http://www.openbravo.com/legal/license.html + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + * License for the specific language governing rights and limitations + * under the License. + * The Original Code is Openbravo ERP. + * The Initial Developer of the Original Code is Openbravo SLU + * All portions are Copyright (C) 2011 Openbravo SLU + * All Rights Reserved. + * Contributor(s): ______________________________________. + ************************************************************************ + */ +package org.openbravo.client.application.window; + +import java.awt.image.BufferedImage; +import java.io.ByteArrayInputStream; +import java.util.Map; + +import javax.imageio.ImageIO; + +import org.apache.log4j.Logger; +import org.codehaus.jettison.json.JSONObject; +import org.openbravo.base.model.Entity; +import org.openbravo.base.model.ModelProvider; +import org.openbravo.base.structure.BaseOBObject; +import org.openbravo.client.kernel.BaseActionHandler; +import org.openbravo.dal.core.OBContext; +import org.openbravo.dal.service.OBDal; +import org.openbravo.model.ad.datamodel.Table; +import org.openbravo.model.ad.ui.Tab; +import org.openbravo.model.ad.utility.Image; + +/** + * This ActionHandler implements the DELETE and GETSIZE actions which are used by the ImageBLOB + * reference components in the OB3 windows. + * + * The DELETE action deletes an image from the database, and its reference from the referencing + * table + * + * The GETSIZE action gets the size of an image + * + */ +public class ImagesActionHandler extends BaseActionHandler { + + private static final Logger log = Logger.getLogger(ImagesActionHandler.class); + + @Override + protected JSONObject execute(Map<String, Object> parameters, String content) { + if (parameters.get("command").equals("DELETE")) { + OBContext.setAdminMode(); + String imageID = (String) parameters.get("inpimageId"); + String tabId = (String) parameters.get("inpTabId"); + Tab tab = OBDal.getInstance().get(Tab.class, tabId); + String tableId = tab.getTable().getId(); + + String columnName = (String) parameters.get("inpColumnName"); + String parentObjectId = (String) parameters.get("parentObjectId"); + try { + Image image = OBDal.getInstance().get(Image.class, imageID); + Table table = OBDal.getInstance().get(Table.class, tableId); + Entity entity = ModelProvider.getInstance().getEntityByTableName(table.getDBTableName()); + String propertyName = entity.getPropertyByColumnName(columnName).getName(); + BaseOBObject parentObject = (BaseOBObject) OBDal.getInstance().get(entity.getName(), + parentObjectId); + parentObject.set(propertyName, null); + OBDal.getInstance().flush(); + OBDal.getInstance().remove(image); + return new JSONObject(); + } finally { + OBContext.restorePreviousMode(); + } + } else if (parameters.get("command").equals("GETSIZE")) { + try { + OBContext.setAdminMode(); + String imageID = (String) parameters.get("inpimageId"); + Image image = OBDal.getInstance().get(Image.class, imageID); + ByteArrayInputStream bis = new ByteArrayInputStream(image.getBindaryData()); + BufferedImage rImage = ImageIO.read(bis); + int width = rImage.getWidth(); + int height = rImage.getHeight(); + JSONObject obj = new JSONObject(); + obj.put("width", width); + obj.put("height", height); + return obj; + } catch (Exception e) { + log.error("Error while calculating image size", e); + return new JSONObject(); + } finally { + OBContext.restorePreviousMode(); + } + } else { + return new JSONObject(); + } + } +} diff -r bc4bd502bc4d -r 8bfbd41b6ea6 modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFormComponent.java --- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFormComponent.java Tue Jul 26 12:30:41 2011 +0200 +++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFormComponent.java Tue Jul 26 12:40:42 2011 +0200 @@ -58,6 +58,7 @@ ------------------------------------------------------------------------------ Magic Quadrant for Content-Aware Data Loss Prevention Research study explores the data loss prevention market. Includes in-depth analysis on the changes within the DLP market, and the criteria used to evaluate the strengths and weaknesses of these DLP solutions. http://www.accelacomm.com/jaw/sfnl/114/51385063/ _______________________________________________ Openbravo-commits mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openbravo-commits
