Skip to content

Commit d44b8d2

Browse files
committed
0.8.0
Two versions together: * remaining work on 0.7.3 (not finished, might not be working) * grand rework for 0.8.0, mainly using swing
1 parent 28f56b4 commit d44b8d2

157 files changed

Lines changed: 3648 additions & 1571 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ReadMe.md

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,37 @@
1-
<h1>Graphics Engine</h1>
1+
# Graphics Engine
2+
3+
[![](https://jitpack.io/v/Krumuvecis/GraphicsEngine.svg)](https://jitpack.io/#Krumuvecis/GraphicsEngine)
24

35
by [Krumuvecis](https://github.com/Krumuvecis)
46

57
Free to use and modify for whatever purposes. No copyrights apply.
68

79

8-
<h2>Instructions</h2>
10+
## Requirements
11+
12+
* JDK: 18
13+
* Maven compiler: 18
14+
* Maven Surefire: 3.0.0-M7
15+
* jetbrains annotations: 23.0.0
16+
* [ThreadAbstraction](https://github.com/Krumuvecis/ThreadAbstraction) : 0.4.0
17+
* [FileHandler](https://github.com/Krumuvecis/FileHandler) : 0.2.3
18+
* JUnit: Jupiter 5.9.0-M1
19+
20+
21+
## Instructions
922

1023
Maven support recently added. Detailed info coming...
1124

12-
<i>Latest working version available at `master` branch.</i>
25+
*Latest working version available at `master` branch.*
1326

1427

15-
<h2>Standalone demo</h2>
28+
## Standalone demo
1629

1730
Check `graphicsEngine\demo` for standalone demo versions.
1831

19-
<i>Launch instructions available there.</i>
32+
*Launch instructions available there.*
2033

2134

22-
<h2>Notes</h2>
35+
## Notes
2336

2437
Work is under progress, expect changes.

pom.xml

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,19 @@
66

77
<groupId>com.github.Krumuvecis</groupId>
88
<artifactId>GraphicsEngine</artifactId>
9-
<version>0.7</version>
9+
<version>0.8</version>
1010

1111
<properties>
1212
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
13-
<maven.compiler.source>17</maven.compiler.source>
14-
<maven.compiler.target>17</maven.compiler.target>
15-
<junit.jupiter.version>5.8.2</junit.jupiter.version>
16-
<maven.surefire.version>3.0.0-M5</maven.surefire.version>
13+
<maven.compiler.source>18</maven.compiler.source>
14+
<maven.compiler.target>18</maven.compiler.target>
15+
<maven.surefire.version>3.0.0-M7</maven.surefire.version>
1716

18-
<fileHandler.version>0.2.2</fileHandler.version>
17+
<jetbrains.annotations.version>23.0.0</jetbrains.annotations.version>
18+
<threadAbstraction.version>0.4.0</threadAbstraction.version>
19+
<fileHandler.version>0.2.3</fileHandler.version>
20+
21+
<junit.jupiter.version>5.9.0-M1</junit.jupiter.version>
1922
</properties>
2023

2124
<repositories>
@@ -26,35 +29,41 @@
2629
</repositories>
2730

2831
<dependencies>
29-
<dependency>
30-
<groupId>org.junit.jupiter</groupId>
31-
<artifactId>junit-jupiter-engine</artifactId>
32-
<version>${junit.jupiter.version}</version>
33-
<scope>test</scope>
34-
</dependency>
35-
<dependency>
36-
<groupId>org.junit.jupiter</groupId>
37-
<artifactId>junit-jupiter-api</artifactId>
38-
<version>${junit.jupiter.version}</version>
39-
<scope>test</scope>
40-
</dependency>
4132
<dependency>
4233
<groupId>org.apache.maven.plugins</groupId>
4334
<artifactId>maven-surefire-plugin</artifactId>
4435
<version>${maven.surefire.version}</version>
4536
</dependency>
37+
4638
<dependency>
4739
<groupId>org.jetbrains</groupId>
4840
<artifactId>annotations</artifactId>
49-
<version>22.0.0</version>
41+
<version>${jetbrains.annotations.version}</version>
5042
<scope>compile</scope>
5143
</dependency>
52-
44+
<dependency>
45+
<groupId>com.github.Krumuvecis</groupId>
46+
<artifactId>ThreadAbstraction</artifactId>
47+
<version>${threadAbstraction.version}</version>
48+
</dependency>
5349
<dependency>
5450
<groupId>com.github.Krumuvecis</groupId>
5551
<artifactId>FileHandler</artifactId>
5652
<version>${fileHandler.version}</version>
5753
</dependency>
54+
55+
<dependency>
56+
<groupId>org.junit.jupiter</groupId>
57+
<artifactId>junit-jupiter-engine</artifactId>
58+
<version>${junit.jupiter.version}</version>
59+
<scope>test</scope>
60+
</dependency>
61+
<dependency>
62+
<groupId>org.junit.jupiter</groupId>
63+
<artifactId>junit-jupiter-api</artifactId>
64+
<version>${junit.jupiter.version}</version>
65+
<scope>test</scope>
66+
</dependency>
5867
</dependencies>
5968

6069
<build>
@@ -65,5 +74,4 @@
6574
</plugin>
6675
</plugins>
6776
</build>
68-
6977
</project>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package graphicsEngine;
2+
3+
//for allowing not to use graphics manager directly
4+
public class AbstractGraphicsAdapter {
5+
public GraphicsManager graphics;
6+
7+
public AbstractGraphicsAdapter() {
8+
graphics = new GraphicsManager();
9+
}
10+
11+
public final void end() {
12+
graphics.end();
13+
}
14+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package graphicsEngine;
2+
3+
import graphicsEngine.windows.AbstractWindow;
4+
import graphicsEngine.windows.WindowManager;
5+
6+
import DelayCalculator.DelayOptions;
7+
import java.util.ArrayList;
8+
9+
import static graphicsEngine.Utilities.printLine;
10+
11+
import org.jetbrains.annotations.Nullable;
12+
import org.jetbrains.annotations.NotNull;
13+
14+
//a class for containing graphics
15+
//TODO: add javadocs
16+
public class GraphicsManager {
17+
public ArrayList<WindowManager> windows;
18+
19+
public GraphicsManager() {
20+
windows = new ArrayList<>();
21+
}
22+
23+
@SuppressWarnings("unused")
24+
public final void newWindow(@NotNull WindowManager window) {
25+
int i = windows.size();
26+
windows.add(window);
27+
windows.get(i).start();
28+
}
29+
30+
@SuppressWarnings("unused")
31+
public final void newWindow(@NotNull AbstractWindow window) {
32+
newWindow(new WindowManager(window));
33+
}
34+
35+
@SuppressWarnings("unused")
36+
public final void newWindow(@NotNull AbstractWindow window, long delay) {
37+
newWindow(new WindowManager(window, delay));
38+
}
39+
40+
@SuppressWarnings("unused")
41+
public final void newWindow(@NotNull AbstractWindow window, @Nullable DelayOptions delayOptions) {
42+
newWindow(new WindowManager(window, delayOptions));
43+
}
44+
45+
public void end() {
46+
printLine("Graphics ending.");
47+
endAllWindows();
48+
}
49+
50+
private void endAllWindows() {
51+
for (WindowManager window : windows) {
52+
window.end();
53+
}
54+
}
55+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package graphicsEngine;
2+
3+
import java.awt.*;
4+
import javax.swing.*;
5+
import javax.swing.border.LineBorder;
6+
7+
import java.util.Objects;
8+
9+
import org.jetbrains.annotations.Nullable;
10+
import org.jetbrains.annotations.NotNull;
11+
12+
/**
13+
* A utility class for containing generic methods.
14+
*/
15+
public class Utilities {
16+
private static final Color DEFAULT_BORDER_COLOR = Color.red;
17+
18+
/**
19+
* Prints a message in console as new line.
20+
*
21+
* @param message Message to print.
22+
*/
23+
public static void printLine(String message) {
24+
System.out.println(message);
25+
}
26+
27+
//rounds a number to a specified number of decimal places
28+
// TODO: add javadoc
29+
public static String roundNumber(double value, int decimalPlaces) {
30+
double conversionCoefficient = Math.pow(10, decimalPlaces);
31+
return String.valueOf(((int) (value * conversionCoefficient))/conversionCoefficient);
32+
}
33+
34+
// TODO: add javadoc
35+
public interface BorderInterface {
36+
static void setBorderState(@NotNull JComponent component, boolean state, @Nullable Color color) {
37+
if (state) {
38+
component.setBorder(new LineBorder(Objects.requireNonNullElse(color, DEFAULT_BORDER_COLOR)));
39+
} else {
40+
component.setBorder(null);
41+
}
42+
}
43+
}
44+
}

src/main/java/graphicsEngine/demo/demoLauncher/DemoLauncher.java

Lines changed: 0 additions & 43 deletions
This file was deleted.

src/main/java/graphicsEngine/demo/demoLauncher/LaunchTypes.java

Lines changed: 0 additions & 28 deletions
This file was deleted.

src/main/java/graphicsEngine/demo/demoLauncher/graphicalSelector/GraphicalDemoSelector.java

Lines changed: 0 additions & 11 deletions
This file was deleted.

src/main/java/graphicsEngine/demo/paged/DemoPaged.java

Lines changed: 0 additions & 56 deletions
This file was deleted.

0 commit comments

Comments
 (0)