From 049093c8800de99b72cd4a41d6b9729f6f74097a Mon Sep 17 00:00:00 2001 From: Omar JERIDI Date: Fri, 3 Feb 2023 22:17:34 +0100 Subject: [PATCH 1/2] update drag logic to shift items --- .../InterviewSelectorCell.java | 65 ++++++++++++++----- 1 file changed, 48 insertions(+), 17 deletions(-) diff --git a/src/main/java/components/interviewSelector/InterviewSelectorCell.java b/src/main/java/components/interviewSelector/InterviewSelectorCell.java index 709cb8e1..2400443e 100644 --- a/src/main/java/components/interviewSelector/InterviewSelectorCell.java +++ b/src/main/java/components/interviewSelector/InterviewSelectorCell.java @@ -3,6 +3,7 @@ import components.interviewSelector.appCommands.InterviewSelectorCommandFactory; import components.interviewSelector.controllers.InterviewSelectorCellController; import components.modelisationSpace.category.appCommands.RemoveConcreteCategoryCommand; +import components.schemaTree.Section; import javafx.application.Platform; import javafx.beans.property.ObjectProperty; import javafx.beans.property.SimpleObjectProperty; @@ -49,19 +50,19 @@ public void updateItem(Interview item, boolean empty) { FXMLLoader loader = new FXMLLoader(); loader.setLocation(getClass().getResource("/views/InterviewSelector/InterviewSelectorCell.fxml")); //Cell Controller - InterviewSelectorCellController newController = new InterviewSelectorCellController(item, this ,commandFactory); + InterviewSelectorCellController newController = new InterviewSelectorCellController(item, this, commandFactory); loader.setController(newController); controller = newController; //Mouse click event setOnMouseClicked(event -> { commandFactory.selectCurrentInterview(item, true).execute(); - selectedInterviewIndex=this.getListView().getItems().indexOf(item); + selectedInterviewIndex = this.getListView().getItems().indexOf(item); }); this.getListView().getStyleClass().add("list-cell"); - newController.updateColor(); +// newController.updateColor(); this.addDragAndDrop(newController); try { @@ -72,7 +73,8 @@ public void updateItem(Interview item, boolean empty) { } } } - private void addDragAndDrop(InterviewSelectorCellController newController){ + + private void addDragAndDrop(InterviewSelectorCellController newController) { this.setOnDragDetected(mouseEvent -> { selectedItem.set(this.getListView().getSelectionModel().getSelectedItem()); Dragboard db = this.startDragAndDrop(TransferMode.MOVE); @@ -84,14 +86,23 @@ private void addDragAndDrop(InterviewSelectorCellController newController){ }); this.setOnDragOver(event -> { - this.setStyle("-fx-opacity: 1;"); + boolean success = false; if (event.getGestureSource() != this && DragStore.getDraggable().getDataFormat() == Interview.format) { - this.setStyle("-fx-opacity: 0.5;"); - event.acceptTransferModes(TransferMode.COPY_OR_MOVE); + Section section = this.mouseIsDraggingOn(event.getY()); + if (section == Section.bottom) { + this.setStyle("-fx-background-color: #999;-fx-font-weight: bold;-fx-border-color: #777;-fx-border-width: 0 0 4;"); + success = true; + } else if (section == Section.top) { + this.setStyle("-fx-background-color: #999;-fx-font-weight: bold;-fx-border-color: #777;-fx-border-width: 4 0 0 ;"); + success = true; + } + if (success) { + event.acceptTransferModes(TransferMode.COPY_OR_MOVE); + } } event.consume(); - newController.updateColor(); +// newController.updateColor(); }); this.setOnDragDropped(event -> { Dragboard db = event.getDragboard(); @@ -100,17 +111,26 @@ private void addDragAndDrop(InterviewSelectorCellController newController){ ObservableList items = this.getListView().getItems(); int draggedIdx = items.indexOf(DragStore.getDraggable()); int thisIdx = items.indexOf(getItem()); - items.set(draggedIdx, getItem()); - items.set(thisIdx, DragStore.getDraggable()); - this.getListView().setItems(items); - if(selectedInterviewIndex==draggedIdx){ - this.getListView().getSelectionModel().select(thisIdx); - selectedInterviewIndex=thisIdx; - }else{ + int newPosition; + Section section = this.mouseIsDraggingOn(event.getY()); + if (section == Section.top && thisIdx != 0) { + newPosition = thisIdx - 1; + } else { + newPosition = thisIdx; + } +// items.set(draggedIdx, getItem()); +// items.set(thisIdx, DragStore.getDraggable()); +// this.getListView().setItems(items); + Interview selectedInterview = items.remove(draggedIdx); + items.add(newPosition, selectedInterview); + if (selectedInterviewIndex == draggedIdx) { + this.getListView().getSelectionModel().select(newPosition); + selectedInterviewIndex = newPosition; + } else { this.getListView().getSelectionModel().select(selectedInterviewIndex); } success = true; - newController.updateColor(); +// newController.updateColor(); } event.setDropCompleted(success); @@ -120,7 +140,8 @@ private void addDragAndDrop(InterviewSelectorCellController newController){ this.setOnDragExited(dragEvent -> { this.setStyle("-fx-opacity: 1;"); - newController.updateColor(); + this.getListView().getSelectionModel().select(selectedInterviewIndex); +// newController.updateColor(); }); this.setOnDragEntered(dragEvent -> { @@ -129,6 +150,16 @@ private void addDragAndDrop(InterviewSelectorCellController newController){ }); } + public Section mouseIsDraggingOn(double y) { + if (y < 10) { + return Section.top; + } else if (y > 20) { + return Section.bottom; + } else { + return Section.middle; + } + } + private void removeGraphics() { this.setGraphic(null); } From 601a8892fd5d2a28481303d0db1bb43108ab8205 Mon Sep 17 00:00:00 2001 From: Omar JERIDI Date: Sun, 5 Feb 2023 22:55:29 +0100 Subject: [PATCH 2/2] make color change into icons --- .../InterviewSelectorCellController.java | 6 +++--- src/main/resources/css/application.css | 19 ++++++++++++++---- .../resources/images/interview-7092be.png | Bin 0 -> 1060 bytes .../resources/images/interview-8671cd.png | Bin 0 -> 1038 bytes .../resources/images/interview-b5e61d.png | Bin 0 -> 1048 bytes .../resources/images/interview-b97a57.png | Bin 0 -> 1046 bytes .../resources/images/interview-f15252.png | Bin 0 -> 1016 bytes .../resources/images/interview-ffaec9.png | Bin 0 -> 973 bytes .../resources/images/interview-ffc90e.png | Bin 0 -> 981 bytes .../resources/images/interview-ffffff.png | Bin 0 -> 828 bytes 10 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 src/main/resources/images/interview-7092be.png create mode 100644 src/main/resources/images/interview-8671cd.png create mode 100644 src/main/resources/images/interview-b5e61d.png create mode 100644 src/main/resources/images/interview-b97a57.png create mode 100644 src/main/resources/images/interview-f15252.png create mode 100644 src/main/resources/images/interview-ffaec9.png create mode 100644 src/main/resources/images/interview-ffc90e.png create mode 100644 src/main/resources/images/interview-ffffff.png diff --git a/src/main/java/components/interviewSelector/controllers/InterviewSelectorCellController.java b/src/main/java/components/interviewSelector/controllers/InterviewSelectorCellController.java index 98ec2420..3a170306 100644 --- a/src/main/java/components/interviewSelector/controllers/InterviewSelectorCellController.java +++ b/src/main/java/components/interviewSelector/controllers/InterviewSelectorCellController.java @@ -32,14 +32,14 @@ public InterviewSelectorCellController(Interview interview, InterviewSelectorCel @Override public void initialize(URL url, ResourceBundle resourceBundle) { - pictureView.setImage(ResourceLoader.loadImage("category.png")); + pictureView.setImage(ResourceLoader.loadImage("interview-"+interview.getColor()+".png")); name.setText(interview.getTitle()); interview.titleProperty().addListener((observableValue, s, t1) -> name.setText(t1)); MenuItem deleteButton = new MenuItem(Configuration.langBundle.getString("delete")); MenuItem editButton = new MenuItem(Configuration.langBundle.getString("edit")); - updateColor(); +// updateColor(); //ADDING COLOR Menu changeColor = new Menu(Configuration.langBundle.getString("change_color")); @@ -109,7 +109,7 @@ public void initialize(URL url, ResourceBundle resourceBundle) { } public void updateColor() { - this.interviewSelectorCell.setStyle("-fx-background-color: #" + interview.getColor() + ";\n"+"-fx-text-fill: black;\n"+"-fx-text-inner-color:black;\n"); + this.pictureView.setImage(ResourceLoader.loadImage("interview-"+interview.getColor()+".png")); // this.interviewSelectorCell.setStyle("-fx-text-fill: black;\n"); } diff --git a/src/main/resources/css/application.css b/src/main/resources/css/application.css index 5bf07b15..5d928efa 100644 --- a/src/main/resources/css/application.css +++ b/src/main/resources/css/application.css @@ -12,10 +12,7 @@ /*#nameDisplayer{*/ /* -fx-text-fill: black;*/ /*}*/ -.list-cell:filled:selected:focused .text , .list-cell:filled:selected .text{ - -fx-text-fill: #360909; - -fx-font-weight: bold; -} + /*#name {*/ /* !*-fx-background-color: linear-gradient(#328BDB 0%, #207BCF 25%, #1973C9 75%, #0A65BF 100%);*!*/ /* -fx-text-fill: black;*/ @@ -24,6 +21,20 @@ /*}*/ +/* + --Interviews panel-- + */ +.list-cell:filled:selected:focused .text , .list-cell:filled:selected .text{ + /*-fx-text-fill: #360909;*/ + -fx-font-weight: bold; +} +/*.list-cell:filled:selected:focused , .list-cell:filled:selected {*/ +/*!*#697dd7;*!*/ +/* -fx-background-color: rgba(74, 95, 175, 0.78);*/ + +/*}*/ + + /* -------------------------------------- * -------------------------------------- * --------------SCROLLBAR--------------- diff --git a/src/main/resources/images/interview-7092be.png b/src/main/resources/images/interview-7092be.png new file mode 100644 index 0000000000000000000000000000000000000000..84bb81589af994b829501009609d1b45ea22f88e GIT binary patch literal 1060 zcmV+<1l#+GP)P7I-Y7gxxhu%d*p{1S#v9*zw z#v<&#-y{J~GJ7zsRb%$O356|apxS72=s`pX&U;f7auUIV2l3BIQBV{~L2cBPUz)_( z$!@YUvpbnFzXv}EOlIfzKJ$Hle#<_~YGC$||A|8B29$$&Sc=$IDBmd8>$IxX53IOW zz{_iav7_0m=y= zJ`2bX>L_Bw8TLEob-q~sXOlvHGjmgsC{^eNPS8PfpE~dA{GE3o=mW@BQ-FQ z_qH?p1InL42sZjV0^xnHZZ3cY0m#3xH$+kihd`11Z(CLYNGf540!mNtd5YxW>~-BN zMGgU!#|Z%ZWwqG~cyW~?IT;LxU{26`m`#Rde|Ka6fO0c|BrjVjn1%o(cV?bjbp5Yp zt|{Vydg_Rf1o=vQ1@I#)C7TY1IgT#mpVdSTn3YhR)%)Anx)l6x=tp7ziuiC607ci^ zmTLe&{=Ost6w1+jE5P+S69FK(o@)Tzm8&ZN`FVT=@SENt-k4he+7!xoLKVz8W8?|| zAonK$pv&Qc=khEAu+iI+Pyzb0zt1gz!vF2&vxER{=@VKm0cZo_GtDHt`L5e8@3Ha< zK%wkhAkHV%5Pw!I%T_=>u1IdwQ9*xh0XWX+%9^9)902l1_#R#Ul!L zCflQoS{bm^0EATVA`5RnbpQv3{53$b-zM)1DW}beW^PC4#Grs6hP_zk_<>*0?IF$0FZSv0MIC) zWI}*U4yc+WNTv!@v)>6~^BrDh%Ajg>C)i|%ml*&(E$jrNbaC%IB`{K?dtk25{)w0M#$%O}VGzgH_(&96wGk|Q6L_g)U>c2-IB-s@HNrn=6A!gAmfVF7%L(3ZN2?zN+;>JM_s3qhf*_bkQ>UoD_A z00{VFXaFcZ#U(%}+bh-uP`B?9|-{R{Zs?!Y2uj* zm5SO%|mVfHp!Nh@=BPXN*(E_3^ z3gttzEZ`^lgqBJG+6d+1Lszg~0_cR?rf~s)eCvXHD<~st6v#0J{Ltrplv)6` z{a}{&Xz8=M=Zmk=?N5R1AN|txdRO!Pg_R9EMgZFMuFgMr`QFhwxZIjViv_^pc3!N5 z^;!L1YmzM%0NM!nN@4Bu4{8})Y5gw%9N_wb|096(SqZS%0C=;2kUuA3^; z0k_8)eBOB^K^Y+N{*ny%i$dv41c0QQ0e~h0vZe&kXn<=(5KR|w6TcIr06Vx0j?22{C~SZkKd1_y+ay$R$)p4u>w{c7GiKpZgaB@VnzUFnhu`paKAVbFycFgH5K%nbPwKLm-0W z0g!qJz7TkTT2*_JD+bqTuU9_Q^tfH=Nv>F34^DDJpqd}GUt;dl_^A?IXaE2J07*qo IM6N<$f`DJx#sB~S literal 0 HcmV?d00001 diff --git a/src/main/resources/images/interview-b5e61d.png b/src/main/resources/images/interview-b5e61d.png new file mode 100644 index 0000000000000000000000000000000000000000..e537cbcea3459963879a0a9c6c3bad0d91b36e21 GIT binary patch literal 1048 zcmV+z1n2vSP))H^1XXsYUGK7<7|3hlrg|GvR_q%M9-gv(w{wYL#l# z%Cc#L7W`QYdf9bg68P%EovodbgC~YR+8;o3oERUFKwsS%p@S>WcttaQt_22C?+j|3 zr&g1|*8y$#WYG(>z%d_ylc5&Fg~C?T27A zVNqe!j0Ioq7Z%(ohBz7s^I_w@7ODT=W|jS^K9dP^<-l;JK>#=v4E@;ueVXCUv-eE16d8aPyw@-QhM!c6 zt$eF{EeW3WmxEsu%rnfEWEI|t41ff0#>jxHDgiSPG{c{>-|ISW&OSfGmtolv0RUW! zQI~gBLT1V#EYMomy86#5wNT5HK4hY_@c`i>i05|t) zOaNZF3I{U_plsSrhWjza@U}UjWfFif68x?n!CUe(4DYJU0$_Z*M(|T3F1}K(I%M{Z0}!~}_F3R)Q)Ax* z&nG3uBasN|c>pr*jNe8cpr#g2awX$1X;!|W>G9*upX5r+&ETY&4~kUtGxijz#)2W3 S@ocXE0000xSO>j~Z9LxGr3}+PM zMa_7>4u}iopwKa=^P_`bu2qavGY=B(7CE#a2o{YpY*h?5t0Bx835w*mRt{;Ab1Mg% zK2!`p&4vK`8$O^J4_UO1)Qu1y`y;EfFAKv`F0MYM(8sS@Spi0UZ~Nt7+sD=Wwjmfz zXef-DuxN#UvG(%>;^@ml)uz5~ljuD$r)-D%n@E^R2cs3S04T!A*qb9bW`CDC{q|M> z_|1l(e6P!bbhoY+=w<*Io+SV^AU7`q{$BqETsgZ&1Rk;OVOf!xrOM}`wMy>!ThQkSU;9=8yd8Ppne4b1P zOe)B4atoj|-EP9ugb@BRH?&*=Fs2EAosZx((SmM~R{$a7jwa4chJ)UQQNqod@swt~ zT?+^f=N7D(@z~h zIgp=dg6|Z|&qPKnRRCEu2Y_4z6kQ6i(}0Q-L3UN3(v~tf=Hog=cqit|keF|g;H6?b zo{2K3eC$utd8^f)$V>$2w0}uP_^)O-nh5||HwS=R1QcBgu+xBw6G3)WppyAcP(|qQ zGE)Xsi#x&jc6gZqFxJXWFhYly830)~2Y_4z6kQ6i(}0Q-L4I$m0Mz}l^sFHbl0EMv zfO1giu)EZdy)SBqG-QwY`<(+&4hkKb@%;ad7CavBlON6d3-oLNV+%bC9BFEd@oe?| zL^14(L{QrRa=sMfFOdhR!?sUyrLo|#Ir&)A<3Z~uxl&wSpP3Jel=E-wKWF$%RF$Ko QvH$=807*qoM6N<$g4X!c?*IS* literal 0 HcmV?d00001 diff --git a/src/main/resources/images/interview-f15252.png b/src/main/resources/images/interview-f15252.png new file mode 100644 index 0000000000000000000000000000000000000000..85ccb7fd1b394723ed0f551efbde5e57d10360af GIT binary patch literal 1016 zcmV}nCMHI&;CV+`(fhH0KBq>PcBCUm@D3)@D`Ttid zMa1S12tx_M5>@0Y;>1b#Y8@#l@?l7dRA~@W3XmuxQKX3Ys1gCP<$L2pB4F^KA<1QZ zx0k!!y<6|v^Q0%8bi23ne)Hac-mGqv>R=LvFAF&(z{h291AHjJkvcG9mD;A#+DaHc zC*(Cl+OoQkcZK}CF+To6;@}PW(?$o-HwPL9nC>|vq;=+j8$zBjhNQOH{>oM*B;)qLcXI)Xm)01NXUZ*xY-8bahXup`rXLIU#pUv9Ua{+z!xpq z@KMJb1UMD}a3U^4TsNH2~-P;GhEn*$QQx|`)_s=G{xmV?uZQ~-or%`mXJ7MPO*R{zUU2m*{X0RVSm zwZL@C0N{@d1DbCufgqUZ+bRIe$7JZy=<|g9?csN>SxS=uOBn!MQ3EzRHukgt=c45h z)dV+&NERGU1K@UA00Mlgaxe$M06#aMt#ze2e&Ex%>_`IOyVL;4MU|61D2KK{yTzw^ z(12zNrSS&vd=BwaGlLMW zEt4;n7JxG$zt5NjZF`JT0WjojCLJIbyY9=244_WFnkfUE2f^E=1z_)YS|(!|{OERQ zr3B#2ke7N9ye{9rp~?ziMeEnQ1h?7-K6uwQ^r1h^G*-E3(A*f4x5y0vTr09F%7q|tr!IldEX9oDH zW%mDV0DIL|0Z<13?*p{nZGc}=y$ng|0{kt&sX{D+2AIw>_{f+V#mNBX`%f|f{xZPH zLI5bbc>wSkQ1c}~uL0JJApI&}3*QM!f)1}R%b@9ZC)i_$R~!Jkf1O~G4zDl(if$eN zd@V9ee5U6gFzW$)v(aaP6P+3(&$jJPfDaN8G*JL0cL6RYK0s{-eUd95Uv@K}>h!qn m_erii-5s3Nx{|2oAJ~7*rkAS9w(WNS0000#+ zZ+2Pr!4to$djS4<9>nbxD+11ue*z`vp|~^rE?rP^8;U;{QA7{A(+yJxpUkcT@#y$P zDc)y9&~Os7k(A9)Jm`Qhl@g$2zvbjdM#K&2^jwf!wn0eBvCNv05RurPsOoq(tqu)P4(w*<|tdGUQmKP z9lBfskP-I}$DMXHacga>Ki{%JAlYI${;_B+KzRlHa6d8eV$f{>I1xFb%{Rk7?joV?+ypk`8YGc&O~UJk$V^ zyupV)eQ$ID^cC98?;g|Ot+_&rBmmQ(_+~`~Z>r--*=a-=!1gjDJc4_&7Ae^X#TP*G zs>pdA(FKrrIp4OlbozD2HOc-)C^8l#RD3;;E- zq7bZ8{yj#WEf4^vLGhhQ)7w8#Zk;h>08plBQngPQA+W#z*i=CLD-5F_Jb*-cF^CUB zJzsBx!~z8nM$-UDD9PpQ9{2Rn)LIEJ`rU8&vKuo8A(lr3O2r4}bAOf8rSKQ%+W*UV5onSs%0FZ@10yhy18*uNpn>>KW6^{-zRIrfzB9#00000NkvXXu0mjfEK{Ta literal 0 HcmV?d00001 diff --git a/src/main/resources/images/interview-ffc90e.png b/src/main/resources/images/interview-ffc90e.png new file mode 100644 index 0000000000000000000000000000000000000000..d47428533a511923fdac1c40569322c96d9f3054 GIT binary patch literal 981 zcmV;`11kK9P)~?6~=nig+NU7C`uF5rmWFKOlVCapT$23Zc&G9h%zF zujac(NmE-*SAY!d!r;oKCF*iOps}*X2%)6o#-!`IFLR{!qVL*Y7t_=9)gEQ1)N@KG zoDMzS00@u!c(Cpw0Bv=3e@%A^AP8@FT>ntg3ox?+zWY!>uWJfqskL@10QI^RN+$|_ zPxy2GTG~o@0Ki{-jL3ae=fJR94B_hq)4|~h_A}(KWq6Ml0Iz+>@@c&R`98q83is=x!LB;+LrV#@=lzib_~0C2_^fDCVqHUOam zz5obch&F($lfLU*{h-pAijHs;>IDd4G?P! zG+%=7s}d^ciY|bcYEi+~(w#S5pBZRsf$*`(KV2U}FI!dHvI7KQhuzhcDgF<#v|i0( z1Os4@SLcd#OS@0aas&dv4rsbpWPE>-jcru_4S=+jD0F-3S0RYN02HV|^UpAhe((TN z&2eZxis!sZg(Lz65XLY7#3&$Xrhpg^fH6Tas{rb=8x&dxq4(bY4Dpzne?$0uD3(Fw zUXlo~_^D?a3y%VHz;BXi{sm3vLIEJ`VE~9xK+;SBF&+S8f?`$ygufHim3MfdSq4$_ zPO!2LFFXLGhMiy)9bRYvggp!ZF$zeUDImrJU`$Z{-<uyjp>G7%P!K@^6+#7Cmos*PZw#zLzt>_tRD(N;98qWCC% zELaI!_>3CUuAqhQSfsKM!9u}Ou&@xLm7)-dNCY)LA_KQLOy=(Hy|XjUWaozi3p023 z{@*=wX6CX3`C1Je22Mp1$ALXS1?a&-OMx+9CgS)2Tm_bwF+U!FflkE~P%DxVW7-!y z0WJX-B8Xw&9`Mls;x5qN%KRGOuej(SajF;C0=zIlXqpL!MCV7uulc};2H|A03r>rU z=W;TnR-!uZ1Lhf?QnkY~zz$%s;l4+-nvh!<>!PFjtjnf2DhN`09TmMV*;DS(GC>Z9 z;j#dJS=^W^Qc_jN)&GtLVXJ6+pH~a&EdYG8xS@t&2n=>`251;E^n~_%pF~@w41muT z07h}IKH$1G9Ar%x6>Yo90C;Ty;3c;7zteixPm+?KTTuv-aIY3}9yq zb86eX4%h@-23{HZs9F*&fQ8!DQjeR4Yt;02G<)g#5LiLP0LWH#CiB06wftXs0kA4F zJ7akBN;d#dy04l41FWZu093SU|9~*$4S>voAAvl5?*NtnM}Q54Bd-8LR02TC0MZa3 z)c{fvB+UXinFa@dca|?jipDf>F_dYr=Gnabb3-s0Fz(s>PvCqg076#+K*|8p5Fph6 zQV}H00tCMjoG!4!W3H|Qr(y#z(7}~pkriGr076#+K*|8p5Fph6QW2y}XMsk}pQYs? z4RuywmgWM0er=Vy&2UI#F#9}9u>(-%ZwL>Qz@j2wP!|_J4&W?sk+^2qpByVnu