org.modeshape.web.client.grid.TabGrid Maven / Gradle / Ivy
/*
* ModeShape (http://www.modeshape.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.modeshape.web.client.grid;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
import java.util.Collection;
/**
* Pattern for grid view.
*
* @author kulikov
* @param
* @param
*/
public abstract class TabGrid extends VLayout {
private R[] records;
private final VLayout viewPort = new VLayout();
public TabGrid(String caption) {
super();
init(caption);
}
private void init(String caption) {
this.records = records();
this.setStyleName("grid-bg");
// this.setLayoutMargin(1);
HLayout toolBar = this.toolBar();
if (toolBar != null) {
addMember(toolBar);
}
HLayout header = this.tableHeader();
if (header != null) {
addMember(header);
}
setAutoHeight();
HLayout bottomPanel = new HLayout();
bottomPanel.setHeight(30);
bottomPanel.setBackgroundColor("#e6f1f6");
viewPort.setAutoHeight();
addMember(viewPort);
// addMember(bottomPanel);
}
protected abstract R[] records();
protected abstract HLayout tableHeader();
protected abstract HLayout toolBar();
protected void setValues(Collection values) {
try {
for (int i = 0; i < records.length; i++) {
records[i].setVisible(false);
viewPort.removeMember(records[i]);
}
} catch (Exception e) {
}
if (values.isEmpty()) {
viewPort.addMember(records[0]);
updateRecord(-1, records[0], null);
records[0].show();
return;
}
int i = 0;
for (V value : values) {
try {
viewPort.addMember(records[i]);
updateRecord(i, records[i], value);
records[i].show();
i++;
} catch (Exception e) {
SC.say(e.getMessage() + ":::;" + Integer.toString(i));
}
}
}
protected abstract void updateRecord(int pos, R record, V value);
protected class Strut extends HLayout {
public Strut(int size) {
super();
setWidth(size);
}
}
}