package com.itmill.toolkit.tests;

import com.itmill.toolkit.ui.*;
import com.itmill.toolkit.ui.Button.ClickEvent;
import com.itmill.toolkit.ui.Button.ClickListener;

public class TestSetVisibleAndCaching extends com.itmill.toolkit.Application {

	Panel panelA = new Panel("Panel A");
	Panel panelB = new Panel("Panel B");
	Panel panelC = new Panel("Panel C");

	Button buttonNextPanel = new Button("Show next panel");

	int selectedPanel = 0;

	public void init() {
		Window mainWindow = new Window("TestSetVisibleAndCaching");
		setMainWindow(mainWindow);

		panelA.addComponent(new Label(
				"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"));
		panelB.addComponent(new Label(
				"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"));
		panelC.addComponent(new Label(
				"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"));

		mainWindow.addComponent(new Label(
				"Inspect transfered data from server to "
						+ "client and see how widgets are re-used,"
						+ " after each panel is once shown in GUI then"
						+ " their contents are not resend."));
		mainWindow.addComponent(buttonNextPanel);
		mainWindow.addComponent(panelA);
		mainWindow.addComponent(panelB);
		mainWindow.addComponent(panelC);

		selectPanel(selectedPanel);

		buttonNextPanel.addListener(new ClickListener() {
			public void buttonClick(ClickEvent event) {
				selectedPanel++;
				if (selectedPanel > 2)
					selectedPanel = 0;
				selectPanel(selectedPanel);
			}
		});

	}

	private void selectPanel(int selectedPanel) {
		System.err.println("Selecting panel " + selectedPanel);
		switch (selectedPanel) {
		case 0:
			panelA.setVisible(true);
			panelB.setVisible(false);
			panelC.setVisible(false);
			break;
		case 1:
			panelA.setVisible(false);
			panelB.setVisible(true);
			panelC.setVisible(false);
			break;
		case 2:
			panelA.setVisible(false);
			panelB.setVisible(false);
			panelC.setVisible(true);
			break;
		}
	}
}

Test that caching widgets works. Inspect transfered data from server to client and see how widgets are re-used after each panel is once shown in GUI then" their contents are not resend.
Test that caching widgets works.
Inspect transfered data from server to 
client and see how widgets are re-used
after each panel is once shown in GUI then"
their contents are not resend.

svn changeset:2579/svn branch:trunk
