MLメール表示切替 トピック表示 メール表示
MLトメール一覧

ダイアログがアクティブにならない

投稿者:kiyotoさん
MLNo.29投稿日時:2005/12/11 21:03
文字を小さく文字を中くらいに文字を大きく
kiyotoです。

ファイル保存先指定のダイアログをappletで表示させています。

ダイアログは表示されるのですがアクティブにならず、
保存先の指定等の操作が出来無い時があります。

alt+Tabキーを操作するとアクティブにったり、
何もしなくともアクティブで表示されることもあります。

お手数ですが、ご教示をお願いします。


【java】

import java.applet.Applet;
import java.awt.FileDialog;
import java.awt.Frame;
/**
* <pre>
* ファイルダイアログ出力 アプレット
* </pre>
*/
public class FileDialogApplet extends Applet {
/**
* <pre>
* アプレット初期化
* </pre>
*/
public void init() {
System.out.println("FileDialogApplet初期化");
}
/**
* <pre>
* ダイアログ表示。
* </pre>
* @… strFileName ファイル名
* @… strFileFullPath フルパス
*/
public String showDlg(String strFileName) {
String strFileFullPath = "";
// ディレクトリ選択ダイアログ生成。
FileDialog fd = new FileDialog(new Frame(),"保存先を指定してくだ
さい。",FileDialog.SAVE);
fd.setFile(strFileName);
// ダイアログ出力。
fd.toFront();
fd.setVisible(true);
// フルパス取得。
// strFileFullPath = fd.getDirectory() + fd.getFile();
strFileFullPath = fd.getDirectory();
return strFileFullPath;
}
}


【jsp】

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
//メニュー作成
StringBuffer strHDMenuHtml = new StringBuffer();
strHDMenuHtml.append("<DIV style='top :80px;left :450px;
position : absolute; z-index : 1;'id='Layer2'>");
strHDMenuHtml.append(" <INPUT type='button'
class='button12' value='ファイルダウロード(編集モード)' onClick=
hensyuuBtn_click() >");
strHDMenuHtml.append("</DIV>");
strHDMenuHtml.append("<DIV style='top :130px;left :450px;
position : absolute; z-index : 1;'id='Layer3'>");
strHDMenuHtml.append(" <INPUT type='button'
class='button12' value='ファイルダウロード(参照モード)' onClick=
sansyouBtn_click() >");
strHDMenuHtml.append("</DIV>");
strHDMenuHtml.append("<DIV style='top :180px;left :450px;
position : absolute; z-index : 1;'id='Layer4'>");
strHDMenuHtml.append(" <INPUT type='button'
class='button12' value='   ファイルアップロード   ' onClick=
uploadBtn_click() >");
strHDMenuHtml.append("</DIV>");
%>
<SCRIPT language="JAVAScript">
<!--
//----------------------------------------------------------------------
---------------------
// 処理中ダイアログが正常にクローズした場合に呼び出される
//----------------------------------------------------------------------
---------------------
function CLOSE_clicked(strUrl) {
var oForm = document.wait_message;
BtnDisabled();
oForm.all("DIV_OVERLAP").style.visibility="visible";
if ( strUrl == "dialog" ) {
oForm.NEXTPAGE.value = "CGS002";
oForm.action = "./xxxxx.xxxxx.CGSMenuServlet2";
} else {
oForm.NEXTPAGE.value = "CGS001";
oForm.action = "./xxxxx.xxxxx.CGSMenuServlet";
}
oForm.target = "frame_data";
oForm.method = "POST";
oForm.submit();
}
//----------------------------------------------------------------------
---------------------
// 処理中ダイアログが正常にクローズしなかった場合の処理
//----------------------------------------------------------------------
---------------------
function ERROR_clicked(strUrl){
oForm = document.wait_message;
BtnDisabled();
oForm.all("DIV_OVERLAP").style.visibility="visible";
oForm.NEXTPAGE.value = "CGS001";
oForm.target = "frame_data";
oForm.method = "POST";
oForm.action = "./xxxxx.xxxxx.CGSMenuServlet";
oForm.submit();
}
/* メニュー画面内のHTMLを設定 */
var strHDMenu = "<%= strHDMenuHtml.toString() %>"
/* トップ画面の戻り先とターゲットを設定 */
var strBackTarget ="_top";
var strBackURL = "<%=config.getServletContext
().getInitParameter("comTopUrl")%>";
var strHelpURL = "null";
var x;
//----------------------------------------------------------------------
---------------------
// タイトルボタンエリア設定
//----------------------------------------------------------------------
---------------------
function setTitleBtn(){
var flg = "<%= strCS001Flg %>";
var SitenName = "<%= strCS001SitenName %>";
var strButtonArea = "<TABLE class= 'additionbtnFrame' ><TR>";
strButtonArea += "<TD align='right'><INPUT class='button12'
type='button' value='キャンセル'"
+ " onClick='BtnAreaDisableFlg
();parent.frame_data.cancelBtn_click()'><TD>";
strButtonArea += "</TR></TABLE>";
strTitleBtnArea += "<INPUT class='titleButton' type='button'
value='ヘルプ'"
+ " onClick='parent.frame_data.TitleHelpBtn_click
()'>";
/* ブラウザ及び画面タイトルを設定 */
m_showTitle("処理","S001","XXXX",strTitleBtnArea );
/* ボタンを設定 */
m_showBtn(strButtonArea);
parent.frame_data.document.all("DIV_OVERLAP").innerHTML =
strHDMenu;
}
//----------------------------------------------------------------------
---------------------
// ファイルダウロード(編集モード) クリック
//----------------------------------------------------------------------
---------------------
function hensyuuBtn_click(){
var oForm = document.wait_message;
BtnDisabled();
oForm.all("DIV_OVERLAP").style.visibility="visible";
oForm.CS001Syori_Kbn.value = "DNLOAD";
oForm.CS001SyousaiSyori_Kbn.value = "HENSYU";
oForm.CS001Flg.value = "1";
oForm.NEXTPAGE.value = "CGS001";
oForm.target = "frame_work";
oForm.method = "POST";
oForm.action = "./xxxxx.xxxxx.MsgRefServlet";
oForm.FLAGCheck.value = "check_he";
oForm.submit();
}
//----------------------------------------------------------------------
---------------------
// ファイルダウロード(参照モード) クリック
//----------------------------------------------------------------------
---------------------
function sansyouBtn_click(){
var oForm = document.wait_message;
BtnDisabled();
oForm.all("DIV_OVERLAP").style.visibility="visible";
oForm.CS001Syori_Kbn.value = "DNLOAD";
oForm.CS001SyousaiSyori_Kbn.value = "SANSYO";
oForm.CS001Flg.value = "1";
oForm.NEXTPAGE.value = "CGS001";
oForm.target = "frame_work";
oForm.method = "POST";
oForm.action = "./xxxxx.xxxxx.MsgRefServlet";
oForm.FLAGCheck.value = "check_sa";
oForm.submit();
}

//----------------------------------------------------------------------
---------------------
// ファイルアップロード クリック
//----------------------------------------------------------------------
---------------------
function uploadBtn_click(){
var oForm = document.wait_message;
BtnDisabled();
oForm.all("DIV_OVERLAP").style.visibility="visible";
oForm.CS001Syori_Kbn.value = "UPLOAD";
oForm.CS001SyousaiSyori_Kbn.value = "";
oForm.CS001Flg.value = "1";
oForm.NEXTPAGE.value = "CGS001";
oForm.target = "frame_work";
oForm.method = "POST";
oForm.action = "./xxxxx.xxxxx.MsgRefServlet";
oForm.FLAGCheck.value = "check_up";
oForm.submit();
}
//----------------------------------------------------------------------
---------------------
// ファイルダウロード(参照モード) クリック
//----------------------------------------------------------------------
---------------------
function reLoad(){
var oForm = document.wait_message;
BtnDisabled();
oForm.all("DIV_OVERLAP").style.visibility="visible";
oForm.CS001Syori_Kbn.value = "RELOAD";
oForm.CS001SyousaiSyori_Kbn.value = "";
oForm.CS001Flg.value = "1";
oForm.NEXTPAGE.value = "CGS001";
oForm.target = "frame_work";
oForm.method = "POST";
oForm.action = "./xxxxx.xxxxx.MsgRefServlet";
oForm.submit();
}
//----------------------------------------------------------------------
-----------------
// JSJ表示時にロードされ、フラグにより処理を決定
//----------------------------------------------------------------------
-----------------
function chkResult() {
var cn = <%= strCheckFlag %>;
var oForm = document.wait_message;

oForm.FLAGFileName.value = "<%= strFileName %>";

if (cn == 1) {
// 処理を許可された場合
// ディレクトリ選択ダイアログ出力。
x = window.document.FileDialogApplet.showDlg("<%=
strFileName %>");

if (x == "nullnull") {
// ダイアログでキャンセルが押された場合。
// ShowMsg("NCI0002");
return;
} else {
var pos = x.lastIndexOf("\");
if ( x.substring(pos+1,x.length) != "<%=
strFileName %>" ) {
// DBに登録されていファイル名とディ
レクトリで選択(入力)されたファイル名が異なる場合。
ShowMsg("NCE0003");
return;
}
}

alert( "保存先:" + x + "n保存ファイル:<%=
strFileName %>nダウロード開始します。" );

//電子ファイルダウロード処理--------------------------------------------
-------------------------------
var vReturn =
window.document.FilingDownloadApplet.downloadfilesTitle( x, "<%
=strTitleID%>" );

//----------------------------------------------------------------------
---------------------------------

if ( vReturn == "0" ) {
//alert("ダウロード成功(仮)");
//DB更新
BtnDisabled();
oForm.all
("DIV_OVERLAP").style.visibility="visible";
oForm.CS001Syori_Kbn.value = "<%=
strSucSyori %>";
oForm.CS001SyousaiSyori_Kbn.value = "<%=
strSucSyousai %>";
oForm.NEXTPAGE.value = "CGS001";
oForm.target = "frame_work";
oForm.method = "POST";
oForm.action
= "./xxxxx.xxxxx.MsgRefServlet";
oForm.FLAGCheck.value = "checked";
oForm.submit();
return;
} else {
// ダウロードに失敗した場合。
ShowMsg("NCE0002");
return;
}

} else if (cn == 2) {
// 処理を許可されなかった場合
ShowMsg("NCE0006");
// } else if (cn == 3) {
// // 対象ファイルがすでに編集中の場合
// ShowMsg("NCE001");
} else if (cn == 4) {
// 参照モードダウロード実行
// ディレクトリ選択ダイアログ出力。
x = window.document.FileDialogApplet.showDlg("<%=
strFileName %>");

if (x == "nullnull") {
// ダイアログでキャンセルが押された場合。
// ShowMsg("NCI0002");
return;
} else {
var pos = x.lastIndexOf("\");
if ( x.substring(pos+1,x.length) != "<%=
strFileName %>" ) {
// DBに登録されていファイル名とディ
レクトリで選択(入力)されたファイル名が異なる場合。
ShowMsg("NCE0003");
return;
}
}

alert( "保存先:" + x + "n保存ファイル:<%=
strTitleID %>nダウロード開始します。" );
//電子ファイルダウロード処理--------------------------------------------
---------------------------------------
var vReturn =
window.document.FilingDownloadApplet.downloadFilesTitle( x, "<%
=strTitleID%>" );

//----------------------------------------------------------------------
-----------------------------------------
if ( vReturn == "0" ) {
//alert("ダウロード成功(仮)");
} else {
// ダウロードに失敗した場合。
ShowMsg("NCE0002");
}
} else if (cn == 5) {
// アップロードダイアログ。
var loop = 0;
var fullpath = "";
while(loop == 0) {
fullpath = showModalDialog(
"../xxxxx/jsp/xxxxx/CZ001.jsp",
window,

"dialogWidth:400px;dialogHeight:250px;help:No;status:No;"
);

if (fullpath == null) {
// ShowMsg("NCI0002");
return;
}

//ファイル名を取得
var registFileName = "";
var tab = fullpath.substring(2,3);

for (var v=(fullpath.length-1); v >= 0; v--
) {
registFileName = fullpath.substring
(v,fullpath.length);
var ck = registFileName.substring
(0,1);
if ( ck == tab ) {
registFileName =
fullpath.substring((v+1),fullpath.length);
break;
}
}
// alert("regist file name = " +
registFileName);
// alert("last file name = " +
oForm.FLAGFileName.value);
oForm.UploadFileName.value = registFileName;

//更新登録の時、ファイル名が変わっていたら警告
ダイアログ表示
if (oForm.FLAGFileName.value != "" &&
registFileName != oForm.FLAGFileName.value) {
if (ShowMsg("NCQ0003")) {
loop = 1;
} else {
//もう一度ファイルアップロードダイア
グへ
}
} else {
loop = 1;
}

//アップロードが初回か判断
if (oForm.FLAGFileName.value != "") {
oForm.UploadCount.value = "2";
} else {
oForm.UploadCount.value = "1";
}

}
//アップロードが2回目以降の場合は前回分を削除
oForm.CS001Syori_Kbn.value = "<%= strSucSyori %>";
oForm.CS001SyousaiSyori_Kbn.value = "<%=
strSucSyousai %>";
oForm.target = "frame_work";
oForm.NEXTPAGE.value = "CGS001";
oForm.method = "POST";
oForm.action = "./xxxxx.xxxxx.MsgRefServlet";
oForm.FLAGCheck.value = "upload_del";
oForm.TitleID.value = "<%= strTitleID %>";
oForm.IPaddress.value = "<%= IPAddress %>";
oForm.FullPath.value = fullpath;

//oForm.CS001Flg.value = "1";

oForm.submit();
} else if ( cn == 6 ) {
// 編集モード解除実行後。メッセージ表示。
ShowMsg("NCI0001");
} else if (cn == 7) {
// alert("電子ファイルUL & DB更新実行");
fullpath = "<%= strFullPath %>";

//電子ファイルアップロード実行--------------------------------------------
----------------------------------------------


var add1 = "XX" + oForm.hiddentxt_KIKAN_ID.value;
var ULresult =
window.document.FilingInsertApplet.insertFiles( "<FOLDERNAME1><%
=strFolderNames[0]%></FOLDERNAME1><FOLDERNAME2><%=strFolderNames[1]%
add1, null, "<DM_KANRISITEN_ID><%=strCS001SitenID%
//履歴

var rirekiNo = <%= strRirekiNo %> + 1;
if (rirekiNo == 6) {
rirekiNo = 1;
}

var add2 = "XX" + rirekiNo +
oForm.hiddentxt_KIKAN_ID.value;
var ULresultR =
window.document.FilingInsertApplet.insertFiles( "<FOLDERNAME1><%
=strFolderNamesR[0]%></FOLDERNAME1><FOLDERNAME2><%=strFolderNamesR[1]%
add2, null, "<DM_KANRISITEN_ID><%=strCS001SitenID%
//----------------------------------------------------------------------
------------------------------------------------

if (ULresult == 0 && ULresultR == 0) {
//alert("電子ファイルアップロード成功(仮)");
//DB更新
BtnDisabled();
oForm.all
("DIV_OVERLAP").style.visibility="visible";
oForm.CS001Syori_Kbn.value = "<%=
strSucSyori %>";
oForm.CS001SyousaiSyori_Kbn.value = "<%=
strSucSyousai %>";
oForm.NEXTPAGE.value = "CGS001";
oForm.target = "frame_work";
oForm.method = "POST";
oForm.action
= "./xxxxx.xxxxx.MsgRefServlet";
oForm.FLAGCheck.value = "checked_up";
oForm.UploadCount.value = "<%= strSQLFlag %
oForm.IPaddress.value = "<%= IPAddress %>";
oForm.RirekiNo.value= rirekiNo;

//oForm.CS001Flg.value = "1";

oForm.submit();
} else {
// アップロードに失敗した場合。
ShowMsg("NCE0001");
}
} else {
// 初期値(何もしない)
}
}
-->
</SCRIPT>
<HTML>
<HEAD>
<TITLE><%= proc.getPageTitle() %></TITLE>
<META http-equiv="Content-type" content="text/html;
charset=MS932">
<LINK rel="stylesheet" type="text/css"
href="../xxxxx/css/xxxxx/_common.css">
<LINK rel="stylesheet" type="text/css"
href="../xxxxx/css/xxxxx/m_hozenfont12.css">
<LINK rel="stylesheet"
href="../xxxxxc/css/xxxxxcco/com_lpmsg.css" type="text/css">
</HEAD>
<BODY class="additionBody12" onLoad="setTitleBtn();m_SessionTimer
(270000,13);chkResult();">
<FORM name="wait_message" method="POST">


<APPLET WIDTH="0", HEIGHT="0"
CODEBASE="http://xxx.xxx.x.xx:7777/xxxxx/xxxxx/applet/xxxxx/"
ARCHIVE="FileDialogApplet.jar"
CODE="xxxxx.xxxxx.FileDialogApplet.class"
NAME="FileDialogApplet">
</APPLET>
</HTML>





MLNo.30
投稿者:kiyotoさん 投稿日時:2005/12/12 16:35 [メール表示する]
kiyotoです。

処理の流れを補足致します。

JSPに「ファイルダウロード」のボタンクリックすると、
サーバー側でDBアクセスをする"./xxxxx.xxxxx.MsgRefServlet";が起動されま
す。
その処理結果をonLoadでchkResultファンクションでAppletを実行しておりま
す。

chkResultをonLoadではなく、</HTML>の後でアラーダイアログ表示させて実
行するようにすると、主画面のボタン等はすべて消えましたが、ダイアログは
常にアクティブになります。

本来であれば、処理を組み替えるべきなのでしょうが、
期間の関係もありなんとか今の構成で対応したいのですが・・・・

今回修正して確認した時、アラート画面でOKボタンクリックしても画面がク
ローズされずにダイアログを押下するとクローズされます。
アラート画面で画面がクローズされれば何とかできそうな気もするのです
が・・・・

以上、よろしくお願いします。




MLメールへの返信はMLコミュのメンバーしかできません。
 読み込み中...
MLメール表示切替 トピック表示 メール表示
MLメール一覧

MLトピック検索:
MLメールの詳細(トピック表示)

メーリングリストでつながる!ひろがる!みんなのHappyコミュニティ!

詳細検索
NOEMBLEM/エンブレムが設定されていません。
Java ソースコードレビューML (103)
 
28 29 30 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
メンバーリストは非公開です。
メンバーの日記/フォト/動画
メンバーの投稿は非公開です。
 読み込み中...