private boolean calculateFrameDestOnSwapAjax(Widget[] showletsToRender, Integer[] columnFrames) {
//System.out.println("Partenza " + this.getStartFramePos() +
// " - POSIZIONE PREC " + this.getTargetPrevFramePos() +
// " - POSIZIONE SUCC " + this.getTargetNextFramePos());
Widget showlet = null;
String voidShowletCode = this.getPageUserConfigManager().getVoidShowlet().getCode();
try {
Integer targetFramePos = null;
if (this.getTargetPrevFramePos() == null) {
//SPOSTAMENTO IN TESTA ALLA COLONNA
//primo frame di colonna
targetFramePos = columnFrames[0];
} else if (this.getTargetNextFramePos() == null) {
//SPOSTAMENTO IN CODA ALLA COLONNA
//primo tra gli ultimi frame di colonna liberi
Integer prevFrame = null;
for (int i = 0; i < columnFrames.length; i++) {
Integer frame = columnFrames[columnFrames.length - i - 1];
Widget showletToRender = showletsToRender[frame];
if (i==0 && showletToRender != null && !showletToRender.getType().getCode().equals(voidShowletCode)) {
//L'ULTIMO FRAME DI COLONNA NON E' LIBERO... è quello il target
targetFramePos = frame;
//System.out.println("aaaa " + targetFramePos);
break;
}
if (i==columnFrames.length-1 && (showletToRender == null || showletToRender.getType().getCode().equals(voidShowletCode))) {
//SI E' ARIVATO IN TESTA SENZA TROVARE UN FRAME OCCUPATO... si mette in testa
targetFramePos = columnFrames[0];
//System.out.println("bbb " + targetFramePos);
break;
}
if (frame.equals(this.getStartFramePos())) {
//SI E' TROVATO IL FRAME DI PARTENZA
targetFramePos = frame;
//System.out.println("cccc " + targetFramePos);
break;
}
if (showletToRender != null && !showletToRender.getType().getCode().equals(voidShowletCode)) {
//SI E' TROVATO UN FRAME OCCUPATO... SI METTE IN QUELLO PRECEDENTE!
targetFramePos = prevFrame;
//System.out.println("ddd " + targetFramePos);
break;
}