/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* Copyright (c) 2013, MPL CodeInside http://codeinside.ru
*/
package ru.codeinside.gses.webui;
import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.TabSheet;
import com.vaadin.ui.TextArea;
import ru.codeinside.gses.webui.eventbus.SizeEvent;
final public class MemoryUsage extends CustomComponent {
final TabSheet tabs;
final TextArea sizeErr;
public MemoryUsage(TabSheet tabs) {
this.tabs = tabs;
sizeErr = new TextArea();
sizeErr.setStyleName("debug-panel");
sizeErr.setSizeFull();
sizeErr.setReadOnly(true);
setCompositionRoot(sizeErr);
setSizeFull();
Flash.router().addListener(SizeEvent.class, this, "onSizeEvent");
tabs.addTab(this, "Память").setDescription("Отладочная информация");
}
@SuppressWarnings("unused") // EventBus API
public void onSizeEvent(SizeEvent event) {
sizeErr.setReadOnly(false);
sizeErr.setValue(event.error == null ? "Нет ошибок сериализации" : event.error);
sizeErr.setReadOnly(true);
tabs.getTab(this).setCaption((event.error == null ? "" : "!") + event.size);
}
}