blob: 0f32aa17c4b569a4eeb1c52b3bdf4ab7653e4b1c [file] [log] [blame]
/*
* Copyright 2000-2009 JetBrains s.r.o.
*
* 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.intellij.uiDesigner.core;
import java.awt.*;
import java.util.ArrayList;
/**
* @noinspection unchecked
*/
public final class LayoutState {
private final Component[] myComponents;
private final GridConstraints[] myConstraints;
private final int myColumnCount;
private final int myRowCount;
final Dimension[] myPreferredSizes;
final Dimension[] myMinimumSizes;
public LayoutState(final GridLayoutManager layout, final boolean ignoreInvisibleComponents) {
// collect all visible components
final ArrayList componentsList = new ArrayList(layout.getComponentCount());
final ArrayList constraintsList = new ArrayList(layout.getComponentCount());
for (int i=0; i < layout.getComponentCount(); i++){
final Component component = layout.getComponent(i);
if (!ignoreInvisibleComponents || component.isVisible()) {
componentsList.add(component);
final GridConstraints constraints = layout.getConstraints(i);
constraintsList.add(constraints);
}
}
myComponents = (Component[])componentsList.toArray(new Component[componentsList.size()]);
myConstraints = (GridConstraints[])constraintsList.toArray(new GridConstraints[constraintsList.size()]);
myMinimumSizes = new Dimension[myComponents.length];
myPreferredSizes = new Dimension[myComponents.length];
myColumnCount = layout.getColumnCount();
myRowCount = layout.getRowCount();
}
public int getComponentCount(){
return myComponents.length;
}
public Component getComponent(final int index){
return myComponents[index];
}
public GridConstraints getConstraints(final int index){
return myConstraints[index];
}
public int getColumnCount(){
return myColumnCount;
}
public int getRowCount(){
return myRowCount;
}
}