Visual Editor genereert en ontleedt Java-code wanneer u de visuele klasse ontwerpt. Voor de gegenereerde Java-code wordt door Visual Editor een bepaalde stijl gebruikt en voor het ontleden van Java-code gelden bepaalde regels.
De Visual Editor genereert een geldige Java-code die kan worden gecompileerd en uitgevoerd. Bovendien worden door de Visual Editor bij het ontleden van bestaande Java-code regels gebruikt om vast te stellen voor welke elementen van de code moet worden geprobeerd deze zichtbaar te maken in de ontwerpview.
Regels voor ontledingscode voor weergave in de ontwerpview
Door de Visual Editor wordt geprobeerd de code zichtbaar te maken in de ontwerpview als de code voldoet aan
een van de volgende criteria:
Er zijn andere vereisten die door de Visual Editor worden gecontroleerd voordat een component zichtbaar wordt gemaakt in de grafische ontwerpview:
- De velden moeten geconcretiseerd worden binnen een get-methode of de bean moet worden geïnitialiseerd door een initialisatiemethode die in de lijst staat op de tab Patroonstijlen van de voorkeurenpagina Visual Editor.
- Er mag geen compilatiefout op de regel staan.
- Een klasse moet geldig zijn om te kunnen laden en concretiseren.
- De meeste array-initialisatie-expressies kunnen niet worden geëvalueerd.
- De complexe argumenten voor een methode kunnen worden begrepen zolang de entiteiten waaruit het argument bestaat in een model staan. Bijvoorbeeld een expressie met een aaneenschakeling van tekenreeksen waarbij de operand + wordt gebruikt, wordt in de meeste gevallen op de juiste wijze geëvalueerd.
Bij de meeste expressies slaagt het ontleden, maar niet alle expressies kunnen op de juiste wijze worden geëvalueerd. In dat geval wordt een waarschuwingsteken afgebeeld tegenover de Java-bean in de views en wordt de reden van het mislukken afgebeeld in de statusregel als de bean geselecteerd is in de ontwerpview of in de view Java-beans.
Ook wordt een Waarschuwing weergegeven op het canvas:

Door de Visual Editor gegenereerde code
- De Visual Editor genereert standaardconstructors die de methode initialize() aanroepen, waarmee de waarden van de eigenschappen van de klasse worden ingesteld.
- Voor applets geldt dat de code voor het instellen van de oorspronkelijke eigenschappenwaarden init() heet.
Deze wordt niet aangeroepen door de constructor, omdat de code wordt uitgevoerd door de applet-
browser zelf.
- Optioneel: u kunt opgeven dat de Visual Editor try{}catch()-blokken genereert voor componenten. Hiermee wordt elke uitzondering die wordt verworpen tijdens de initialisatie voortdurend onderschept en het risico dat de uitzonderingen worden onderdrukt, wordt groter.
Daarom is het beter om de uitzondering te laten passeren. U kunt deze optie selecteren op de tab Code genereren van de voorkeuren voor de Visual Editor ().
In de volgende code ziet u een JPanel dat is geïnitialiseerd met het blok try{}catch():
private JPanel getJPanel1() {
if (jPanel1 == null) {
try {
jPanel1 = new JPanel();
}
catch (java.lang.Throwable e) {
// ACTIEPUNT: vul hier iets in
}
}
return jPanel1;
}
De volgende code is een JPanel zonder het try{}catch()-codeblok: private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
}
return jPanel;
}
- Optioneel: u kunt ook opgeven dat de Visual Editor een commentaarmerkteken toevoegt voor elke expressie die deze genereert. Dit kan nuttig zijn om onderscheid te kunnen maken tussen een handgeschreven en een gegenereerde code. De volgende coderegel is een voorbeeld van een commentaar:
this.add(getJPanel(), null); // Gegenereerd
Om deze optie in te schakelen, selecteert u het selectievakje Commentaar genereren voor nieuwe expressies op de tab Code genereren van de voorkeuren voor de Visual Editor.
- Voor Swing/AWT geldt dat, hoewel de Visual Editor methoden genereert, bijvoorbeeld getPanel(), die een enkele Java-bean maken en terugzenden, dit geen vereiste is. Een methode kan meer dan één Java-bean concretiseren en de retourcode van de methode is niet belangrijk om te kunnen herkennen of het veld een Java-bean is. Om de velden anOKButton en ivjTableModel op te nemen als Java-beans, moeten deze worden geconcretiseerd binnen een get-methode in de klasse.
- Voor SWT geldt dat de Visual Editor private void createComposite()-methoden genereert voor elke samenstelling die klassen uitbreidt en onderliggende beans worden binnen dezelfde methode geïnitialiseerd.
- Als de bewerkte klasse een Java-bean uitbreidt, wordt de instance die wordt bewerkt, vertegenwoordigd door een speciale Java-bean die 'this' part wordt genoemd. Dit 'this' part kan niet worden verwijderd uit de ontwerpview of uit de JavaBeans-view en de initialisatiemethode voor de eigenschappen ervan worden uitgevoerd in de initialize()-methode.
Er wordt alleen een 'this' part afgebeeld in de ontwerpview en de Java-beans-view als er eigenschappen beschikbaar zijn voor het instellen van de view Eigenschappen. De instel-methoden voor de eigenschappen worden gegenereerd in de initialize()-methode of, als de klasse java.awt.Applet uitbreidt, wordt de init()-methode gebruikt.
- Als de bewerkte klasse org.eclipse.ui.IWorkbenchPart implementeert, worden de gegenereerde codes voor de besturingsfuncties voor de onderliggende items toegevoegd aan de createPartControl(Composite parent)-methode.