From 52982fc6a2f36306181d1d246f7e22bb8bd46cc5 Mon Sep 17 00:00:00 2001 From: bhakti0509 <119113248+bhakti0509@users.noreply.github.com> Date: Fri, 19 Jul 2024 11:41:01 +0530 Subject: [PATCH 1/4] Added about us page --- .../com/trekmate/view/settings/AboutUs.java | 134 ++++++++++++++++++ .../view/settings/TermsAndConditions.java | 86 +++++++++++ src/main/resources/images/Pastel2.jpg | Bin 0 -> 9049 bytes src/main/resources/images/aboutus1.jpg | Bin 0 -> 2041 bytes src/main/resources/images/facebook.png | Bin 0 -> 889 bytes src/main/resources/images/instagram.png | Bin 0 -> 43630 bytes src/main/resources/images/linkedin.png | Bin 0 -> 902 bytes 7 files changed, 220 insertions(+) create mode 100644 src/main/java/com/trekmate/view/settings/AboutUs.java create mode 100644 src/main/java/com/trekmate/view/settings/TermsAndConditions.java create mode 100644 src/main/resources/images/Pastel2.jpg create mode 100644 src/main/resources/images/aboutus1.jpg create mode 100644 src/main/resources/images/facebook.png create mode 100644 src/main/resources/images/instagram.png create mode 100644 src/main/resources/images/linkedin.png diff --git a/src/main/java/com/trekmate/view/settings/AboutUs.java b/src/main/java/com/trekmate/view/settings/AboutUs.java new file mode 100644 index 0000000..f5a0fcb --- /dev/null +++ b/src/main/java/com/trekmate/view/settings/AboutUs.java @@ -0,0 +1,134 @@ +package com.trekmate.view.settings; + +import com.trekmate.manager.SceneManager; +import com.trekmate.model.User; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.ScrollPane; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.*; +import javafx.scene.paint.Color; +import javafx.scene.text.Font; +import javafx.scene.text.FontWeight; +import javafx.stage.Screen; + +public class AboutUs { + + private SceneManager sceneManager; + + public AboutUs(SceneManager sceneManager) { + this.sceneManager = sceneManager; + } + + public Scene createScene() { + // Fetch user details from session (mocking user details for About Us page) + User user = new User(); + user.setFirstName("Bug"); + user.setLastName("Optimizers"); + user.setEmail("treakmate@gmail.com"); + + // Creating labels with information + Label welcomeLabel = new Label("Welcome to TrekMate!"); + welcomeLabel.setFont(Font.font("Arial", FontWeight.BOLD, 24)); + welcomeLabel.setTextFill(Color.YELLOW); + + Label missionLabel = new Label("About Our App :"); + missionLabel.setFont(Font.font("Arial", FontWeight.BOLD, 18)); + missionLabel.setTextFill(Color.WHITE); + + Label missionText = new Label("At TrekMate, we are passionate about adventure and connecting people with unforgettable trekking experiences.\n Whether you're a seasoned trekker or new to the trail, TrekMate is here to guide you every step of the way.\nOur mission is to simplify your trekking journey by providing detailed information on various trekking routes, insightful tips on gear\n and preparation, and a community of fellow adventurers to share experiences with.\n With TrekMate, embark on journeys that take you through breathtaking landscapes, discover hidden trails, and forge lasting memories."); + missionText.setFont(Font.font(17)); + missionText.setTextFill(Color.WHITE); + + // About Us section + Label aboutLabel = new Label("About Us"); + aboutLabel.setFont(Font.font("Arial", FontWeight.BOLD, 20)); + aboutLabel.setTextFill(Color.WHITE); + + Label groupNameLabel = new Label("Group Name: " + user.getFirstName() + " " + user.getLastName()); + groupNameLabel.setFont(Font.font("Arial", FontWeight.BOLD, 15)); + groupNameLabel.setTextFill(Color.WHITE); + + Label membersLabel = new Label("Group Members:\n- Bhakti Satpute\n- Sarita Disale\n- Priyanka "); + membersLabel.setFont(Font.font(20)); + membersLabel.setTextFill(Color.WHITE); + + Label conceptsLabel = new Label("Concepts Used:\n- Inheritance\n- Polymorphism\n- Abstraction\n- Interface\n- Exception Handling\n- JavaFX\n- Maven\n- MVC Pattern\n- Firestore "); + conceptsLabel.setFont(Font.font(17)); + conceptsLabel.setTextFill(Color.WHITE); + + // Create images for social media icons (mocking images) + Image instagramIcon = new Image("/images/logo.png"); + ImageView instagramView = new ImageView(instagramIcon); + instagramView.setFitWidth(70); + instagramView.setPreserveRatio(true); + + Image linkedinIcon = new Image("/images/logo.png"); + ImageView linkedinView = new ImageView(linkedinIcon); + linkedinView.setFitWidth(70); + linkedinView.setPreserveRatio(true); + + Image facebookIcon = new Image("/images/logo.png"); + ImageView facebookView = new ImageView(facebookIcon); + facebookView.setFitWidth(70); + facebookView.setPreserveRatio(true); + + // Create an HBox for social media icons + HBox socialMediaBox = new HBox(10); + socialMediaBox.getChildren().addAll(instagramView, linkedinView, facebookView); + socialMediaBox.setAlignment(Pos.CENTER); + + // Create a VBox to hold the labels + VBox vbox = new VBox(20); + vbox.setPadding(new Insets(20)); + vbox.getChildren().addAll( + welcomeLabel, missionLabel, missionText, aboutLabel, + groupNameLabel, membersLabel, conceptsLabel, socialMediaBox + ); + + // Create the back button + Button backButton = new Button(">>>"); + backButton.setOnAction(event -> sceneManager.switchTo("SettingsPage")); + backButton.setStyle("-fx-background-color: #ff0000; -fx-text-fill: white; -fx-font-weight: bold;"); + + // Create an AnchorPane to position the back button in the bottom right corner + AnchorPane anchorPane = new AnchorPane(); + AnchorPane.setBottomAnchor(backButton, 20.0); + AnchorPane.setRightAnchor(backButton, 20.0); + anchorPane.getChildren().add(backButton); + + // Create the main layout + VBox mainLayout = new VBox(20); + mainLayout.setAlignment(Pos.CENTER); + mainLayout.getChildren().addAll(vbox, anchorPane); + mainLayout.setPadding(new Insets(20)); + mainLayout.setStyle("-fx-background-color: rgba(0, 0, 0, 0.7); -fx-border-color: black;"); // Semi-transparent black background + mainLayout.setMinHeight(Screen.getPrimary().getBounds().getHeight()); + mainLayout.setMinWidth(Screen.getPrimary().getBounds().getWidth()); + + // Set background image for the main layout + Image backgroundImage = new Image("/images/Pastel2.jpg"); + BackgroundImage background = new BackgroundImage( + backgroundImage, + BackgroundRepeat.NO_REPEAT, + BackgroundRepeat.NO_REPEAT, + BackgroundPosition.CENTER, + new BackgroundSize(BackgroundSize.AUTO, BackgroundSize.AUTO, false, false, true, true) + ); + mainLayout.setBackground(new Background(background)); + + // Wrap the main layout in a ScrollPane + ScrollPane scrollPane = new ScrollPane(mainLayout); + scrollPane.setFitToWidth(true); + scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.AS_NEEDED); + scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); + + // Create the scene with primary screen bounds + Scene aboutUsScene = new Scene(scrollPane, Screen.getPrimary().getBounds().getWidth(), Screen.getPrimary().getBounds().getHeight()); + return aboutUsScene; + } +} diff --git a/src/main/java/com/trekmate/view/settings/TermsAndConditions.java b/src/main/java/com/trekmate/view/settings/TermsAndConditions.java new file mode 100644 index 0000000..26fa954 --- /dev/null +++ b/src/main/java/com/trekmate/view/settings/TermsAndConditions.java @@ -0,0 +1,86 @@ +package com.trekmate.view.settings; + +import com.trekmate.manager.SceneManager; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.layout.*; +import javafx.scene.web.WebView; +import javafx.scene.control.Button; +import javafx.scene.input.MouseEvent; + + +public class TermsAndConditions { + + private SceneManager sceneManager; + + public TermsAndConditions(SceneManager sceneManager) { + this.sceneManager = sceneManager; + } + + public Scene createScene() { + // Create a WebView to display the terms and conditions + WebView termsWebView = new WebView(); + termsWebView.getEngine().loadContent(getTermsAndConditionsHtml()); + termsWebView.setStyle("-fx-background-color: rgba(255, 255, 255, 0.8);"); + + // Create a VBox for the content + VBox contentBox = new VBox(10, termsWebView, createBackButton()); + contentBox.setStyle("-fx-background-color: #f0f0f0; -fx-padding: 20px;"); + + // Create the Scene + Scene scene = new Scene(contentBox, 1280, 800); + return scene; + } + + private String getTermsAndConditionsHtml() { + return "" + + "

Terms and Conditions

" + + "

Last updated: [17/7/2024]

" + + "

Welcome to TrekMate!

" + + "

These terms and conditions outline the rules and regulations for the use of TrekMate, " + + "

" + + "

By accessing this app, we assume you accept these terms and conditions. " + + "Do not continue to use TrekMate if you do not agree to take all of the terms and conditions stated on this page.

" + + "

1. Introduction

" + + "

1.1 These terms and conditions govern your use of TrekMate.

" + + "

1.2 By using this app, you agree to these terms and conditions in full. " + + "If you disagree with these terms and conditions or any part of these terms and conditions, you must not use this app.

" + + "

2. Intellectual Property Rights

" + + "

2.1 Unless otherwise stated, TrekMate and/or its licensors own the intellectual property rights for all material on TrekMate. All intellectual property rights are reserved.

" + + "

2.2 You may access this from TrekMate for your own personal use subject to restrictions set in these terms and conditions.

" + + "

3. User Responsibilities

" + + "

3.1 You must not:

" + + "" + + "

3.2 You must not use TrekMate in any way that causes, or may cause, damage to the app or impairment of the availability or accessibility of TrekMate.

" + + "

4. Privacy Policy

" + + "

4.1 Your privacy is important to us. Please read our Privacy Policy for details on how we collect, use, and protect your information.

" + + "

5. Limitation of Liability

" + + "

5.1 TrekMate will not be liable to you in relation to the contents of, or use of, or otherwise in connection with, this app:

" + + "" + + "

6. Changes to Terms and Conditions

" + + "

6.1 We may revise these terms and conditions from time to time. Revised terms and conditions will apply to the use of this app from the date of the publication of the revised terms and conditions on this app.

" + + ""; +} + + +private Button createBackButton() { + Button backButton = new Button("> > >"); + backButton.setStyle("-fx-background-color: #CCCCCC;"); // Set initial color + backButton.setOnMousePressed(e -> backButton.setStyle("-fx-background-color: #AAAAAA;")); // Darker color when pressed + backButton.setOnMouseReleased(e -> backButton.setStyle("-fx-background-color: #CCCCCC;")); // Restore color when released + backButton.setOnAction(e -> handleBack()); + return backButton; +} +private void handleBack() { + System.out.println("Back button clicked. Navigating back to SettingsPage..."); + sceneManager.switchTo("SettingsPage"); +} +} diff --git a/src/main/resources/images/Pastel2.jpg b/src/main/resources/images/Pastel2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..db6442ea8ea632e45218af59a555c7d17c9d85fc GIT binary patch literal 9049 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 F^j}cagGB%U literal 0 HcmV?d00001 diff --git a/src/main/resources/images/aboutus1.jpg b/src/main/resources/images/aboutus1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a396daaf79b988b410f79fe8bad53805a48ba396 GIT binary patch literal 2041 zcmZ8g3s_Rw7Cy&gfF$aXAW`vI-UKp5B8nb_!dUpq)KRCILGt-YO`74YEKw;RVM4w& z^KEK0DTxhfg$XfzHPXq-6)hsF_LB9Q>&30BJ(4p!Dn$ppNk$8wLA zR5!O3i|svGYiX+(o-0;?SS%Jx%+H2^>$Lcl)+LdHhG0yJWCwE!T*3V=onjG-@f&1|t0b^8k`}3@}CF8o>|@YyjRSj$!#jke$~f zQNdnadcTRC8Yj8kO|a+B5MUX2K=56jj<$`ofU z5wjPq{J~jkiTR>qnzZEJPUW~ROF4c75i{&KkG>r+w+hQDT}x!SPrxgrdzU3e_HvUY zhZ&LS1xHyp-6;2Ez6{mq*R+z(j9SpdXggZUtTv`aJ_&3qf5Hb@ ziC|K6AA#B;qU0aynkm?dbS#m^b1|5*Bf)5g41-K zPS5i&_1#vXu*#6v`QRMtT%@K~oW<8D1in?j`^^?Pa3{SQzyYSMako&}?gN2$+(vx1u7p1_t!*JS-I5;tz;<~HIQ{YX%$kq&Aj{Jup0b#{g-+T9PSvI_dmBz>AQ zN^)5uPS<)ZwJP)gxYBso`{7X`3PnT(N0!Bm76*1f;=U~kTcKD^g+llDcqcrTToQspY8fpv+0<_c~BvkbzU4b=JMve`lw)Cw%H)m@exA_;F^fOt(kM-kx4~wlH6e~7LtgLL!v)vvm z#(|l_QNDCw>bVRRT`o3NO(q`-B6FLq|Jg?28(D;_S}doe%J$~Y(ATO~=7eAM%-r#C zSx;YeDjoY%5#)lV$s>am3m|`w=SYF{2j#Eh^)Hb2s zYU^;|?9KZ*p_~s!`NB5=Q-4JB?7F9_M(hIqn7$ac=mT0!FaT`($8!%zX>~JqKNZe> zda&H#;F|T;ukHw5=BXsZm!40D9l20BmHBey)w8>giwkzfA2^u*{Ivl9FTGQ)?|2qg z^0CMx#q+~lL$%v0NndF4>(_IAjONvMAEX7;G~c*%pz+*v)n)3xIz)0>p8-fyyU+e| z_lJmkZ__ZUXQBFUaF4&Y-!MF#^NjxKKu55IFF2O>NG&cTE(yOjYjbaIJbJQt!f0uLMWSUP9r$A$&P_kY}WZiBgRmiAYf*L}>`{xg04 zPbB5v#DDyB>SMV)>7wLbc<1xUotiVX9|}^~t!8t~bqW8uI(%cuZ}RkogXd%3oeq9~ zh7^6>|L*X|gvr+~FYK=HPB;E}?n1)D?|->{TQl1@loqU+`)C0A%!R7%#iNV4v zGnw`#@jG0)+BGwms-_CGC8bNYCSNoF>a>%yB8ukyrTnU@4%wZ^kit`DU9vy<2@WSY zHZ{SQM-N|C>k_-Sk&o{}4<4}HMV?w`#xi?qchVNUhu!24ov$2uD1C8N!kS>W?gu8! yw|9PK$9Iv(*XeelwZGnAnZ2;r0~73d5tt?IHDiHOc1KxYtN5W5ZM)0fF#2E8b3q&c literal 0 HcmV?d00001 diff --git a/src/main/resources/images/facebook.png b/src/main/resources/images/facebook.png new file mode 100644 index 0000000000000000000000000000000000000000..2a7ae3edd0cf53539677732a9e17166263dd6917 GIT binary patch literal 889 zcmV-<1BU#GP)DvUBWT3n$*cc>KcYvY-n}RS ze}IXJ9`uGJq%%bf2@$G^2QP-i6ER+tihv~kNDTYlwzbd#71FY_W2RONZh@Vh-7Sax zChyeE?DsSC=FRM@VMK})DUwud*gQiR^ihUM!f=Li%u|k=^~e*3A8WsHvsXTA90(AD6iUHhUIH6~*|zYF-xV!#CMm;ZW#bMITp|qb$T7n)AIFn~V@lije?b^d z8wofOsCOENOO!*=Z}aqDTCGtI7XvX*64njM!4Awk{~KTvZe0&z=0h-#+Ypq&1%KQR znH_(YR?k%1h$T8Fvf}K^pQ7t|R&E z*9|QI%5Yp^1@M#3%N7bwfX8#c^j3glN@WF>{011%1fU#pDgfn!2Y{tO0Pan%iF~QD zBeohG0i~^~0|9WILXTXYxQ$d5LbQ)q{-==2Ce{J?QQQh_6DPv}n1oV5 zWmL9DLI4<0*w}>QZPx%XZg#7Ds2mwh?}#re&ML$f)*a8aK5?7>C}J$#3Bzkf5R&aaH(ff<01Q@rpLvHE zbjpsI-vC5z*depS2t~3w#j$6%YquHzI P00000NkvXXu0mjf#+H|p literal 0 HcmV?d00001 diff --git a/src/main/resources/images/instagram.png b/src/main/resources/images/instagram.png new file mode 100644 index 0000000000000000000000000000000000000000..e7e3d2d0f4fac627e106ab1d102dd2342c39e609 GIT binary patch literal 43630 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/images/linkedin.png b/src/main/resources/images/linkedin.png new file mode 100644 index 0000000000000000000000000000000000000000..e6a9672702a371d4a9f768b1cc3915ec96b87469 GIT binary patch literal 902 zcmV;119|+3P)jtTDY_dzQrG**uA(Gp(wg{S)#?v7%OpQ zyVjPp^dBf%!NAEHc4#i$eEjjq~_+%&7FG_As-x=%!JAJ z&73)N<^-UNF1qlJz9)Nur+a~61ekaR4CjH1HQ?fR+17xgD33)ToVfr|xd+;gdw2>s z4g(We;6l2zW#Bjj;nd0CiQoNl1UQZZ!(t1>>y2R%n25pcuZM#n&%|}$nDb2hUm>dy z#%ul&zd5@fxR@|bobNUqQ@>>t(b@|QQN8eu_J$F0_Bg5qWrm8RBiu6V6L?gOL5+A z(ojN?uOPc#uy(>fR~mIko^HoxmsBVrzi$+(0;uh;0Hn+Aw42o*ZaQJvg~)wq^)HX7 zeLe?*Txm#;JSABwPjQ$qutO{=Zj@C?qx0&gdmSeWeUi}sq28#k*%(Vp7?_a|`dIEu zSf8n1S43ExcNReDuG2*Qak(4RXFoP2&qSx?==-evmdnfH_KsX$FUYZYR-Sz@t-pgz zaE%=h&rJ)s_-IaU=C@@dY~@Sx(nv~A1jDBq0#KM1KqQ-CD_>GOq~T6!9RWGh0(20Y z%35clc_doVIRi!00?6mXlMC|r{iHJXVnOxQVlkK3xJ$6m76C-qT3xhkU`F-TqO|kJ zicX#d_~1gv29ss-RU-1}VA6gLPcG!cA#O-a_j}y+AvPaIjR{~nVbqt4%-9YvX8}}n z>R17IPA{2bVyW{4;G%vtk5bo86TtAH9(kPyP2d8s0Fk*9;0ja`=oA4AAA@V$5{GOb z^(v>2*BkXYjp@$8>&UORUN@y$rBg)m-RAqi6R1|%Hu5+Eo Date: Sat, 20 Jul 2024 08:37:14 +0530 Subject: [PATCH 2/4] added UI --- .../com/trekmate/manager/BookingManager.java | 0 .../com/trekmate/manager/SceneManager.java | 37 +++++- .../com/trekmate/view/homePage/HomePage.java | 6 +- .../com/trekmate/view/settings/AboutUs.java | 12 +- .../view/settings/ChangePassword.java | 4 +- .../trekmate/view/settings/SettingsPage.java | 4 +- .../view/settings/TermsAndConditions.java | 35 +++--- .../com/trekmate/view/trek/MyBooking.java | 114 ++++++++++++++++++ 8 files changed, 178 insertions(+), 34 deletions(-) create mode 100644 src/main/java/com/trekmate/manager/BookingManager.java create mode 100644 src/main/java/com/trekmate/view/trek/MyBooking.java diff --git a/src/main/java/com/trekmate/manager/BookingManager.java b/src/main/java/com/trekmate/manager/BookingManager.java new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/com/trekmate/manager/SceneManager.java b/src/main/java/com/trekmate/manager/SceneManager.java index 818d548..d02229c 100644 --- a/src/main/java/com/trekmate/manager/SceneManager.java +++ b/src/main/java/com/trekmate/manager/SceneManager.java @@ -9,10 +9,16 @@ import com.trekmate.view.auth.SignUpPage; import com.trekmate.view.homePage.HomePage; import com.trekmate.view.leaderboard.LeaderboardPage; +import com.trekmate.view.settings.AboutUs; + import com.trekmate.view.settings.ChangePassword; + import com.trekmate.view.settings.ProfilePage; import com.trekmate.view.settings.SettingsPage; + +import com.trekmate.view.settings.TermsAndConditions; import com.trekmate.view.trek.AddTrekPage; +import com.trekmate.view.trek.MyBooking; public class SceneManager { @@ -29,8 +35,8 @@ public void addScene(String name, Scene scene) { scenes.put(name, scene); } - public void switchTo(String name) { - Scene scene = scenes.get(name); + public void switchTo(String sceneName) { + Scene scene = scenes.get(sceneName); if (scene != null) { primaryStage.setScene(scene); primaryStage.show(); @@ -55,22 +61,45 @@ public void addOrUpdateScenes(Stage primaryStage) { ChangePassword changePassword = new ChangePassword(this); Scene changePasswordScene = changePassword.createScene(); + AboutUs aboutus = new AboutUs(this); + Scene aboutusScene = aboutus.createScene(); + + TermsAndConditions terms = new TermsAndConditions(this); + Scene termScene = terms.createScene(); + ProfilePage profilePage = new ProfilePage(this); Scene profileScene = profilePage.createScene(); AddTrekPage addTrekPage = new AddTrekPage(this); Scene addTrekScene = addTrekPage.createScene(); - LeaderboardPage leaderboardPage = new LeaderboardPage(this); - Scene leaderboardScene = leaderboardPage.createScene(); + LeaderboardPage leaderboard = new LeaderboardPage(this); + Scene leaderboardScene = leaderboard.createScene(); + + MyBooking myBookingPage = new MyBooking(this); + Scene myBookingScene = myBookingPage.getScene(); + + // Add scenes to the map this.addScene("SignInPage", signInScene); this.addScene("SignUpPage", signUpScene); this.addScene("HomePage", homeScene); this.addScene("SettingsPage", settingsScene); this.addScene("ChangePassword", changePasswordScene); + this.addScene("AboutUs", aboutusScene); // Add Aboutus scene to SceneManager this.addScene("ProfilePage", profileScene); this.addScene("AddTrekPage", addTrekScene); this.addScene("LeaderboardPage", leaderboardScene); + this.addScene("TermsAndConditions", termScene); + this.addScene("MyBooking", myBookingScene); + + } + + public void refreshMyBookingsPage() { + MyBooking myBookingPage = new MyBooking(this); + Scene myBookingScene = myBookingPage.getScene(); + this.addScene("MyBooking", myBookingScene); } + } + diff --git a/src/main/java/com/trekmate/view/homePage/HomePage.java b/src/main/java/com/trekmate/view/homePage/HomePage.java index 72ae226..6bfb218 100644 --- a/src/main/java/com/trekmate/view/homePage/HomePage.java +++ b/src/main/java/com/trekmate/view/homePage/HomePage.java @@ -1,4 +1,4 @@ -/*package com.trekmate.view.homePage; +package com.trekmate.view.homePage; import com.google.cloud.firestore.collection.LLRBNode.Color; import com.trekmate.firebase.FirebaseTrekService; @@ -220,9 +220,9 @@ private void showAlert(String title, String message) { }); } } -*/ +/* package com.trekmate.view.homePage; import com.google.cloud.storage.Acl.Group; @@ -438,4 +438,4 @@ private void showAlert(String title, String message) { alert.setContentText(message); }); } -} +}*/ diff --git a/src/main/java/com/trekmate/view/settings/AboutUs.java b/src/main/java/com/trekmate/view/settings/AboutUs.java index f5a0fcb..3038bc5 100644 --- a/src/main/java/com/trekmate/view/settings/AboutUs.java +++ b/src/main/java/com/trekmate/view/settings/AboutUs.java @@ -53,7 +53,7 @@ public Scene createScene() { groupNameLabel.setFont(Font.font("Arial", FontWeight.BOLD, 15)); groupNameLabel.setTextFill(Color.WHITE); - Label membersLabel = new Label("Group Members:\n- Bhakti Satpute\n- Sarita Disale\n- Priyanka "); + Label membersLabel = new Label("Group Members:\n- Bhakti Satpute\n- Sarita Disale \n- Priyanka Karmalkar"); membersLabel.setFont(Font.font(20)); membersLabel.setTextFill(Color.WHITE); @@ -62,17 +62,17 @@ public Scene createScene() { conceptsLabel.setTextFill(Color.WHITE); // Create images for social media icons (mocking images) - Image instagramIcon = new Image("/images/logo.png"); + Image instagramIcon = new Image("images/instagram.png"); ImageView instagramView = new ImageView(instagramIcon); instagramView.setFitWidth(70); instagramView.setPreserveRatio(true); - Image linkedinIcon = new Image("/images/logo.png"); + Image linkedinIcon = new Image("images/linkedin.png"); ImageView linkedinView = new ImageView(linkedinIcon); linkedinView.setFitWidth(70); linkedinView.setPreserveRatio(true); - Image facebookIcon = new Image("/images/logo.png"); + Image facebookIcon = new Image("images/facebook.png"); ImageView facebookView = new ImageView(facebookIcon); facebookView.setFitWidth(70); facebookView.setPreserveRatio(true); @@ -111,7 +111,7 @@ public Scene createScene() { mainLayout.setMinWidth(Screen.getPrimary().getBounds().getWidth()); // Set background image for the main layout - Image backgroundImage = new Image("/images/Pastel2.jpg"); + Image backgroundImage = new Image("images/aboutus1.jpg"); BackgroundImage background = new BackgroundImage( backgroundImage, BackgroundRepeat.NO_REPEAT, @@ -131,4 +131,4 @@ public Scene createScene() { Scene aboutUsScene = new Scene(scrollPane, Screen.getPrimary().getBounds().getWidth(), Screen.getPrimary().getBounds().getHeight()); return aboutUsScene; } -} +} \ No newline at end of file diff --git a/src/main/java/com/trekmate/view/settings/ChangePassword.java b/src/main/java/com/trekmate/view/settings/ChangePassword.java index 9c4cbf7..8794d0e 100644 --- a/src/main/java/com/trekmate/view/settings/ChangePassword.java +++ b/src/main/java/com/trekmate/view/settings/ChangePassword.java @@ -36,7 +36,7 @@ public Scene createScene() { BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.CENTER, - new BackgroundSize(800, 600, false, false, true, false)); + new BackgroundSize(1000, 600, false, false, true, false)); // Create a Pane and set its background Pane pane = new Pane(); @@ -105,6 +105,6 @@ public Scene createScene() { scaleTransition.play(); // Setting the scene - return new Scene(pane, 800, 600); + return new Scene(pane, 2080, 1080); } } diff --git a/src/main/java/com/trekmate/view/settings/SettingsPage.java b/src/main/java/com/trekmate/view/settings/SettingsPage.java index 7a88583..e97cb5d 100644 --- a/src/main/java/com/trekmate/view/settings/SettingsPage.java +++ b/src/main/java/com/trekmate/view/settings/SettingsPage.java @@ -100,7 +100,7 @@ private GridPane createSettingsGrid() { // Terms & Conditions ImageView termsImageView = createImageView(TERMS_IMAGE_PATH, 40, 40); - Button termsButton = createCenteredButton("Terms & Conditions", event -> sceneManager.switchTo("TermsAndConditions")); + Button termsButton = createCenteredButton("Terms & Conditions ", event -> sceneManager.switchTo("TermsAndConditions")); grid.add(termsImageView, 0, 3); grid.add(termsButton, 1, 3); @@ -136,4 +136,4 @@ private Button createCenteredButton(String text, EventHandler handl GridPane.setHalignment(button, javafx.geometry.HPos.CENTER); return button; } -} +} \ No newline at end of file diff --git a/src/main/java/com/trekmate/view/settings/TermsAndConditions.java b/src/main/java/com/trekmate/view/settings/TermsAndConditions.java index 26fa954..63d6a38 100644 --- a/src/main/java/com/trekmate/view/settings/TermsAndConditions.java +++ b/src/main/java/com/trekmate/view/settings/TermsAndConditions.java @@ -8,7 +8,6 @@ import javafx.scene.control.Button; import javafx.scene.input.MouseEvent; - public class TermsAndConditions { private SceneManager sceneManager; @@ -28,7 +27,7 @@ public Scene createScene() { contentBox.setStyle("-fx-background-color: #f0f0f0; -fx-padding: 20px;"); // Create the Scene - Scene scene = new Scene(contentBox, 1280, 800); + Scene scene = new Scene(contentBox, 2080, 1080); return scene; } @@ -38,7 +37,7 @@ private String getTermsAndConditionsHtml() { + "

Last updated: [17/7/2024]

" + "

Welcome to TrekMate!

" + "

These terms and conditions outline the rules and regulations for the use of TrekMate, " - + "

" + + "located at [Website URL].

" + "

By accessing this app, we assume you accept these terms and conditions. " + "Do not continue to use TrekMate if you do not agree to take all of the terms and conditions stated on this page.

" + "

1. Introduction

" @@ -68,19 +67,21 @@ private String getTermsAndConditionsHtml() { + "

6. Changes to Terms and Conditions

" + "

6.1 We may revise these terms and conditions from time to time. Revised terms and conditions will apply to the use of this app from the date of the publication of the revised terms and conditions on this app.

" + ""; -} + } - -private Button createBackButton() { - Button backButton = new Button("> > >"); - backButton.setStyle("-fx-background-color: #CCCCCC;"); // Set initial color - backButton.setOnMousePressed(e -> backButton.setStyle("-fx-background-color: #AAAAAA;")); // Darker color when pressed - backButton.setOnMouseReleased(e -> backButton.setStyle("-fx-background-color: #CCCCCC;")); // Restore color when released - backButton.setOnAction(e -> handleBack()); - return backButton; -} -private void handleBack() { - System.out.println("Back button clicked. Navigating back to SettingsPage..."); - sceneManager.switchTo("SettingsPage"); -} + private Button createBackButton() { + Button backButton = new Button("> > >"); + backButton.setStyle("-fx-background-color: #CCCCCC;"); // Set initial color + backButton.setOnMousePressed(e -> backButton.setStyle("-fx-background-color: #AAAAAA;")); // Darker color when + // pressed + backButton.setOnMouseReleased(e -> backButton.setStyle("-fx-background-color: #CCCCCC;")); // Restore color when + // released + backButton.setOnAction(e -> handleBack()); + return backButton; + } + + private void handleBack() { + System.out.println("Back button clicked. Navigating back to SettingsPage..."); + sceneManager.switchTo("SettingsPage"); + } } diff --git a/src/main/java/com/trekmate/view/trek/MyBooking.java b/src/main/java/com/trekmate/view/trek/MyBooking.java new file mode 100644 index 0000000..ceeaf73 --- /dev/null +++ b/src/main/java/com/trekmate/view/trek/MyBooking.java @@ -0,0 +1,114 @@ +package com.trekmate.view.trek; + +import com.trekmate.manager.BookingManager; +import com.trekmate.manager.SceneManager; +import com.trekmate.model.Trek; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.ToggleButton; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.*; +import javafx.scene.paint.Color; +import javafx.scene.text.Font; +import javafx.scene.text.FontWeight; + +public class MyBooking { + + private SceneManager sceneManager; + + public MyBooking(SceneManager sceneManager) { + this.sceneManager = sceneManager; + } + + public Scene getScene() { + // Title + Label titleLabel = new Label("My Bookings"); + titleLabel.setFont(Font.font("Arial", FontWeight.BOLD, 36)); + titleLabel.setTextFill(Color.YELLOW); + + // Booking details + VBox bookingsBox = new VBox(10); + bookingsBox.setAlignment(Pos.CENTER); + bookingsBox.setPadding(new Insets(20)); + + // Populate with current bookings + for (Trek trek : BookingManager.getBookings()) { + // Image of the fort + String imageUrl = trek.getImageUrl().isEmpty() ? "default-image.png" : trek.getImageUrl().get(0); // Use default image if list is empty + ImageView trekImageView = new ImageView(new Image(imageUrl)); + trekImageView.setFitHeight(150); + trekImageView.setFitWidth(150); + + // Name of the fort + Label trekLabel = new Label(trek.getFortName()); + trekLabel.setFont(Font.font("Arial", 24)); + trekLabel.setTextFill(Color.RED); + + // Rating stars + HBox ratingStars = new HBox(7); + ratingStars.setAlignment(Pos.CENTER_LEFT); + + // Array to store ToggleButtons for rating stars + ToggleButton[] stars = new ToggleButton[5]; + for (int i = 0; i < 5; i++) { + final int index = i; // Final variable for lambda expression + ToggleButton star = new ToggleButton(); + star.setGraphic(new ImageView(new Image("/images/unselectstar.png"))); // Replace with your star image + star.setPrefSize(30, 30); + star.setOnAction(event -> { + // Toggle the selected state of stars + for (int j = 0; j <= index; j++) { + stars[j].setSelected(true); + stars[j].setGraphic(new ImageView(new Image("/images/selectstar.png"))); // Replace with your selected star image + } + for (int j = index + 1; j < 5; j++) { + stars[j].setSelected(false); + stars[j].setGraphic(new ImageView(new Image("/images/unselectstar.png"))); // Replace with your unselected star image + } + }); + stars[i] = star; + ratingStars.getChildren().add(star); + } + + // Container for image, name, and rating + HBox trekInfoBox = new HBox(7, trekLabel, ratingStars); + trekInfoBox.setAlignment(Pos.CENTER_LEFT); + + // Container for image and info + HBox trekBox = new HBox(10, trekImageView, trekInfoBox); + trekBox.setAlignment(Pos.CENTER_LEFT); + trekBox.setPadding(new Insets(10)); + trekBox.setStyle("-fx-border-color:black; -fx-border-width: 1px;"); + + bookingsBox.getChildren().add(trekBox); + } + + // Back button + Button backButton = new Button("> > >"); + backButton.setStyle("-fx-background-color: aqua; -fx-text-fill: black; -fx-font-size: 16px; -fx-padding: 10px;"); + backButton.setOnAction(e -> { + sceneManager.switchTo("HomePage"); // Navigate back to home page + }); + + // Layout + VBox layout = new VBox(20, titleLabel, bookingsBox, backButton); + layout.setAlignment(Pos.CENTER); + layout.setPadding(new Insets(10)); + + // Set background image + BackgroundImage backgroundImage = new BackgroundImage( + new Image("/images/mybookig.jpg", 1280, 700, false, true), // Ensure the path is correct + BackgroundRepeat.NO_REPEAT, + BackgroundRepeat.NO_REPEAT, + BackgroundPosition.CENTER, + BackgroundSize.DEFAULT + ); + layout.setBackground(new Background(backgroundImage)); + + return new Scene(layout, 2080,1080); + } +} From 44b87a1cc9f6c56c307f0761569aa0e5c8272f4a Mon Sep 17 00:00:00 2001 From: bhakti0509 <119113248+bhakti0509@users.noreply.github.com> Date: Sat, 20 Jul 2024 08:51:17 +0530 Subject: [PATCH 3/4] Booking Manager --- .../com/trekmate/manager/BookingManager.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/com/trekmate/manager/BookingManager.java b/src/main/java/com/trekmate/manager/BookingManager.java index e69de29..e6e3a40 100644 --- a/src/main/java/com/trekmate/manager/BookingManager.java +++ b/src/main/java/com/trekmate/manager/BookingManager.java @@ -0,0 +1,17 @@ +package com.trekmate.manager; + +import com.trekmate.model.Trek; +import java.util.ArrayList; +import java.util.List; + +public class BookingManager { + private static List bookings = new ArrayList<>(); + + public static void addBooking(Trek trek) { + bookings.add(trek); + } + + public static List getBookings() { + return new ArrayList<>(bookings); // Return a copy to avoid external modification + } +} \ No newline at end of file From 2b1c631de2bd56ff4182507105c1b92f082d1eb0 Mon Sep 17 00:00:00 2001 From: Rajeev Singh Date: Sat, 20 Jul 2024 08:59:14 +0530 Subject: [PATCH 4/4] Resolved merge issues --- src/main/java/com/trekmate/manager/SceneManager.java | 9 ++++----- .../trekmate/view/settings/TermsAndConditions.java | 11 +++++++++-- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/trekmate/manager/SceneManager.java b/src/main/java/com/trekmate/manager/SceneManager.java index b785cdc..e1e39ed 100644 --- a/src/main/java/com/trekmate/manager/SceneManager.java +++ b/src/main/java/com/trekmate/manager/SceneManager.java @@ -92,6 +92,10 @@ public void addOrUpdateScenes(Stage primaryStage) { this.addScene("ProfilePage", profileScene); this.addScene("AddTrekPage", addTrekScene); this.addScene("LeaderboardPage", leaderboardScene); + + this.addScene("TermsAndConditions", termScene); + this.addScene("MyBooking", myBookingScene); + } public void loadTrekDetails(Trek trek) { @@ -100,11 +104,6 @@ public void loadTrekDetails(Trek trek) { this.addScene("TrekDetailsPage", trekDetailsScene); switchTo("TrekDetailsPage"); } -} - this.addScene("TermsAndConditions", termScene); - this.addScene("MyBooking", myBookingScene); - - } public void refreshMyBookingsPage() { MyBooking myBookingPage = new MyBooking(this); diff --git a/src/main/java/com/trekmate/view/settings/TermsAndConditions.java b/src/main/java/com/trekmate/view/settings/TermsAndConditions.java index 63d6a38..317471d 100644 --- a/src/main/java/com/trekmate/view/settings/TermsAndConditions.java +++ b/src/main/java/com/trekmate/view/settings/TermsAndConditions.java @@ -1,11 +1,13 @@ package com.trekmate.view.settings; import com.trekmate.manager.SceneManager; +import com.trekmate.model.Trek; +import com.trekmate.view.trek.TrekDetailsPage; + import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.*; import javafx.scene.web.WebView; -import javafx.scene.control.Button; import javafx.scene.input.MouseEvent; public class TermsAndConditions { @@ -21,7 +23,12 @@ public Scene createScene() { WebView termsWebView = new WebView(); termsWebView.getEngine().loadContent(getTermsAndConditionsHtml()); termsWebView.setStyle("-fx-background-color: rgba(255, 255, 255, 0.8);"); - + public void loadTrekDetails(Trek trek) { + TrekDetailsPage trekDetailsPage = new TrekDetailsPage(trek); + Scene trekDetailsScene = trekDetailsPage.getScene(this); + this.addScene("TrekDetailsPage", trekDetailsScene); + switchTo("TrekDetailsPage"); + } // Create a VBox for the content VBox contentBox = new VBox(10, termsWebView, createBackButton()); contentBox.setStyle("-fx-background-color: #f0f0f0; -fx-padding: 20px;");