Диссертация (1137096), страница 19
Текст из файла (страница 19)
u t i l . ArrayList <I n t e g e r > G l o b a l D i s t r _ c o l l = new j a v a . u t i l . A r r a y L i s t < I n t e g e r > ( ) ;/ ∗∗∗ Ко л л екц и я текстовых п о л ей дл я р у ч н о г о р а с п р е д е л е н и я агентов по клеткам∗/publicjava .
u t i l . ArrayList <S h a p e T e x t F i e l d > b o x _ c o l l = new j a v a . u t i l . A r r a y L i s t < S h a p e T e x t F i e l d > ( ) ;/ ∗∗∗ Ко л л екц и я п о дп и сей текстовых п о л ей дл я р у ч н о г о р а с п р е д е л е н и я агентов по клеткам∗/publicjava . u t i l . ArrayList <S h a p e T e x t > t e x t _ c o l l = new j a v a . u t i l . A r r a y L i s t < S h ap eTex t > ( ) ;680/ / Функции685/ ∗∗∗ Ген ер а ц и я интерфейса р у ч н о г о р а с п р е д е л е н и я агентов по клеткам∗/void G l o b a l D i st r ( i n t count ) {690695700705710715S h a p e T e x t t e x t _ n ; / / п о дп и сь к текстовому полюS h a p e T e x t F i e l d box_n ; / / текстовое п о л еbox_coll . cl ear () ;text_coll . clear () ;int i ;int default_value ;f o r ( i = 0 ; i < c o u n t ; i ++) {i f ( i t e r >1 ) {try {d efault_ val ue= Glo balDi st r_coll .
get ( i ) ;}c a t c h ( I n d e x O u t O f B o u n d s E x c e p t i o n ex ) {d e f a u l t _ v a l u e =0;}i f ( default_value > var_agents_count ) {d e f a u l t _ v a l u e =0;}} else {GlobalDistr_coll . clear () ;DefaultDistr () ;d efault _value =Gl obalD istr_coll . get ( i ) ;}box_n = new S h a p e T e x t F i e l d ( S i m u l a t i o n . t h i s , t r u e , 8 0 .0 +1 5 0 ∗ Math . f l o o r ( i / 1 0 ) , −1550.0+70∗( i % 1 0 ) , 4 0 . 0 , 2 0 . 0 , c o n t r o l D e f a u l t ,c o n t r o l D e f a u l t , new F o n t ( " D i a l o g " , F o n t . PLAIN , 1 2 ) , S h a p e C o n t r o l . V al u eTy p e . TYPE_INT , 0 , v a r _ a g e n t s _ c o u n t ) ;box_n . s e t T e x t ( d e f a u l t _ v a l u e ) ;b o x _ c o l l .
add ( i , box_n ) ;t e x t _ n = new S h a p e T e x t (SHAPE_DRAW_2D, t r u e , 4 0 .0 +1 5 0 ∗ Math . f l o o r ( i / 1 0 ) , −1545.0+70∗( i % 1 0 ) , 0 . 0 , 0 . 0 , b l a c k , "N_" + I n t e g e r . t o S t r i n g ( i +1 ) ,new F o n t ( " A r i a l " , F o n t . BOLD , 1 2 ) , ALIGNMENT_LEFT) ;t e x t _ c o l l . add ( i , t e x t _ n ) ;box_coll . get ( i ) . set V i si b l e ( true ) ;t e x t _ co l l . get ( i ) . s et V i si b l e ( true ) ;p r e s e n t a t i o n . add ( b o x _ c o l l .
g e t ( i ) ) ;p r e s e n t a t i o n . add ( t e x t _ c o l l . g e t ( i ) ) ;}}720/ ∗∗∗ Функция о п р е д е л е н и е максимальной области видимости монитора∗/725 R e c t a n g l eMax Rect an g l e () {G r a p h i c s E n v i r o n m e n t ge = G r a p h i c s E n v i r o n m e n t . g e t L o c a l G r a p h i c s E n v i r o n m e n t ( ) ;G r a p h i c s D e v i c e gd = ge . g e t D e f a u l t S c r e e n D e v i c e ( ) ;730 G r a p h i c s C o n f i g u r a t i o n gc = gd .
g e t D e f a u l t C o n f i g u r a t i o n ( ) ;138I n s e t s i n s = j a v a . awt . T o o l k i t . g e t D e f a u l t T o o l k i t ( ) . g e t S c r e e n I n s e t s ( gc ) ;R e c t a n g l e maxRect = gc . g e t B o u n d s ( ) ;maxRect . s e t B o u n d s ( maxRect . x − i n s . l e f t , maxRect .
y − i n s . t o p , maxRect . w i d t h − i n s . r i g h t , maxRect . h e i g h t − i n s . b o t t o m ) ;735r e t u r n ( maxRect ) ;}740/ ∗∗∗ Равномерное р а с п р е д е л е н и е агентов по клеткам∗/void D ef a u l t D i s t r ( ) {int i , j , h , k;745 k = v a r _ a g e n t s _ c o u n t − ( i n t ) ( ( v a r _ m v e r t ∗v ar _ m h o r ) ∗Math . r o u n d ( Math . f l o o r ( v a r _ a g e n t s _ c o u n t / ( v a r _ m v e r t ∗v ar _ m h o r ) ) ) ) ; / / ко л и ч ест в о агентов ,оставшихся п о с л е р а в н о го р а с п р е д е л е н и я по клеткамi f ( k >0 ) { / / е с л и остались не р а сп р едел ен н ы е агентыj = ( i n t ) Math . r o u n d ( Math .
f l o o r ( ( k−1) / 2 ) ) ;h = ( i n t ) Math . r o u n d ( ( v a r _ m v e r t ∗v ar _ m h o r ) / 2 ) ;i f ( ( h−j ) ! = v a r _ m v e r t ∗v ar _ m h o r−(h−j +k ) +2 ) { / / соотношение четности ко л и ч ест в а агентов и ко л и ч ест в а клеток750f o r ( i = 0 ; i <h−j ; i ++) {G l o b a l D i s t r _ c o l l . add ( i , ( i n t ) Math . r o u n d ( Math . f l o o r ( v a r _ a g e n t s _ c o u n t / ( v a r _ m v e r t ∗v ar _ m h o r ) ) ) ) ;}f o r ( i =h−j ; i <h−j +k ; i ++) {G l o b a l D i s t r _ c o l l . add ( i , 1 +( i n t ) Math .
r o u n d ( Math . f l o o r ( v a r _ a g e n t s _ c o u n t / ( v a r _ m v e r t ∗v ar _ m h o r ) ) ) ) ;755}i f ( h−j +k< v a r _ m v e r t ∗v ar _ m h o r ) {f o r ( i =h−j +k ; i < v a r _ m v e r t ∗v ar _ m h o r ; i ++) {G l o b a l D i s t r _ c o l l . add ( i , ( i n t ) Math . r o u n d ( Math . f l o o r ( v a r _ a g e n t s _ c o u n t / ( v a r _ m v e r t ∗v ar _ m h o r ) ) ) ) ;}760}} else {f o r ( i = 0 ; i <h−j −1; i ++) {G l o b a l D i s t r _ c o l l .
add ( i , ( i n t ) Math . r o u n d ( Math . f l o o r ( v a r _ a g e n t s _ c o u n t / ( v a r _ m v e r t ∗v ar _ m h o r ) ) ) ) ;}765f o r ( i =h−j −1; i <h−j −1+k ; i ++) {G l o b a l D i s t r _ c o l l . add ( i , 1 +( i n t ) Math . r o u n d ( Math . f l o o r ( v a r _ a g e n t s _ c o u n t / ( v a r _ m v e r t ∗v ar _ m h o r ) ) ) ) ;}i f ( h−j −1+k< v a r _ m v e r t ∗v ar _ m h o r ) {f o r ( i =h−j −1+k ; i < v a r _ m v e r t ∗v ar _ m h o r ; i ++) {770G l o b a l D i s t r _ c o l l . add ( i , ( i n t ) Math .
r o u n d ( Math . f l o o r ( v a r _ a g e n t s _ c o u n t / ( v a r _ m v e r t ∗v ar _ m h o r ) ) ) ) ;}}}} e l s e { / / р а в н о е р а с п р е д е л е н и е по всем клеткам775f o r ( i = 0 ; i < v a r _ m v e r t ∗v ar _ m h o r ; i ++) {G l o b a l D i s t r _ c o l l . add ( i , ( i n t ) Math . r o u n d ( Math . f l o o r ( v a r _ a g e n t s _ c o u n t / ( v a r _ m v e r t ∗v ar _ m h o r ) ) ) ) ;}}}780/ ∗∗∗ Функция п р и с в о е н и я з н а ч е н и я текущей в е р с и и п р о го н а модели∗/void v er si o n ( ) {785R e s u l t S e t r s = q u e r y _ v e r s i o n . e x e c u t e ( ) ; / / и с п о л н е н и е за п р о саr s .
n e x t ( ) ; / / с д в и г на первую з а п и с ьi n t v = r s . g e t I n t ( " Version " ) +1;v a r _ v e r s i o n =v ;790 b o x _ v e r s i o n . s e t T e x t ( v , t r u e ) ;}795800805810/ ∗∗∗ Функция у д а л е н и я в с е х з а п и с е й и з базы данных дл я данной в е р с и и п р о го н а модели∗/void d el et e_ v e r s i o n ( ) {v a r _ d a t a b a s e . m o d i f y ( "DELETEv a r _ d a t a b a s e . m o d i f y ( "DELETEv a r _ d a t a b a s e .
m o d i f y ( "DELETEv a r _ d a t a b a s e . m o d i f y ( "DELETE}FROMFROMFROMFROMv e r s i o n WHERE v e r s i o n =" + I n t e g e r . t o S t r i n g ( v a r _ v e r s i o n ) ) ;c o o r d i n a t e s WHERE v e r s i o n = " + I n t e g e r . t o S t r i n g ( v a r _ v e r s i o n ) ) ;f u n c t i o n a l WHERE v e r s i o n = " + I n t e g e r . t o S t r i n g ( v a r _ v e r s i o n ) ) ;e x p l o s i o n WHERE v e r s i o n = " + I n t e g e r . t o S t r i n g ( v a r _ v e r s i o n ) ) ;/ ∗∗∗ Функция п о л н о й очистки базы данных∗/void d e l e t e ( ) {v a r _ d a t a b a s e .
m o d i f y ( "DELETE FROM v e r s i o n " ) ;v a r _ d a t a b a s e . m o d i f y ( "DELETE FROM c o o r d i n a t e s " ) ;v a r _ d a t a b a s e . m o d i f y ( "DELETE FROM f u n c t i o n a l " ) ;139v a r _ d a t a b a s e . m o d i f y ( "DELETE FROM e x p l o s i o n " ) ;}815/ ∗∗∗ Функция п р и с в о е н и я з н а ч е н и я максимальной площади го р и зо н т а л ь н о й п р о екц и и∗/v o i d maxArea ( ) {820R e s u l t S e t r s = q u er y _ m ax A r ea . e x e c u t e ( ) ; / / и с п о л н е н и е за п р о саr s .
n e x t ( ) ; / / с д в и г на первую з а п и с ьd o u b l e s = r s . g e t D o u b l e ( "MAX" ) ;v ar _ m ax A r ea= s ;}825/ / Областиp u b l i c ViewArea v i e w A r e a _ b a s e = new ViewArea ( t h i s , n u l l , 0 , 0 , ViewArea . TOP_LEFT , ViewArea .
NONE, 1 . 0 , 1 2 0 0 , 800 ) ;p u b l i c ViewArea v i e w A r e a _ g l o b a l _ d i s t r = new ViewArea ( t h i s , n u l l , 0 , −1650, ViewArea . TOP_LEFT , ViewArea . NONE, 1 . 0 , 8 5 0 , 650 ) ;@ O v er r i d e@ A n y Lo g i cI n t er n al Co d eg en A P I830p u b l i c i n t g e t V i e w A r e a s ( Map< S t r i n g , ViewArea > _ o u t p u t ) {i f ( _ o u t p u t != n u l l ) {_output . put ( " viewArea_base " , t h i s . viewArea_base ) ;_output . put ( " viewArea_global_distr" , t his .
viewArea_global_distr ) ;}835r e t u r n 2 + super . getViewAreas ( _output ) ;}840845850855860865870875880885890@ O v er r i d e@ A n y Lo g i cI n t er n al Co d eg en A P Ip u b l i c v o i d e x e c u t e S h a p e C o n t r o l A c t i o n ( i n t _ sh ap e , i n t i n d e x ) {switch ( _shape ) {case _button : {ShapeButton s e l f = t h i s . button ;d e l e t e _ v e r s i o n ( ) ; / / очистка базы данных дл я данной в е р с и и п р о го н аi f ( g e t S t a t e ( ) == IDLE )run ( ) ;/ / pause ( ) ;g e t P r e s e n t a t i o n ( ) . s e t P r e s e n t a b l e ( g e t E n g i n e ( ) .