This README would normally document whatever steps are necessary to get your application up and running.
This is the GIT repository for VoxelShop.
Documentation on how to use the program can be found here.
Git, IntelliJ and JDK8 (e.g. http://downloads.puresoftware.org/files/android/JDK/)
Fork the git repository, open a terminal, go to the desired project location and type:
> git init
> git remote add origin [FORK_HTTPS_URL]
> git pull origin master
then enter your password and wait until command completes
Create a new feature branch using develop
as a base for each change set you are planning to do.
git checkout develop
git checkout -b feature-branch-name
Commit and push as you work on your feature branch.
Once you are happy create a pull request from your feature branch against
the main repo develop
branch, referencing the associated issue(s).
Make sure you use a different branch for each change set.
- Click Open and select PS4k Folder (within the folder you selected as root)
- Ensure the JDK8 is selected under File > Project Structure > Project
- Right click on PS4k > src > com > vitco > Main and "Run" to start VoxelShop
- Important: Click on Main and on "Edit Configuration" and add "debug" as a program argument
- Click Build > Build Artifacts > All Artifacts
- All content needed to run PS4k is under PS4k > out > artifacts > PS4k_jar
Java UI component provider and Window Manager http://www.jidesoft.com/
- Execute jide_designer.jar under Tools/jide_designer and open PS4k\resource\layout\TopLayout.ilayout
- Under Design, click the "+ Frame" button
- For the added Frame update the ID, the Titles (starting with "# ") and set showContextMenu and autohidable to False
- If you want to change the layout, do it through the properties window. Drag and drop changes are not saved (!).
- Finally save the file and close Jide Designer
- When starting VoxelShop now you will see a warning that no linkage is defined for the frame. We need to fix that!
- Under PS4k > src > com > vitco > layout > frames create a new java file called "[FRAME_ID]Linkage". This class will create some logic for the Frame we just created.
- Compare how other Linkages work. The important bits are constructing the frame and updating the title. We also need to define a "show" action for the frame.
- We will need a 16x16 png icon for the frame. Create it under PS4k > resource > img > icons > frames. This icon is shown when the frame is tabbed.
- Now open to PS4k > src > com > vitco > glue > config.xml and add the linkage similar to the existing ones.
- Now define the Frame titles by adding them as "[FRAME_ID]_caption" to PS4k > resource > bundle > LangBundle.properties
- Open PS4k > src > com > vitco > layout > bars > main_menu.xml and link the show action to to a new menu item under menu item "tool_windows_btn".
- Start the program and ensure we can toggle the visibility of the frame through the main menu
- Open PS4k > src > com > vitco > glue > shortcuts.xml
- Add the missing frames in here. This is where we will specify frame specific shortcuts.
- Create a new package "[FRAME_ID]" under PS4k > src > com > vitco > layout > content
- Create a Class "[FRAME_ID]View" extending ViewPrototype and an implemented Interface "[FRAME_ID]ViewInterface" that contains a method "JComponent build(Frame frame)"
- In the Linkage class define a setter method for the Interface (we will inject the class shortly) and after updating the title, call frame.add([INJECTED_VARIABLE].build(mainFrame));
- Now we need to inject the class into the Linkage Class. Open PS4k > src > com > vitco > glue > config.xml and create a new bean from the class we just defined with the build method. Then inject the property into the frame bean we defined previously.
- Now we can start working on our GUI in the build method.
- Define an xml file, load it and attach it to the layout
- Define actions and link to them in the xml file
-- Below is auto generated
- Summary of set up
- Configuration
- Dependencies
- Database configuration
- How to run tests
- Deployment instructions
- Writing tests
- Code review
- Other guidelines
- Repo owner or admin
- Other community or team contact