package kornell.gui.client.util.view;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.event.logical.shared.ResizeEvent;
import com.google.gwt.event.logical.shared.ResizeHandler;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.FlowPanel;
public class Positioning {
// TODO: fetch these dynamically
// TODO: Extract view
public static final int NORTH_BAR = 45;
public static final int NORTH_BAR_PLUS = NORTH_BAR + 35;
public static final int SOUTH_BAR = 35;
public static final int BAR_WIDTH = 962;
public static final int NOTES_MIN_HEIGHT = 300;
public static final int BAR_ANIMATION_LENGTH = 600;
public static void placeBetweenBars(FlowPanel pnl) {
String width = Window.getClientWidth() + "px";
String height = getClientHeightBetweenBars() + "px";
pnl.getElement().setPropertyString("width", width);
pnl.getElement().setPropertyString("height", height);
}
public static int getClientHeightBetweenBars() {
return (Window.getClientHeight()
- SOUTH_BAR
- NORTH_BAR);
}
public static void betweenBars(final FlowPanel pnl) {
Window.addResizeHandler(new ResizeHandler() {
@Override
public void onResize(ResizeEvent event) {
Scheduler.get().scheduleDeferred(new Command() {
@Override
public void execute() {
placeBetweenBars(pnl);
}
});
}
});
placeBetweenBars(pnl);
}
}