Yleisten oletusasetusten avulla käyttäjät voivat määrittää, tuleeko näkymien avata objektinsa kerta- vai kaksoisnapsautuksella.
Miksi huomautus, ettei tämä oletusasetus toimi kaikissa näkymissä? Siksi, että lisäosien toimittamien näkymien on nimenomaisesti tuettava tätä oletusasetusta toteutuksessaan.
Muista, että näkymän voi toteuttaa luomalla SWT-ohjausobjekteja ja kirjoittamalla tavallista SWT-koodia tai käyttämällä JFace-katseluohjelmia alatason tietojen käsittelyyn. Kertanapsautuksen oletuksen säilytyksen voi tehdä molemmilla tasoilla. Useimmat muita objekteja avaavat näkymät esittävät ne rakenteisessa, luettelomaisessa näkymässä. Seuraavassa keskitytään tällaiseen näkymään. Jos näkymä näyttää objektit eri tavalla, kertanapsautuksen tukeen käytetään todennäköisesti SWT-tason käsitteitä.
Jos käytät objektien esitykseen luettelo-orientoitunutta JFace-katseluohjelmaa, kertanapsautuksen tukeminen on yksinkertaista. Käytä näkymän objektien avauksen liipaisuun addOpenListener-metodia addDoubleClickListener-metodin sijaan. Avauksen kuuntelutoiminto toimii nykyisen työympäristön oletusasetuksen mukaan ja liipaisee avaustapahtuman määritetyn hiiritapahtuman yhteydessä.
Haluat ehkä edelleen käyttää addDoubleClickListener-metodia muille kuin avaustoiminnoille, esimerkiksi objektien laajennukselle rakenteessa kaksoisnapsautuksen yhteydessä.
JFace toimittaa apuvälineluokan OpenStrategy kerta- ja kaksoisnapsautuksen käsittelyyn SWT-ohjausobjektien tasolla. OpenStrategy määritetään yleisten oletusasetusten valintaikkunassa niin, että se noudattaa nykyistä työympäristön avauksen oletusasetusta. Itse asiassa JFace-katseluohjelmat käyttävät tätä luokkaa avauksen kuuntelutoiminnon toteutukseen.
On luotava OpenStrategy-metodi ja liitettävä se SWT-ohjausobjektiin. OpenStrategy liittää sopivat tapahtumat ja tulkitsee ne käyttäjän oletusasetusten mukaan. Sinun tehtäväsi on lisätä avauksen kuuntelutoiminto strategiaan, joka toteuttaa avauksen koodin. Tällä tavalla olet suojassa tiedolta siltä tiedolta, mikä widget-tapahtuma laukaisi avaustapahtuman.
OpenStrategy openHandler = new OpenStrategy(control); openHandler.addOpenListener(new IOpenEventListener() { public void handleOpen(SelectionEvent e) { // koodi avoimen tapahtuman käsittelyä varten. ... } }
Myös muut työympäristön oletusasetukset avaukselle (valitse kohoteksti, avaa nuolinäppäimillä) käsitellään OpenStrategy-luokalla. Tämä tarkoittaa sitä, että "oikea asia" tapahtuu, kun käytät JFace-katseluohjelmia tai OpenStrategy-luokkaa avaustoiminnan toteutukseen.
Avaustapahtuman käsittelyn yhteydessä tulee käyttää OpenStrategy.activateOnOpen()-metodia määrittämään, tuleeko avattu muokkausohjelma aktivoida oletuksena. Muokkausohjelman aktivointi siirtää tarkennuksen näkymästä muokkausohjelmaan, mikä voi olla erityisen hämmentävää ja epätoivottua kertanapsautustilassa.