/**
* Sencha GXT 3.0.0b - Sencha for GWT
* Copyright(c) 2007-2012, Sencha, Inc.
* licensing@sencha.com
*
* http://www.sencha.com/products/gxt/license/
*/
package com.sencha.gxt.desktopapp.client.spreadsheet;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Widget;
import com.sencha.gxt.desktopapp.client.persistence.FileModel;
import com.sencha.gxt.desktopapp.client.persistence.FileSystem;
import com.sencha.gxt.widget.core.client.Window;
/**
* Implementation Notes:
* <p/>
* <ul>
* <li>Changes in row count are handled via Store events.</li>
* <li>Changes in column count require a call to updateChart.</li>
* </ul>
*/
public class SpreadsheetChartPresenterImpl implements SpreadsheetChartPresenter {
private SpreadsheetChartView spreadsheetChartView;
private FileModel fileModel;
private FileSystem fileSystem;
public SpreadsheetChartPresenterImpl(FileSystem fileSystem) {
this.fileSystem = fileSystem;
}
@Override
public void configure(FileModel fileModel, Worksheet worksheet) {
this.fileModel = fileModel;
getSpreadsheetChartView().configure(worksheet);
}
@Override
public void go(HasWidgets hasWidgets) {
Widget widget = getSpreadsheetChartView().asWidget();
if (widget instanceof Window) {
Window window = (Window) widget;
window.show();
}
}
@Override
public void updateTitle() {
String newTitle = getTitle();
getSpreadsheetChartView().setTitle(newTitle);
}
private FileModel getFileModel() {
return fileModel;
}
private FileSystem getFileSystem() {
return fileSystem;
}
private SpreadsheetChartView getSpreadsheetChartView() {
if (spreadsheetChartView == null) {
spreadsheetChartView = new SpreadsheetChartViewImpl(this);
}
return spreadsheetChartView;
}
private String getTitle() {
return "Chart - " + getFileSystem().getPath(getFileModel());
}
}