added tables in textTabelImage

git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/reports@71278 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Massimiliano Assante 2013-03-12 18:22:45 +00:00
parent f159ee4eaa
commit f4bd79b592
3 changed files with 83 additions and 11 deletions

View File

@ -229,7 +229,7 @@ public class TemplateComponent {
break;
case FLEX_TABLE:
Table st = (Table) sc.getPossibleContent();
GenericTable table = new GenericTable(st, presenter, sc.getX(), sc.getY(), TemplateModel.TEMPLATE_WIDTH - 50, 200, sc.isLocked());
GenericTable table = new GenericTable(st, presenter, sc.getX(), sc.getY(), TemplateModel.TEMPLATE_WIDTH - 50, 200, sc.isLocked(), showClose, owner);
this.content = table;
break;
case ATTRIBUTE_MULTI:

View File

@ -13,6 +13,7 @@ import com.extjs.gxt.ui.client.event.MessageBoxEvent;
import com.extjs.gxt.ui.client.widget.Info;
import com.extjs.gxt.ui.client.widget.MessageBox;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.MouseOutEvent;
@ -59,12 +60,16 @@ public class GenericTable extends Composite {
private Button colMerger = new Button("Merge Selected");
private Button cancel = new Button("Cancel");
private Button resetTabelB = new Button("Reset Table");
private Button removeB = new Button("Remove Table");
private Button resetTabelB = new Button("Reset");
private Button addRowB = new Button("Add Row");
private Button addColB = new Button("Add Col");
private Button deleteRowB = new Button("Del. Row");
private Button deleteColB = new Button("Del. Col");
private TextBox titleTB = new TextBox();
private TextBox descTB = new TextBox();
@ -81,7 +86,7 @@ public class GenericTable extends Composite {
* constructor called when reading the model
* @param sTable
*/
public GenericTable(Table sTable, Presenter presenter, int top, int left, int width, int height, boolean isLocked) {
public GenericTable(Table sTable, Presenter presenter, int top, int left, int width, int height, boolean isLocked, boolean isRemovable, TextTableImage owner) {
saveTable(sTable);
commonConstructorCode(presenter);
this.rows = sTable.getRowCount();
@ -107,7 +112,7 @@ public class GenericTable extends Composite {
}
}
HorizontalPanel controlPanel = getControlPanel();
HorizontalPanel controlPanel = getControlPanel(isRemovable, owner);
VerticalPanel attributesPanel = getAttributesPanel(sTable);
attributesPanel.setStyleName("tableAttributesPanel");
@ -126,6 +131,11 @@ public class GenericTable extends Composite {
b.addStyleName("tableButton");
}
}
if (isRemovable) {
removeB.removeStyleName("tableButton");
removeB.addStyleName("deleteEntryButton");
removeB.getElement().getStyle().setMarginRight(10, Unit.PX);
}
focusPanel.add(myPanel);
initWidget(focusPanel);
@ -196,11 +206,12 @@ public class GenericTable extends Composite {
return toReturn;
}
/**
*
* @return
*/
private HorizontalPanel getControlPanel() {
private HorizontalPanel getControlPanel(boolean isRemovable, final TextTableImage owner) {
final HorizontalPanel toReturn = new HorizontalPanel();
final Listener<MessageBoxEvent> l = new Listener<MessageBoxEvent>() {
@ -209,6 +220,16 @@ public class GenericTable extends Composite {
}
};
removeB.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if (owner != null) {
remove(owner);
}
}
});
resetTabelB.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
@ -261,6 +282,8 @@ public class GenericTable extends Composite {
}
});
if (isRemovable)
toReturn.add(removeB);
//the control buttons
toReturn.add(resetTabelB);
toReturn.add(addRowB);
@ -626,4 +649,12 @@ public class GenericTable extends Composite {
cols = originalTable.getColsNo();
rows = originalTable.getRowCount();
}
/**
* heleper method that removes a table from the texxTableImage widget
* @param owner
*/
private void remove(TextTableImage owner) {
owner.removeFromParent(this);
removeFromParent();
}
}

View File

