Ciao a tutti,
sto realizzando un plugin per un tool IBM chiamato Rational Rhapsody. La conoscenza del tool non credo sia importante ai fini della discussione ma comunque lo faccio presente per completezza.
In sostanza ho creato il codice Java su Eclipse e compilato il tutto realizzando un Jar da importare in Rhapsody.

Durante l'esecuzione del plugin, c'è la possibilità che quest'ultimo richieda l'interazione dell'utente che lo esegue: ad esempio, il plugin sta creando un elemento del modello, ma non sa in che pacchetto metterlo, quindi deve chiederlo all'utente. Per fare ciò, ho realizzato una classe che estende un JDialog e ho richiamato al suo interno il metodo setModal(true); questo, come saprete, fa in modo che il thread che si occupa della creazione del dialog interrompa la sua esecuzione fintanto che l'utente non inserisca una risposta.
Su Eclipse il tutto funziona alla perfezione, ma quando il jar è in esecuzione su Rhapsody non fa proprio quello che mi aspetto, perché oltre a bloccare l'esecuzione del plugin, mettendolo in attesa di una risposta, blocca anche il programma Rhapsody, non permettendo la navigabilità del modello UML. Mi spiego meglio: affinché l'utente sappia dove inserire un elemento, deve avere la possibilità di navigare il modello UML e analizzarlo, quindi vorrei che la dialog da me realizzata bloccasse solo l'esecuzione del plugin, ma non anche il modello stesso.

Non ho scritto neanche una riga di codice perché la domanda è più che altro teorica: come posso fare per far viaggiare un plugin esterno a un tool su un thread, permettendo comunque l'utilizzo del tool mentre il plugin è in esecuzione?
Spero di essere stato sufficientemente chiaro, perché l'esposizione del problema non è semplice.
Grazie mille per eventuali aiuti,
Giordano