2010-10-06 5 views
7

Vorrei creare una funzionalità (per me stesso), in cui facendo clic su un pulsante (o dendo fuoco a qualsiasi evento o qualsiasi cosa possa attivare il mio programma), verrà visualizzato un popup che chiederà il nome della classe, lo obbligherà avere e qualche altra cosa. Quindi, premendo OK, creerà un file java con scheletro di metodi predefiniti, erediterà l'interfaccia conosciuta e ...Come creare un "wizard di classe nuovo" personalizzato per Eclipse?

Quindi, in pratica come farlo? Devo creare un plugin per Eclipse o c'è qualcos'altro in Eclipse.

PS Si prega di cambiare il titolo. Non riesco a pensare a uno migliore.

+0

Il normale wizard della nuova classe può assumere il nome di classe, superclasse e interfacce (e genera stub di metodi per i metodi che richiedono l'implementazione). Per quanto riguarda i campi, non vedo come sarà diverso dal solo scriverli nella fonte; devi ancora dare il modificatore di accesso, il tipo e il nome per ognuno di essi. E per i metodi devi ancora dare il tipo di ritorno, il nome e ogni parametro (tipo + nome). Per quanto riguarda i getter/setter, puoi generarli successivamente con l'opzione Genera getters e setters. Quindi scrivi ancora la stessa quantità di testo, solo che ora è nella procedura guidata –

risposta

2

Più o meno vuoi aggiungere la tua wizzard alla finestra di dialogo 'nuova classe' ... giusto?

Questo è stato il primo sito che ho trovato durante la digitazione "Creazione di una nuova eclissi Wizzard" in Google: http://www.eclipse.org/articles/article.php?file=Article-JFaceWizards/index.html

+1

Non penso che questa sia una risposta corretta.OP vuole avere una nuova creazione guidata per la creazione di una nuova (probabilmente specifica) classe. Quindi la soluzione dovrebbe almeno estendere la procedura guidata nuova classe disponibile. – nanda

+1

@nanda Sono d'accordo. Questo collegamento serve solo a creare una procedura guidata (prima parte della domanda), non a creare un file sorgente Java (seconda parte della domanda). – Barthelemy

+0

sembra promettente –

0

io possa essere mis-comprensione della questione, ma suona come si sta ri-attuazione del nuovo Class Wizard che esiste già.

Consente di denominare la classe, il pacchetto contenente. Può assegnare una superclasse e/o un'interfaccia e può anche scegliere se includere i controli per la superclasse.

Un nuovo file .java viene creato con tutti i metodi noti dalle interfacce dichiarate e anche tutti i metodi astratti dalla superclasse.

Edt: il titolo è stato modificato mentre stavo scrivendo questa risposta a "Come creare un cliente" nuovo wizard di classe, per Eclipse ". Rende la mia risposta leggermente ridondante ma non vedo alcuna nuova funzionalità aggiunta nella domanda.

6

Come altri hanno detto, si desidera creare un wizard, quindi si desidera aumentare la procedura guidata New Class, che sta facendo qualcosa di simile a quello che si desidera (ma la procedura guidata predefinita non consente di aggiungere campi e personalizzati metodi).

Per creare una procedura guidata, è possibile utilizzare il modello di estensione "Creazione guidata file": creare un plug-in, quindi accedere alla scheda delle estensioni, selezionare Aggiungi ... e selezionare la scheda "Procedure guidate estensione". Ciò ti consentirà di iniziare con i maghi di Eclipse.

Una volta apprese le nozioni di base sulla creazione di procedure guidate e pagine, includere quindi org.eclipse.jdt.ui e org.eclipse.jdt.core nelle dipendenze del plug-in. Aprire il seguente tipo (Ctrl-Shift-T): "NewClassWizardPage". Questa è la pagina che viene visualizzata quando si seleziona Nuovo> Class in Package Explorer.

Probabilmente puoi copiare questa pagina e le pagine padre per aiutarti a iniziare o semplicemente estenderla (nella mia esperienza, procedure guidate interne di Eclipse come questa sono difficili da estendere perché hanno molti campi e metodi che sono pacchetto/privato, quindi di solito finisco per copiare il codice come punto di partenza ... non dimenticare di mantenere la licenza!).

+1

Sai come avrei potuto estendere un wizard esistente? Per esempio. Voglio aggiungere una pagina alla procedura guidata che viene utilizzata per la creazione di progetti C/C++. – displayname