@ -5,18 +5,22 @@ import java.util.ArrayList;
import org.gcube.portlets.d4sreporting.common.shared.BasicComponent;
import org.gcube.portlets.d4sreporting.common.shared.ComponentType;
import org.gcube.portlets.d4sreporting.common.shared.RepeatableSequence;
import org.gcube.portlets.d4sreporting.common.shared.Table;
import org.gcube.portlets.d4sreporting.common.shared.TableCell;
import org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter;
import org.gcube.portlets.user.reportgenerator.client.model.TemplateComponent;
import org.gcube.portlets.user.reportgenerator.client.model.TemplateModel;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FocusPanel;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
/**
*
* @author Massimiliano Assante ISTI-CNR
@ -43,6 +47,7 @@ public class TextTableImage extends Composite {
*/
public TextTableImage(Presenter presenter, boolean isFromTemplate) {
this.presenter = presenter;
focusPanel.setStyleName("imageTableTextDelimiter");
mainPanel.setStyleName("imageTableTextPanel");
controlPanel = getControlPanel();
controlPanel.setStyleName("imageTableTextControlPanel");
@ -59,7 +64,7 @@ public class TextTableImage extends Composite {
//construct the first component and add it
TemplateComponent toAdd = new TemplateComponent(presenter.getModel(), 0, 0, DEFAULT_WIDTH, height,
presenter.getModel().getCurrentPage(), ComponentType.BODY, "", firstText);
add(toAdd);
add(toAdd);
}
}
/**
@ -75,6 +80,7 @@ public class TextTableImage extends Composite {
}
}
}
public void add(TemplateComponent toAdd) {
addedComponents.add(toAdd);
GWT.log("ToAdd= getType " + toAdd.getType());
@ -91,7 +97,33 @@ public class TextTableImage extends Composite {
}
private void addNewTable() {
Table st = getSerializableTable();
GenericTable table = new GenericTable(st, presenter, 0, 0, TemplateModel.TEMPLATE_WIDTH - 50, GenericTable.DEFAULT_HEIGHT, false, true, this);
TemplateComponent toAdd = new TemplateComponent(presenter.getModel(), 0, 0, DEFAULT_WIDTH, GenericTable.DEFAULT_HEIGHT,
presenter.getModel().getCurrentPage(), ComponentType.FLEX_TABLE, "", table);
add(toAdd);
}
/**
*
* @return
*/
private Table getSerializableTable() {
Table toReturn = new Table(GenericTable.DEFAULT_COLS_NUM);
for (int i = 0; i < GenericTable.DEFAULT_ROWS_NUM; i++) {
toReturn.addRow(getRow(i));
}
return toReturn;
}
private ArrayList<TableCell> getRow(int i) {
ArrayList<TableCell> toReturn = new ArrayList<TableCell>();
int cellWidth = (DEFAULT_WIDTH) / GenericTable.DEFAULT_COLS_NUM;
for (int j = 0; j <2; j++) {
toReturn.add(new TableCell("", 1, cellWidth, 25));
}
return toReturn;
}
/**
*
@ -117,6 +149,7 @@ public class TextTableImage extends Composite {
addTableB.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
addNewTable();
}
});
toReturn.setSpacing(3);
@ -130,7 +163,8 @@ public class TextTableImage extends Composite {
for (int i = 0; i < toReturn.getWidgetCount(); i++) {
if (toReturn.getWidget(i) instanceof Button) {
Button b = (Button) toReturn.getWidget(i);
b.addStyleName("tableButton");
b.addStyleName("addEntryButton");
b.getElement().getStyle().setMarginRight(10, Unit.PX);
}
}
return toReturn;
@ -140,11 +174,18 @@ public class TextTableImage extends Composite {
return addedComponents;
}
public void removeFromParent(D4sRichTextarea d4sRichTextarea) {
public void removeFromParent(Widget w) {
for (TemplateComponent tc : addedComponents) {
if (tc.getType() == ComponentType.BODY) {
D4sRichTextarea toCheck = (D4sRichTextarea) tc.getContent();
if (toCheck.equals(d4sRichTextarea)) {
if (toCheck.equals(w)) {
addedComponents.remove(tc);
break;
}
}
if (tc.getType() == ComponentType.FLEX_TABLE) {
GenericTable toCheck = (GenericTable) tc.getContent();
if (toCheck.equals(w)) {
addedComponents.remove(tc);
break;
}