/**
* Copyright 2008-2016 Qualogy Solutions B.V.
*
* 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 com.qualogy.qafe.gwt.client.component;
import java.util.ArrayList;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.StackPanel;
import com.google.gwt.user.client.ui.UIObject;
import com.google.gwt.user.client.ui.Widget;
public class QStack extends HorizontalPanel implements HasVisible {
private UIObject parentStackPanel;
private int stackIndex;
private String stackText;
public String getStackText() {
return stackText;
}
public void setStackText(String stackText) {
this.stackText = stackText;
}
public int getStackIndex() {
return stackIndex;
}
public void setStackIndex(int stackIndex) {
this.stackIndex = stackIndex;
}
public UIObject getParentStackPanel() {
return parentStackPanel;
}
public void setParentStackPanel(UIObject parentStackPanel) {
this.parentStackPanel = parentStackPanel;
}
public void processVisible(boolean visible) {
if(parentStackPanel instanceof QStackPanel) {
QStackPanel stackPanel = (QStackPanel) parentStackPanel;
stackPanel.processVisible(this, visible);
}
}
private int getIndexToInsertStack(StackPanel stackPanel) {
int indexToInsert = getStackIndex();
if(stackPanel.getWidgetCount() <= 0) {
indexToInsert = 0 ;
} else if(stackPanel.getWidgetCount() < indexToInsert) {
indexToInsert = stackPanel.getWidgetCount();
} else {
for (int i = 0; i < stackPanel.getWidgetCount(); i++) {
if(stackPanel.getWidget(i) instanceof QStack) {
QStack stack = (QStack) stackPanel.getWidget(i);
if(stack.getStackIndex() > indexToInsert) {
indexToInsert = i;
break;
}
}
}
}
return indexToInsert;
}
}