@ -69,6 +69,7 @@ public class MultiSelectionArrangement {
// 水平分布,自动,间距由selectedCreators和border共同计算而来
public void horizontalAutoDistribution ( ) {
sortHorizontal ( ) ;
int gap = calculateHorizontalGap ( ) ;
horizontalDistribution ( gap ) ;
}
@ -80,7 +81,6 @@ public class MultiSelectionArrangement {
}
private void horizontalDistribution ( int gap ) {
sortHorizontal ( ) ;
for ( int i = 1 ; i < selectedCreators . size ( ) - 1 ; i + + ) {
XCreator creator = selectedCreators . get ( i ) ;
XCreator preCreator = selectedCreators . get ( i - 1 ) ;
@ -90,7 +90,6 @@ public class MultiSelectionArrangement {
}
private void reSizeRecByHorizontal ( int gap ) {
sortHorizontal ( ) ;
int width = 0 ;
for ( XCreator creator : selectedCreators ) {
width + = creator . getWidth ( ) ;
@ -138,10 +137,14 @@ public class MultiSelectionArrangement {
for ( XCreator creator : selectedCreators ) {
sum + = creator . getWidth ( ) ;
}
return ( rec . width - sum ) / ( selectedCreators . size ( ) - 1 ) ;
XCreator head = selectedCreators . get ( 0 ) ;
XCreator tail = selectedCreators . get ( selectedCreators . size ( ) - 1 ) ;
int distanceBetweenHeadAndTailCreators = Math . abs ( head . getX ( ) - tail . getX ( ) ) + tail . getWidth ( ) ;
return ( distanceBetweenHeadAndTailCreators - sum ) / ( selectedCreators . size ( ) - 1 ) ;
}
public void verticalAutoDistribution ( ) {
sortVertical ( ) ;
int gap = calculateVerticalGap ( ) ;
verticalDistribution ( gap ) ;
}
@ -152,7 +155,6 @@ public class MultiSelectionArrangement {
}
private void verticalDistribution ( int gap ) {
sortVertical ( ) ;
for ( int i = 1 ; i < selectedCreators . size ( ) - 1 ; i + + ) {
XCreator creator = selectedCreators . get ( i ) ;
XCreator preCreator = selectedCreators . get ( i - 1 ) ;
@ -162,7 +164,6 @@ public class MultiSelectionArrangement {
}
private void reSizeRecByVertical ( int gap ) {
sortVertical ( ) ;
int height = 0 ;
for ( XCreator creator : selectedCreators ) {
height + = creator . getHeight ( ) ;
@ -209,7 +210,10 @@ public class MultiSelectionArrangement {
for ( XCreator creator : selectedCreators ) {
sum + = creator . getHeight ( ) ;
}
return ( rec . height - sum ) / ( selectedCreators . size ( ) - 1 ) ;
XCreator head = selectedCreators . get ( 0 ) ;
XCreator tail = selectedCreators . get ( selectedCreators . size ( ) - 1 ) ;
int distanceBetweenHeadAndTailCreators = Math . abs ( head . getY ( ) - tail . getY ( ) ) + tail . getHeight ( ) ;
return ( distanceBetweenHeadAndTailCreators - sum ) / ( selectedCreators . size ( ) - 1 ) ;
}
private void update ( ) {