Ventanas ocultasHola, tengo un problema con las ventanas JMP que se abren detrás de otras aplicaciones (que no son JMP) cuando estoy ejecutando un complemento mío. La siguiente secuencia de pasos demuestra el problema tal como ocurre en mi computadora portátil:
- Abro JMP y también abro un conjunto de datos JMP.
- Ahora abro alguna otra aplicación (por ejemplo, PowerPoint) y la maximizo (para que ni la ventana de inicio de JMP ni la ventana que contiene el conjunto de datos sean visibles de inmediato).
- Hago algo en PowerPoint (por ejemplo, edito una diapositiva o lo que sea) pero luego quiero volver a mi análisis en JMP. Entonces, dejando PowerPoint abierto y maximizado, coloco el mouse sobre el ícono JMP en la parte inferior de la pantalla y selecciono la ventana que contiene el conjunto de datos que quiero analizar. Esta ventana ahora se encuentra en la parte superior de PowerPoint (aunque la ventana de inicio de JMP todavía está oculta detrás PowerPoint).
- Ahora quiero ejecutar mi complemento, así que lo selecciono del menú en la parte superior de la ventana del conjunto de datos. Lo primero que hace mi complemento es presentar una ventana de diálogo modal, invitándome a seleccionar las columnas de mi tabla de datos que quiero analizar, después de lo cual simplemente hago clic en el botón "Aceptar" para continuar. Cuando llamo al complemento, aparece la ventana de diálogo modal ... pero tanto ella como la ventana que contiene el conjunto de datos desaparecen inmediatamente detrás de PowerPoint (dando la impresión al usuario de que la aplicación acaba de fallar).
Observo que si en lugar de abrir el complemento desde la ventana del conjunto de datos, traigo la ventana de inicio de JMP al frente primero , y luego ejecute el complemento desde cualquier ventana, el problema no ocurre (o para ser estrictamente precisos, la ventana de datos aún desaparece detrás de PowerPoint, pero la ventana de diálogo modal permanece en la parte superior, y los resultados del análisis aparecen posteriormente en la parte superior también).
Estoy pensando que la solucion podría ser insertar un script de inicio de una línea en el complemento que hace que la ventana de inicio de JMP sea la ventana actual (es decir, moverla frente a cualquier otra aplicación que esté abierta) antes de comenzar el análisis, pero observo que la función Obtener lista de ventanas no incluye la ventana de inicio de JMP dentro de la lista, por lo que no puedo hacer referencia a ella de esa manera.
¿Alguien puede sugerir cómo puedo resolver esto? (Por supuesto, podría decirles a todos los usuarios que no usen el complemento de la forma descrita anteriormente, pero preferiría evitar que el problema ocurra a través de secuencias de comandos, si es posible).
Muchas gracias.
Tabla de datosScriptingRe: ventanas ocultasNo pude replicar esto en JMP 15.2.1 en Windows.Así es como llamo a la mayoría de las ventanas dentro de los menús para complementos, ¿tal vez hay algo diferente de lo que está usando?
Dentro de addin.jmpcust:
<jm:command>
<jm:name>ABOUT</jm:name>
<jm:caption>About</jm:caption>
<jm:action type="path">$ADDIN_HOME(com.domain.subdomain)\addinAbout.jsl</jm:action>
<jm:icon type="none"></jm:icon>
</jm:command>
y en algún lugar dentro del archivo addinAbout.jsl hay una función New Window ().
Re: ventanas ocultasHola IH,
Solo para confirmar, estoy ejecutando esto en MS Windows (no sé si el mismo problema es evidente en una Mac) y, en caso de que la versión sea relevante, estoy ejecutando JMP 15.0.2, por lo que el mío es anterior a su JMP 15.2.1 - pero tengo acceso a JMP 16EA versión 8, y también veo el mismo comportamiento allí.
En pocas palabras, si la ventana de inicio de JMP está oculta detrás de cualquier aplicación de Windows que no sea de JMP completamente maximizada (solo la llamaré "X", ya que no parece importar qué aplicación es) cuando se agregue -in se ejecuta, entonces cualquier ventana de salida generada por el complemento también se oculta detrás de X. De lo anterior infiero que si pudiera encontrar una manera de traer la ventana de inicio de JMP inmediatamente a un primer plano cada vez que se ejecuta el complemento, el problema se resolvería.
Intenté comparar la estructura del addin.jmpcust que publicaste con el generado por el Add-In Builder que utilicé, pero el mío es considerablemente más largo y no sé exactamente lo que estoy buscando, así que Sospecho que tendré que crear una versión del complemento que se ha recortado hasta la médula y luego pedir ayuda nuevamente, adjuntando una copia del script JSL, cuando lo haya hecho.
Soy muy consciente de que algo como esto es casi imposible de diagnosticar si no se puede replicar, así que informaré cuando tenga algo más concreto para continuar.
Muchas gracias por su ayuda.
Re: ventanas ocultasAhora resolví el problema de las ventanas ocultas, así que marcaré este problema como resuelto cuando publique esto.
Solo para que conste, el problema se debió a que la tabla de datos se había minimizado (que era algo que había hecho únicamente con fines estéticos) antes de que se invocara el cuadro de diálogo de selección de columna. Si alguien se encuentra con un problema similar en el futuro, la siguiente secuencia de comandos breve puede ayudar a identificar la causa. Esto debería compilarse en un complemento y luego llamarse desde el menú principal sobre la tabla de datos ( no desde la ventana de inicio de JMP) una vez que se haya abierto la tabla de datos desde la barra de tareas de Windows.
Names Default to Here(1);
fnSelectColumn = function({dt}, {default local},
new window("Column Selection", << modal(1),
clb = ColListBox(dt, all, Output = (clb << get selected), << set max selected(1))
);
Output
);
expr_Load_DT = expr(
dt = current data table();
if(type(dt)=="Empty",
dt = open(PickFile( "Select the JMP data set to be analyzed:",, {"JMP Data Files|JMP"} ));
)
);
/*
================
START OF PROGRAM
================
*/
Intro = "There's another full-screen Windows application open right now, and you've just loaded the data table you can see ";
Intro = Intro || "behind this window from the Windows Taskbar, prior to selecting a column for analysis.\!r\!rHowever, the ";
Intro = Intro || "modal window containing the column selection dialog will disappear behind the other Windows application if the ";
Intro = Intro || "data table is minimized prior to the column selection dialog being displayed. (If it hasn't, there's no problem.)";
MinimizeYN = 1;
new window("Minimize the Data Table?", << modal(1),
VListBox(
HCenterBox(BorderBox(TextBox(Intro, << padding(5)), << padding(10), << sides(15))),
SpacerBox(size(0, 10)),
rb = RadioBox({"Minimize the data table after closing this window", "Don't minimize the data table after closing this window"},
MinimizeYN = (2 - (rb << get))
)
)
);
expr_Load_DT;
dt << minimize window(MinimizeYN); // THIS line is the one that causes the problem;
Output = fnSelectColumn(dt);
Caption("(You selected \!"" || Output[1] || "\!")"); wait(1.5); caption(remove);
/*
================
END OF PROGRAM
================
*/