ADempiereは、FireFoxやChromeには対応しており問題なく動作するが
IEとなると少し問題がある。
グリッド表示やテキストボックスの表示がおかしくなったり、画面が真っ白になってしまうことがある。
ただし、これは、コミュニティ版のADempiereの場合で、SMBアソシエイツ社では、IEでも問題なく正常動作するように修正を加えている。
ADempiereをIEで正常動作させるためには、以下の対応が必要となる。
■Compatible対応のヘッダー出力をしない
WebUIプロジェクトのindex.zulで、IE8へのCompatible対応タグが記述されているので、これを削除する。
具体的には、index.zulの7行目あたりの以下の部分を削除する。
<?meta http-equiv="X-UA-Compatible" content="IE=8" ?>
■拡大、縮小時のエラー対応
上記の対応をすれば、IEでもほぼほぼ正常動作が可能になるが
Ctrl+マウスホイールを使った拡大縮小時にエラーが発生してしまう。
これに対応するには、以下のソースの修正が必要である。
zk.jarの中にある「MouseCommand.java」に以下の修正をおこなう。
processメソッドの中で、NumberForamtExceptionが発生しないように対処をおこなっている。
// SMBA_CHG IE対応(NumberFormatExceptionの回避)
MouseEvent event = null;
if( data == null || data.length == 0 )
{
event = new MouseEvent(getId(), comp); //no area, no coord
}
else if( data.length == 1 )
{
event = new MouseEvent(getId(), comp, data[0]); //by area
}
else
{
BigDecimal bdVal1 = new BigDecimal(data[0]);
BigDecimal bdVal2 = new BigDecimal(data[1]);
event = new MouseEvent(getId(), comp, //by coord
bdVal1.intValue(), bdVal2.intValue(),
data.length < 3 ? 0: Commands.parseKeys(data[2]));
}
// final MouseEvent event =
// data == null || data.length == 0 ?
// new MouseEvent(getId(), comp): //no area, no coord
// data.length == 1 ?
// new MouseEvent(getId(), comp, data[0]): //by area
// new MouseEvent(getId(), comp, //by coord
// Integer.parseInt(data[0]), Integer.parseInt(data[1]),
// data.length < 3 ? 0: Commands.parseKeys(data[2]));
// CHG_END
ちなみに、zk.jarは、通常はjarとして参照していることが多いが、ZK関連のjarもEclipseプロジェクト化しておくと、デバッグができるので便利である。
■メッセージの非表示
最後に、ログインページで表示されるメッセージを非表示にする。
IEでログインページにアクセスすると、「一部機能が正常に動作しない可能性がある」という旨のメッセージが表示されてしまう。
これを表示しないようにしておくには、webuiプロジェクトのWLogin.javaを修正する。
81行目あたりでメッセージを表示している部分を削除しておく。
/*
if (!AEnv.isBrowserSupported())
{
// String msg = "You might experience slow performance and user interface anomalies using your current browser to access the application. We recommend the use of Firefox, Google Chrome or Apple Safari.";
String msg = "You might experience slow performance and user interface anomalies using your current browser to access the application. We recommend the use of Firefox, Google Chrome or Apple Safari."
+ "<BR>現在のブラウザはADempiereの一部機能が正常に動作しない可能性があります。ADempiereのすべての機能を使用するにはFirefoxやGoogle ChromeまたはSafariなどのブラウザをお勧めします。";
browserWarningWindow = new Window();
Div div = new Div();
div.setStyle("background-color:#FFFFCC; font-size: " + (AEnv.getFontSize() - 1) + "pt");
div.appendChild(new Text(msg));
browserWarningWindow.appendChild(div);
browserWarningWindow.setPosition("top,right");
browserWarningWindow.setWidth("550px");
browserWarningWindow.setPage(page);
browserWarningWindow.doOverlapped();
}
*/
これらの対応をしておけば、ADempiereにInternet Explorerでアクセスしても、正常に動作させることが可能である。