RCP : Selection LIstener als innere Klasse ?



  • Hallo ich habe 2 Views (View A und View 😎

    In meiner View A habe ich einen ListViewer. nun möchte ich das eine Textfeld in der View B gefüllt wird wenn ich ein Element in der Liste selektiere.

    ICh wollte den SelectionListener gern als innere Klasse in der View B implementieren, da ich dann einfacher auf die Textfelder zurgreifen kann. Ist das eine gute Idee ?

    Oder wie löst man solche Probleme.
    Bin leider noch nicht so fit mit RCP


  • Mod

    Ich glaube, derartiges ist durchaus relativ ueblich. Unter Umstaenden kannst Du sogar eine anonyme innere Klasse nehmen. Ich wuerde das davon abhaengig machen, wie viel diese Klasse eigentlich machen muss.



  • Danke für deine Antwort. Allerdings habe ich noch ein Problem

    In der View A muss ich ja den SelectionListener hinzufügen. Dieser ist aber eine innere klasse von der View B. Wie kann davon eine Instanz erzeugen. Hier mal eine Auszug aus meinem Quelcode :

    View A

    public class SelectedFilter extends ViewPart
    {
    
    	public SelectedFilter()
    	{
    		// TODO Auto-generated constructor stub
    	}
    
    	@Override
    	public void createPartControl(Composite parent)
    	{
    
    		ListViewer listViewer = new ListViewer(parent, SWT.BORDER | SWT.V_SCROLL);
    		List list = listViewer.getList();
    
    		// add a selection listener
    		list.addSelectionListener(?????);
    
    ...
    

    View B

    public class AnaylsisResult extends ViewPart
    {
    ...
    public class AnaylsisResultSelectionListener implements SelectionListener
    	{
    		private final ListViewer viewer;
    
    		protected AnaylsisResultSelectionListener(ListViewer viewer)
    		{
    			this.viewer = viewer;
    		}
    ...
    

    Vielen Dank


Anmelden zum Antworten