Frage wegen guava-Eventbus.

Shams

Aktives Mitglied
Ich habe mal eine Frage zu dem guava - Eventbus, interessanterweise kann ich keine Methoden in Vaadinkomponenten (d. h. Vaadinservlets) als Subscriber definieren. Zunächst habe ich hier eine Klasse, also meine Vaadinkomponente.

Java:
package com.tsher;

import java.util.ArrayList;

import com.google.common.eventbus.EventBus;
import com.google.gwt.thirdparty.guava.common.eventbus.Subscribe;
import com.vaadin.navigator.View;
import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent;
import com.vaadin.ui.Button;
import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.GridLayout;
import com.vaadin.ui.Notification;
import com.vaadin.ui.UI;
import com.vaadin.ui.Button.ClickEvent;

import daacc.LgnAccDAOImpl;
import dispatch.EventLogOnEvent;

/**
 * @author sleipnir
 *
 */
public class ChatView extends CustomComponent implements View{
	
	private static final long serialVersionUID = 1L;

	public static final String NAME = "chatview";

	 
	private Button lgoutaction;
	//private MyCommunication;
	private MyOnlineStat onlineStat;
	private MyBuddies theBuddies;

	private ArrayList<String> buddies;
	
	/**
	 * Konstruktor
	 */
	public ChatView() {
		onlineStat = new MyOnlineStat();
		theBuddies = new MyBuddies(createBuddyList());
		createTools();
		setCompositionRoot(createChatLayout());
        
    }
	

/**
 * Die Buddyliste wird geladen.	
 */
private ArrayList<String> createBuddyList(){

	buddies = new ArrayList<String>();
	buddies.add("testuser2");
	
	return buddies;
	
}
	
	
/**
 * Es werden die nötogen Datenstruktiren initialisiert.
 */
private void createTools(){
	
	
	 
	//Logoutbutton
    lgoutaction = new Button("logout");
    lgoutaction.setWidth(180, Unit.PIXELS);
    lgoutaction.addClickListener(new Button.ClickListener() {	    
		private static final long serialVersionUID = 1L;

		public void buttonClick(ClickEvent event) {
			
			String username = (String) UI.getCurrent().getSession().getAttribute("currentUser");
			onlineStat.init((String) UI.getCurrent().getSession().getAttribute("currentUser"), false,theBuddies.getBuddies());
		 
			
	   	     }
		});
    
}

 
	
@SuppressWarnings({ "deprecation", "unchecked" })
private GridLayout createChatLayout(){
	
	final GridLayout gridlayout = new GridLayout(3, 3);
	gridlayout.addStyleName(ThemeStyle.Chatgridlayout);
	gridlayout.setMargin(true);
	gridlayout.addComponent(lgoutaction,0,0);
	
	
	return gridlayout;
}



@Subscribe
public void addLogOnChangedEvent(EventLogOnEvent event){
    //Wenn in den Buddies, die das Event mit sich führt, ich ein Buddy bin, dann muss ich dementsprechend 
	//meine BuddyTabelle oder zumindest den User, der auch im Event steckt, neu laden.  
	System.out.println("arg0");	
}

 

	@Override
	public void enter(ViewChangeEvent event) {
		
		String username = (String) UI.getCurrent().getSession().getAttribute("currentUser");
		onlineStat.init((String) UI.getCurrent().getSession().getAttribute("currentUser"), true,theBuddies.getBuddies());
	    
 		
	}
 
}

In der enter-Methode meiner Vaadinkomponente wird die init-Methode der MyOnlineStat-Klasse aufgerufen, und der dort befindliche Eventbus funktioniert wunderbar. Derselbe Eventbus, also der in der MyOnlineStat-Klasse ist, hat aber auch in der ChatView-Klasse einen Subscriber (siehe Zeile 103), und der geht nicht, was ich mit dem Debugger auch schon getestet habe – nur habe ich absolut keine Ahnung, woran das liegen könnte. Hier noch die andere Klasse, also die mit dem Eventbus:

Java:
package com.tsher;

import java.util.ArrayList;

import com.google.common.eventbus.EventBus;
import com.google.common.eventbus.Subscribe;
import com.vaadin.ui.UI;

import daacc.LgnAccDAOImpl;
import dispatch.EventLogOnEvent;

public class MyOnlineStat {


@Subscribe
public void addLogOnEvent(EventLogOnEvent event){
	
	LgnAccDAOImpl lgn = new LgnAccDAOImpl();
	
	lgn.setOnlineStat(event.getUsername(),event.getStat()); 
	
}
	
public void init(String name,boolean on,ArrayList<String> buddies){

	EventBus eventBus = new EventBus();
	eventBus.register(this);
	
	EventLogOnEvent event = new EventLogOnEvent();
	event.setUserName(name);
	event.setUsersBuddies(buddies);
	event.setStat(on);
	eventBus.post(event);

}


}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C SOLID Single Responsibility Priciple Frage Softwareentwicklung 2
K Frage OOP Softwareentwicklung 8
dgtKotlin Frage zu Kotlin source code Softwareentwicklung 5
A Frage zu testdriven developement Softwareentwicklung 1
H Regex Frage Softwareentwicklung 2
D Frage Schichtenarchitektur Softwareentwicklung 3
T Frage bezüglich MVC Softwareentwicklung 1
B Frage zu Schnittstellen (lose Kopplung) Softwareentwicklung 5
H Frage zur Stanford NLP-API Softwareentwicklung 2
E Frage zu Dekorator-Pattern Softwareentwicklung 2
O Frage zu Regulärer Ausdruck Softwareentwicklung 3
H WEKA - Frage zu Methode in Evaluation Softwareentwicklung 2
S Frage zu Zusicherungen: Softwareentwicklung 12
D Frage zu String Algorithmen / String Metric Softwareentwicklung 7
Airwolf89 Theoretische Frage - In Java Java-Programme schreiben Softwareentwicklung 5
D Frage zur Objektorientierung mit Interfaces Softwareentwicklung 9
B Theoretische Informatik Frage zu Formalismus RegExp Softwareentwicklung 12
Wepster LGPL, MPL Frage Softwareentwicklung 3
D Frage zur Benutzeroberflächenprogrammierung Softwareentwicklung 8
D Frage zu Klassendiagramm und Konstruktor (UML) Softwareentwicklung 3
M [OOP] Frage zu Methode-Namen / Funktionsweise Softwareentwicklung 9
P Frage zu Processing Softwareentwicklung 9
S Regex Frage Softwareentwicklung 4
D Frage zu meiner Vorgehensweise in einem Projekt Softwareentwicklung 5
A Frage zu GPL Softwareentwicklung 3
K Frage zu UML Aktivitätsdiagramm Softwareentwicklung 3
J Frage zu Lizenzrechten Softwareentwicklung 5
B bash frage Softwareentwicklung 6
F allgemeine exe frage Softwareentwicklung 10
G Frage zur LGPL? Softwareentwicklung 5
0x7F800000 "Wozu ist denn CSS / CSS2 gut" Dumme Frage? Softwareentwicklung 9
G Frage zur UML Softwareentwicklung 2
B Ajax Frage Softwareentwicklung 2
J Frage zu Relation Softwareentwicklung 2
W Frage zu a)Innere Klassen und b)OO Design Softwareentwicklung 13
G MVC Frage Softwareentwicklung 4
P Frage zu Prolog! Softwareentwicklung 7
E Frage zu Excel und Filtern Softwareentwicklung 4
Y OpenGL/C Frage - externe Funktionen Softwareentwicklung 5
G C# Frage Softwareentwicklung 12
T SQL, Feld mehrmals abfragen, IN Frage Softwareentwicklung 3
C Grundsätzliche Frage zur OOP bzw. zum MVC Softwareentwicklung 5
RaoulDuke Frage zu Datenmodel / Zugriff Softwareentwicklung 5
J Frage zu C Softwareentwicklung 2
H Frage ueber Prototype Pattern? Softwareentwicklung 2
L Noch 'ne Perl-Frage. Kehre dann auch reumütig zu Java zurück Softwareentwicklung 10
S Design-Frage: Wie viele Fassaden? Softwareentwicklung 4
J Frage zu MVC, Swing, Gui Softwareentwicklung 3
L Frage zu Beziehungen zwischen Klassen und UML Softwareentwicklung 10
T Frage zu Mysql Softwareentwicklung 3
C Mysql-Frage(Problem mit nicht durchgeführten Zugriff) Softwareentwicklung 5

Ähnliche Java Themen

Neue Themen


Oben