IDEMPIERE-147 GoogleMap to show Locators (Improvements)
* make it configurable (to allow using other services like yahoo, bing, mapquest * use java6 syntax to open proper configured browser * fix NPE found on CityAutoCompleter * refactor constant definitions to use sysconfig and move to MLocation to reuse on zk webui http://jira.idempiere.com/browse/IDEMPIERE-147
This commit is contained in:
parent
9ade9b5bfa
commit
4e7a7291d4
|
@ -0,0 +1,46 @@
|
|||
-- Feb 11, 2012 12:12:21 PM COT
|
||||
-- IDEMPIERE-147 GoogleMap to show Locators
|
||||
INSERT INTO AD_SysConfig (AD_SysConfig_ID,EntityType,ConfigurationLevel,Name,Value,Description,AD_Client_ID,AD_Org_ID,Created,Updated,CreatedBy,UpdatedBy,IsActive) VALUES (200004,'D','S','LOCATION_MAPS_URL_PREFIX','http://local.google.com/maps?q=','URL to indicate the preferred maps service',0,0,TO_DATE('2012-02-11 12:12:19','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2012-02-11 12:12:19','YYYY-MM-DD HH24:MI:SS'),100,100,'Y')
|
||||
;
|
||||
|
||||
-- Feb 11, 2012 12:13:04 PM COT
|
||||
INSERT INTO AD_SysConfig (AD_SysConfig_ID,EntityType,ConfigurationLevel,Name,Value,Description,AD_Client_ID,AD_Org_ID,Created,Updated,CreatedBy,UpdatedBy,IsActive) VALUES (200005,'D','S','LOCATION_MAPS_ROUTE_PREFIX','http://maps.google.com/maps?f=d&geocode=','URL to indicate the preferred maps routing service',0,0,TO_DATE('2012-02-11 12:13:03','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2012-02-11 12:13:03','YYYY-MM-DD HH24:MI:SS'),100,100,'Y')
|
||||
;
|
||||
|
||||
-- Feb 11, 2012 12:13:50 PM COT
|
||||
INSERT INTO AD_SysConfig (AD_SysConfig_ID,EntityType,ConfigurationLevel,Name,Value,Description,AD_Client_ID,AD_Org_ID,Created,Updated,CreatedBy,UpdatedBy,IsActive) VALUES (200006,'D','S','LOCATION_MAPS_SOURCE_ADDRESS','&saddr=','Prefix for source address used by the preferred maps routing service',0,0,TO_DATE('2012-02-11 12:13:49','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2012-02-11 12:13:49','YYYY-MM-DD HH24:MI:SS'),100,100,'Y')
|
||||
;
|
||||
|
||||
-- Feb 11, 2012 12:14:07 PM COT
|
||||
INSERT INTO AD_SysConfig (AD_SysConfig_ID,EntityType,ConfigurationLevel,Name,Value,Description,AD_Client_ID,AD_Org_ID,Created,Updated,CreatedBy,UpdatedBy,IsActive) VALUES (200007,'D','S','LOCATION_MAPS_DESTINATION_ADDRESS','&daddr=','Prefix for destination address used by the preferred maps routing service',0,0,TO_DATE('2012-02-11 12:14:07','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2012-02-11 12:14:07','YYYY-MM-DD HH24:MI:SS'),100,100,'Y')
|
||||
;
|
||||
|
||||
-- Feb 11, 2012 12:14:42 PM COT
|
||||
INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,Value,IsActive,Updated,AD_Client_ID,AD_Org_ID,CreatedBy,Created,UpdatedBy) VALUES ('I','Map',200001,'D','Map','Y',TO_DATE('2012-02-11 12:14:41','YYYY-MM-DD HH24:MI:SS'),0,0,100,TO_DATE('2012-02-11 12:14:41','YYYY-MM-DD HH24:MI:SS'),100)
|
||||
;
|
||||
|
||||
-- Feb 11, 2012 12:14:42 PM COT
|
||||
INSERT INTO AD_Message_Trl (AD_Language,AD_Message_ID, MsgText,MsgTip, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Message_ID, t.MsgText,t.MsgTip, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Message t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Message_ID=200001 AND NOT EXISTS (SELECT * FROM AD_Message_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Message_ID=t.AD_Message_ID)
|
||||
;
|
||||
|
||||
-- Feb 11, 2012 12:14:50 PM COT
|
||||
UPDATE AD_Message_Trl SET IsTranslated='Y',MsgText='Mapa',Updated=TO_DATE('2012-02-11 12:14:50','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Message_ID=200001 AND AD_Language LIKE 'es%'
|
||||
;
|
||||
|
||||
-- Feb 11, 2012 12:15:06 PM COT
|
||||
INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,Value,IsActive,Updated,AD_Client_ID,AD_Org_ID,CreatedBy,Created,UpdatedBy) VALUES ('I','Route',200002,'D','Route','Y',TO_DATE('2012-02-11 12:15:05','YYYY-MM-DD HH24:MI:SS'),0,0,100,TO_DATE('2012-02-11 12:15:05','YYYY-MM-DD HH24:MI:SS'),100)
|
||||
;
|
||||
|
||||
-- Feb 11, 2012 12:15:06 PM COT
|
||||
INSERT INTO AD_Message_Trl (AD_Language,AD_Message_ID, MsgText,MsgTip, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Message_ID, t.MsgText,t.MsgTip, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Message t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Message_ID=200002 AND NOT EXISTS (SELECT * FROM AD_Message_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Message_ID=t.AD_Message_ID)
|
||||
;
|
||||
|
||||
-- Feb 11, 2012 12:15:12 PM COT
|
||||
UPDATE AD_Message_Trl SET IsTranslated='Y',MsgText='Ruta',Updated=TO_DATE('2012-02-11 12:15:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Message_ID=200002 AND AD_Language LIKE 'es%'
|
||||
;
|
||||
|
||||
UPDATE AD_System
|
||||
SET LastMigrationScriptApplied='817_IDEMPIERE-147.sql'
|
||||
WHERE LastMigrationScriptApplied<'817_IDEMPIERE-147.sql'
|
||||
OR LastMigrationScriptApplied IS NULL
|
||||
;
|
|
@ -0,0 +1,46 @@
|
|||
-- Feb 11, 2012 12:12:21 PM COT
|
||||
-- IDEMPIERE-147 GoogleMap to show Locators
|
||||
INSERT INTO AD_SysConfig (AD_SysConfig_ID,EntityType,ConfigurationLevel,Name,Value,Description,AD_Client_ID,AD_Org_ID,Created,Updated,CreatedBy,UpdatedBy,IsActive) VALUES (200004,'D','S','LOCATION_MAPS_URL_PREFIX','http://local.google.com/maps?q=','URL to indicate the preferred maps service',0,0,TO_TIMESTAMP('2012-02-11 12:12:19','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2012-02-11 12:12:19','YYYY-MM-DD HH24:MI:SS'),100,100,'Y')
|
||||
;
|
||||
|
||||
-- Feb 11, 2012 12:13:04 PM COT
|
||||
INSERT INTO AD_SysConfig (AD_SysConfig_ID,EntityType,ConfigurationLevel,Name,Value,Description,AD_Client_ID,AD_Org_ID,Created,Updated,CreatedBy,UpdatedBy,IsActive) VALUES (200005,'D','S','LOCATION_MAPS_ROUTE_PREFIX','http://maps.google.com/maps?f=d&geocode=','URL to indicate the preferred maps routing service',0,0,TO_TIMESTAMP('2012-02-11 12:13:03','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2012-02-11 12:13:03','YYYY-MM-DD HH24:MI:SS'),100,100,'Y')
|
||||
;
|
||||
|
||||
-- Feb 11, 2012 12:13:50 PM COT
|
||||
INSERT INTO AD_SysConfig (AD_SysConfig_ID,EntityType,ConfigurationLevel,Name,Value,Description,AD_Client_ID,AD_Org_ID,Created,Updated,CreatedBy,UpdatedBy,IsActive) VALUES (200006,'D','S','LOCATION_MAPS_SOURCE_ADDRESS','&saddr=','Prefix for source address used by the preferred maps routing service',0,0,TO_TIMESTAMP('2012-02-11 12:13:49','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2012-02-11 12:13:49','YYYY-MM-DD HH24:MI:SS'),100,100,'Y')
|
||||
;
|
||||
|
||||
-- Feb 11, 2012 12:14:07 PM COT
|
||||
INSERT INTO AD_SysConfig (AD_SysConfig_ID,EntityType,ConfigurationLevel,Name,Value,Description,AD_Client_ID,AD_Org_ID,Created,Updated,CreatedBy,UpdatedBy,IsActive) VALUES (200007,'D','S','LOCATION_MAPS_DESTINATION_ADDRESS','&daddr=','Prefix for destination address used by the preferred maps routing service',0,0,TO_TIMESTAMP('2012-02-11 12:14:07','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2012-02-11 12:14:07','YYYY-MM-DD HH24:MI:SS'),100,100,'Y')
|
||||
;
|
||||
|
||||
-- Feb 11, 2012 12:14:42 PM COT
|
||||
INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,Value,IsActive,Updated,AD_Client_ID,AD_Org_ID,CreatedBy,Created,UpdatedBy) VALUES ('I','Map',200001,'D','Map','Y',TO_TIMESTAMP('2012-02-11 12:14:41','YYYY-MM-DD HH24:MI:SS'),0,0,100,TO_TIMESTAMP('2012-02-11 12:14:41','YYYY-MM-DD HH24:MI:SS'),100)
|
||||
;
|
||||
|
||||
-- Feb 11, 2012 12:14:42 PM COT
|
||||
INSERT INTO AD_Message_Trl (AD_Language,AD_Message_ID, MsgText,MsgTip, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Message_ID, t.MsgText,t.MsgTip, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Message t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Message_ID=200001 AND NOT EXISTS (SELECT * FROM AD_Message_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Message_ID=t.AD_Message_ID)
|
||||
;
|
||||
|
||||
-- Feb 11, 2012 12:14:50 PM COT
|
||||
UPDATE AD_Message_Trl SET IsTranslated='Y',MsgText='Mapa',Updated=TO_TIMESTAMP('2012-02-11 12:14:50','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Message_ID=200001 AND AD_Language LIKE 'es%'
|
||||
;
|
||||
|
||||
-- Feb 11, 2012 12:15:06 PM COT
|
||||
INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,Value,IsActive,Updated,AD_Client_ID,AD_Org_ID,CreatedBy,Created,UpdatedBy) VALUES ('I','Route',200002,'D','Route','Y',TO_TIMESTAMP('2012-02-11 12:15:05','YYYY-MM-DD HH24:MI:SS'),0,0,100,TO_TIMESTAMP('2012-02-11 12:15:05','YYYY-MM-DD HH24:MI:SS'),100)
|
||||
;
|
||||
|
||||
-- Feb 11, 2012 12:15:06 PM COT
|
||||
INSERT INTO AD_Message_Trl (AD_Language,AD_Message_ID, MsgText,MsgTip, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Message_ID, t.MsgText,t.MsgTip, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Message t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Message_ID=200002 AND NOT EXISTS (SELECT * FROM AD_Message_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Message_ID=t.AD_Message_ID)
|
||||
;
|
||||
|
||||
-- Feb 11, 2012 12:15:12 PM COT
|
||||
UPDATE AD_Message_Trl SET IsTranslated='Y',MsgText='Ruta',Updated=TO_TIMESTAMP('2012-02-11 12:15:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Message_ID=200002 AND AD_Language LIKE 'es%'
|
||||
;
|
||||
|
||||
UPDATE AD_System
|
||||
SET LastMigrationScriptApplied='817_IDEMPIERE-147.sql'
|
||||
WHERE LastMigrationScriptApplied<'817_IDEMPIERE-147.sql'
|
||||
OR LastMigrationScriptApplied IS NULL
|
||||
;
|
|
@ -49,9 +49,14 @@ public class MLocation extends X_C_Location implements Comparator
|
|||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -1326655776792201217L;
|
||||
|
||||
private static final long serialVersionUID = 8556443338866862468L;
|
||||
|
||||
//BEGIN fernandinho/ricardo - http://jira.idempiere.com/browse/IDEMPIERE-147
|
||||
public static String LOCATION_MAPS_URL_PREFIX = MSysConfig.getValue("LOCATION_MAPS_URL_PREFIX");
|
||||
public static String LOCATION_MAPS_ROUTE_PREFIX = MSysConfig.getValue("LOCATION_MAPS_ROUTE_PREFIX");
|
||||
public static String LOCATION_MAPS_SOURCE_ADDRESS = MSysConfig.getValue("LOCATION_MAPS_SOURCE_ADDRESS");
|
||||
public static String LOCATION_MAPS_DESTINATION_ADDRESS = MSysConfig.getValue("LOCATION_MAPS_DESTINATION_ADDRESS");
|
||||
|
||||
/**
|
||||
* Get Location from Cache
|
||||
* @param ctx context
|
||||
|
|
|
@ -30,55 +30,11 @@ public class DefaultContextProvider implements ContextProvider {
|
|||
|
||||
private static Properties s_ctx = new Properties();
|
||||
|
||||
private static String UNIX_BROWSER = "netscape";
|
||||
|
||||
private static String MAC_BROWSER = "open";
|
||||
|
||||
|
||||
public Properties getContext() {
|
||||
return s_ctx;
|
||||
}
|
||||
|
||||
public void showURL(String url) {
|
||||
/* JAVA5 */
|
||||
if (!Ini.isClient()) return;
|
||||
// OS command
|
||||
String cmd = "rundll32 url.dll,FileProtocolHandler ";
|
||||
if (!Env.isWindows()){
|
||||
if(Env.isMac())
|
||||
cmd = MAC_BROWSER + " ";
|
||||
else
|
||||
cmd = UNIX_BROWSER + " ";
|
||||
}
|
||||
//
|
||||
String execute = cmd + url;
|
||||
try
|
||||
{
|
||||
Runtime.getRuntime().exec(execute);
|
||||
return;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
if (Env.isWindows())
|
||||
s_log.severe(execute + " - " + e);
|
||||
}
|
||||
|
||||
//try firefox
|
||||
if (!Env.isWindows() && !("firefox".equals(UNIX_BROWSER)))
|
||||
{
|
||||
UNIX_BROWSER = "firefox";
|
||||
cmd = UNIX_BROWSER + " ";
|
||||
execute = cmd + url;
|
||||
try
|
||||
{
|
||||
Runtime.getRuntime().exec(execute);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
s_log.severe(execute + " - " + e);
|
||||
}
|
||||
}
|
||||
/* JAVA6 *
|
||||
try {
|
||||
java.net.URI uri = new java.net.URI(url);
|
||||
java.awt.Desktop.getDesktop().browse(uri);
|
||||
|
@ -86,7 +42,6 @@ public class DefaultContextProvider implements ContextProvider {
|
|||
catch (Exception e) {
|
||||
s_log.warning(e.getLocalizedMessage());
|
||||
}
|
||||
/**/
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -228,7 +228,7 @@ public class CityAutoCompleter extends AutoCompleter
|
|||
|
||||
public void mouseClicked(MouseEvent e)
|
||||
{
|
||||
if(e == null || listBox.getSelectedValue().equals(ITEM_More))
|
||||
if (e == null || listBox == null || listBox.getSelectedValue() == null || listBox.getSelectedValue().equals(ITEM_More))
|
||||
{
|
||||
setCity(null);
|
||||
return;
|
||||
|
|
|
@ -79,7 +79,7 @@ public class VLocationDialog extends CDialog
|
|||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 6952838437136830975L;
|
||||
private static final long serialVersionUID = -5915071456635949972L;
|
||||
|
||||
/** Lookup result header */
|
||||
private Object[] header = null;
|
||||
|
@ -194,16 +194,10 @@ public class VLocationDialog extends CDialog
|
|||
private boolean inCountryAction;
|
||||
private boolean inOKAction;
|
||||
|
||||
//BEGIN fernandinho/ricardo - http://jira.idempiere.com/browse/IDEMPIERE-147
|
||||
public static String GOOGLE_MAPS_URL_PREFIX = "http://local.google.com/maps?q=";
|
||||
public static String GOOGLE_MAPS_ROUTE_PREFIX = "http://maps.google.com/maps?f=d&geocode=";
|
||||
public static String GOOGLE_SOURCE_ADDRESS = "&saddr=";
|
||||
public static String GOOGLE_DESTINATION_ADDRESS = "&daddr=";
|
||||
|
||||
/** The "route" key */
|
||||
private static final String TO_ROUTE = "Route";
|
||||
private static final String TO_ROUTE = Msg.getMsg(Env.getCtx(), "Route");
|
||||
/** The "to link" key */
|
||||
private static final String TO_LINK = "Map";
|
||||
private static final String TO_LINK = Msg.getMsg(Env.getCtx(), "Map");
|
||||
|
||||
private JButton toLink = new JButton();
|
||||
private JButton toRoute = new JButton();
|
||||
|
@ -230,11 +224,15 @@ public class VLocationDialog extends CDialog
|
|||
toLink.addActionListener(this);
|
||||
toLink.setMargin(ConfirmPanel.s_insets);
|
||||
confirmPanel.addComponent(toLink);
|
||||
if (MLocation.LOCATION_MAPS_URL_PREFIX == null)
|
||||
toLink.setVisible(false);
|
||||
|
||||
toRoute.setText(TO_ROUTE);
|
||||
toRoute.addActionListener(this);
|
||||
toRoute.setMargin(ConfirmPanel.s_insets);
|
||||
confirmPanel.addComponent(toRoute);
|
||||
if (MLocation.LOCATION_MAPS_ROUTE_PREFIX == null)
|
||||
toRoute.setVisible(false);
|
||||
//END
|
||||
|
||||
//
|
||||
|
@ -485,7 +483,7 @@ public class VLocationDialog extends CDialog
|
|||
//BEGIN fernandinho/ricardo
|
||||
else if (e.getSource() == toLink)
|
||||
{
|
||||
String urlString = GOOGLE_MAPS_URL_PREFIX + getGoogleMapsLocation(m_location);
|
||||
String urlString = MLocation.LOCATION_MAPS_URL_PREFIX + getGoogleMapsLocation(m_location);
|
||||
String message = null;
|
||||
|
||||
try
|
||||
|
@ -506,9 +504,9 @@ public class VLocationDialog extends CDialog
|
|||
MOrgInfo orgInfo = MOrgInfo.get(Env.getCtx(), AD_Org_ID,null);
|
||||
MLocation orgLocation = new MLocation(Env.getCtx(),orgInfo.getC_Location_ID(),null);
|
||||
|
||||
String urlString = GOOGLE_MAPS_ROUTE_PREFIX +
|
||||
GOOGLE_SOURCE_ADDRESS + getGoogleMapsLocation(orgLocation) + //org
|
||||
GOOGLE_DESTINATION_ADDRESS + getGoogleMapsLocation(m_location); //partner
|
||||
String urlString = MLocation.LOCATION_MAPS_ROUTE_PREFIX +
|
||||
MLocation.LOCATION_MAPS_SOURCE_ADDRESS + getGoogleMapsLocation(orgLocation) + //org
|
||||
MLocation.LOCATION_MAPS_DESTINATION_ADDRESS + getGoogleMapsLocation(m_location); //partner
|
||||
String message = null;
|
||||
try
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue