Pegar nome de listbox

5 respostas
Mariana.Vecci

Oii gente, estou tentando pegar o nome escolhido do listbox, mas não estou conseguindo, poderiam me ajudar?

private Widget createNewEventPanel(){
		VerticalPanel createPanel = new VerticalPanel();
		createPanel.add(new Label("Compromisso:"));
		createPanel.add(lb);
                        lb.addItem("evento1");
                        lb.addItem("evento2");
                        lb.addItem("evento3");
                        lb.addItem("evento4");
                        lb.addItem("evento5");
		createPanel.add(new Label("Início:"));
		createPanel.add(startDate);
		createPanel.add(new Button("Criar compromisso",new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				String title = lb.getName();
				Date start = startDate.getValue();
				
				GoogleCalendarUtils ourCalendar = new GoogleCalendarUtils(calendarUrl);
				ourCalendar.insertCalendarEvent(title, start, new CalendarEventEntryCallback() {
					@Override
					public void onSuccess(CalendarEventEntry result) {
						Window.alert("O compromisso " + result.getTitle().getText() + " foi inserido no calendário");
						updateCalendarView();
					}	
					@Override
					public void onFailure(CallErrorException caught) {
						Window.alert("Falha ao inserir compromisso");
					}
				});
			}
		}));
		return createPanel;
	}

Obrigadaa!

5 Respostas

tebosoftware

Eu não consegui ver onde você declarou a variável do listbox, mas se for dentro do método, você terá que colocá-lo como final para poder acessá-lo dentro do actionlistener.

espero ter ajudado.
um abraço

Mariana.Vecci

Oii, desculpe, acabou ficando de fora, eu coloquei apenas o método que estou com problema,
a sua declaração está acima do método:

private DatePicker startDate = new DatePicker(); private ListBox lb = new ListBox();

Obrigada!

tebosoftware

de qualquer maneira, você terá que declarar antes da criação do botão uma variável do mesmo tipo com a variação final

final ListBox lbInterno = lb;

ai dentro do método você muda para usá-la

ViniGodoy

Oi. Quando postar tópicos de interface gráfica:

  1. Abra no fórum de interface gráfica (movi seu tópico).
  2. Se usar algo diferente do Swing (como é o seu caso, com SWT), avise isso em algum lugar. Pode ser no título, colocando [SWT] na frente.
Mariana.Vecci
Oii, não entendi..
import java.util.Date;

import com.google.gwt.accounts.client.AuthSubStatus;
import com.google.gwt.accounts.client.User;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.gdata.client.GData;
import com.google.gwt.gdata.client.GDataSystemPackage;
import com.google.gwt.gdata.client.calendar.CalendarEntry;
import com.google.gwt.gdata.client.calendar.CalendarEventEntry;
import com.google.gwt.gdata.client.calendar.CalendarEventEntryCallback;
import com.google.gwt.gdata.client.calendar.CalendarEventFeed;
import com.google.gwt.gdata.client.calendar.CalendarEventFeedCallback;
import com.google.gwt.gdata.client.impl.CallErrorException;
import com.google.gwt.gdata.client.impl.Callback;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Frame;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.user.datepicker.client.DatePicker;


public class MainEntryPoint implements EntryPoint {

    public final static String GDATA_API_KEY = "ABQIAAAA3EOirlH7z7XYgtOH9YDErRQ6_UIOfPGHgVRITLRv-xRWPpAwvxQRmJALZiKCck5hlCIsDmb5MH1AmA"; //é uma licença gratuita necessária pra utilizar a api
    private static final String CAL_PUBLIC_URL = "https://www.google.com/calendar/embed?src=q3ecchnilb5mdl50hcd1uachec%40group.calendar.google.com&ctz=America/Boa_Vista"; //endereço público da agenda
    private Frame googleCalendar = new Frame(CAL_PUBLIC_URL);
    private static String calendarUrl = "http://www.google.com/calendar/feeds/[email removido]/private/full"; //id da agenda, mas do xml  
    
    public void onModuleLoad() {
	    if (!GData.isLoaded(GDataSystemPackage.CALENDAR)) {
	        GData.loadGDataApi(GDATA_API_KEY, new Runnable() {
	          public void run() {
	        	  loadModule();
	          }
	        }, GDataSystemPackage.CALENDAR);
	    } else {
	    	  loadModule();
	    }
	}
	
	private void doAuthSubLogin() {
		AuthSubStatus status = User.getStatus(calendarUrl);
		if (status != AuthSubStatus.LOGGED_IN) {
			User.login(calendarUrl);
		}
	}
	
	public void startApp(){
		doAuthSubLogin();
	}
	
	public void loadModule(){
		doAuthSubLogin();
	
	    if (User.getStatus() == AuthSubStatus.LOGGING_IN) return;
		HorizontalPanel controlsPanel = new HorizontalPanel(); 
		googleCalendar.setWidth("800px");
		googleCalendar.setHeight("600px");
		controlsPanel.add(googleCalendar);
		controlsPanel.add(createNewEventPanel());
		controlsPanel.add(createEventEditPanel());
		controlsPanel.setSpacing(10);
		VerticalPanel vp = new VerticalPanel();
		vp.add(controlsPanel);
		vp.add(eventsDisplayTable);
		updateCalendarView();
		RootPanel.get().add(vp);
	}
	
	private DatePicker startDate = new DatePicker();
        private ListBox lb = new ListBox();

	private Widget createNewEventPanel(){
		VerticalPanel createPanel = new VerticalPanel();
		createPanel.add(new Label("Compromisso:"));
		createPanel.add(lb);
                        lb.addItem("evento1");
                        lb.addItem("evento2");
                        lb.addItem("evento3");
                        lb.addItem("evento4");
                        lb.addItem("evento5");
		createPanel.add(new Label("Início:"));
		createPanel.add(startDate);
		createPanel.add(new Button("Criar compromisso",new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				String title = lb.getName();
				Date start = startDate.getValue();
				
				GoogleCalendarUtils ourCalendar = new GoogleCalendarUtils(calendarUrl);
				ourCalendar.insertCalendarEvent(title, start, new CalendarEventEntryCallback() {
					@Override
					public void onSuccess(CalendarEventEntry result) {
						Window.alert("O compromisso " + result.getTitle().getText() + " foi inserido no calendário");
						updateCalendarView();
					}	
					@Override
					public void onFailure(CallErrorException caught) {
						Window.alert("Falha ao inserir compromisso");
					}
				});
			}
		}));
		return createPanel;
	}
	
	private void updateCalendarView(){
		googleCalendar.setUrl(googleCalendar.getUrl());
		getAllEvents();
	}
	
	private void getAllEvents(){
		GoogleCalendarUtils calendar = new GoogleCalendarUtils(calendarUrl);
		calendar.getEvents(new CalendarEventFeedCallback() {
			@Override
			public void onSuccess(CalendarEventFeed result) {
				displayCalendarEntries((CalendarEventEntry[])result.getEntries());
			}
			
			@Override
			public void onFailure(CallErrorException caught) {
				Window.alert("Falha ao receber compromissos");
			}
		});
	}
	
	private TextBox newTitle = new TextBox();
	private TextBox eventUrl = new TextBox();
	private Widget createEventEditPanel(){
		VerticalPanel editPanel = new VerticalPanel();
		editPanel.add(new Label("URL do compromisso:"));
		editPanel.add(eventUrl);
		editPanel.add(new Label("Novo compromisso:"));
		editPanel.add(newTitle);
		editPanel.add(new Button("Atualizar", new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				GoogleCalendarUtils ourCalendar = new GoogleCalendarUtils(calendarUrl);
				ourCalendar.renameEvent(eventUrl.getText(), newTitle.getText(), new Callback<CalendarEntry>() {
					@Override
					public void onSuccess(CalendarEntry result) {
						Window.alert("Compromisso atualizado");
						updateCalendarView();
					}
					@Override
					public void onFailure(CallErrorException caught) {
						Window.alert("Falha ao atualizar compromisso");
					}
				});
			}
		}));
		editPanel.add(new Button("Remover", new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				GoogleCalendarUtils ourCalendar = new GoogleCalendarUtils(calendarUrl);
				ourCalendar.deleteEvent(eventUrl.getText(), new Callback<CalendarEntry>() {
					@Override
					public void onSuccess(CalendarEntry result) {
						Window.alert("Compromisso removido");
						updateCalendarView();
					}
					@Override
					public void onFailure(CallErrorException caught) {
						Window.alert("Falha ao remover compromisso");
					}
				});
			}
		}));
		return editPanel;
	}
	
	private FlexTable eventsDisplayTable = new FlexTable();
	private void displayCalendarEntries(CalendarEventEntry[] entries){
		eventsDisplayTable.clear();
		eventsDisplayTable.setText(0, 0, "Nome do compromisso");
		eventsDisplayTable.setText(0, 1, "URL do compromisso");
		for(int row = 0; row < entries.length; row++){
			eventsDisplayTable.setText(row+1, 0, entries[row].getTitle().getText());
			eventsDisplayTable.setText(row+1, 1, entries[row].getEditLink().getHref());
		}
	}

}
Criado 6 de novembro de 2011
Ultima resposta 6 de nov. de 2011
Respostas 5
Participantes 3