Skip to content

Commit

Permalink
Implement more of the UI.
Browse files Browse the repository at this point in the history
  • Loading branch information
io7m committed May 31, 2024
1 parent 4114f79 commit 1b7fc61
Show file tree
Hide file tree
Showing 46 changed files with 1,987 additions and 156 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@

package com.io7m.cardant_gui.main;

import com.io7m.cardant.client.preferences.vanilla.CAPreferencesService;
import com.io7m.cardant_gui.ui.CAGUI;
import com.io7m.jade.api.ApplicationDirectories;
import com.io7m.jade.api.ApplicationDirectoryConfiguration;
Expand All @@ -44,13 +43,13 @@ private CAGMain()
*
* @param args The command-line arguments
*
* @throws Exception On errors
*/

public static void main(
final String[] args)
throws Exception
{
System.setProperty("org.jooq.no-logo", "true");

final var directoryConfiguration =
ApplicationDirectoryConfiguration.builder()
.setApplicationName("com.io7m.cardant")
Expand All @@ -61,15 +60,9 @@ public static void main(
final var directories =
ApplicationDirectories.get(directoryConfiguration);

final var preferences =
CAPreferencesService.openOrDefault(
directories.configurationDirectory()
.resolve("preferences.xml")
);

Platform.startup(() -> {
try {
CAGUI.start(directories, preferences);
CAGUI.start(directories);
} catch (final Exception e) {
LOG.error("startup failed: ", e);
System.exit(1);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
<target>System.err</target>
</appender>

<logger name="org.jooq"
level="DEBUG"/>

<root level="DEBUG">
<appender-ref ref="STDERR"/>
</root>
Expand Down
5 changes: 4 additions & 1 deletion com.io7m.cardant_gui.tests/src/main/java/module-info.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@
* IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

/**
* Cardant GUI (Test suite)
*/

open module com.io7m.cardant_gui.tests
{
Expand All @@ -39,4 +42,4 @@
requires javafx.fxml;

exports com.io7m.cardant_gui.tests;
}
}
129 changes: 121 additions & 8 deletions com.io7m.cardant_gui.ui/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,6 @@
<groupId>com.io7m.cardant</groupId>
<artifactId>com.io7m.cardant.client.basic</artifactId>
</dependency>
<dependency>
<groupId>com.io7m.cardant</groupId>
<artifactId>com.io7m.cardant.client.preferences.api</artifactId>
</dependency>
<dependency>
<groupId>com.io7m.cardant</groupId>
<artifactId>com.io7m.cardant.client.preferences.vanilla</artifactId>
</dependency>
<dependency>
<groupId>com.io7m.cardant</groupId>
<artifactId>com.io7m.cardant.protocol.inventory</artifactId>
Expand Down Expand Up @@ -128,6 +120,28 @@
<artifactId>joda-money</artifactId>
</dependency>

<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-api</artifactId>
</dependency>

<dependency>
<groupId>org.jooq</groupId>
<artifactId>jooq</artifactId>
</dependency>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.io7m.darco</groupId>
<artifactId>com.io7m.darco.api</artifactId>
</dependency>
<dependency>
<groupId>com.io7m.darco</groupId>
<artifactId>com.io7m.darco.sqlite</artifactId>
</dependency>

<dependency>
<groupId>com.io7m.jxtrand</groupId>
<artifactId>com.io7m.jxtrand.api</artifactId>
Expand Down Expand Up @@ -196,6 +210,105 @@
</configuration>
</plugin>

<!-- Generate SQL file -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>

<dependencies>
<dependency>
<groupId>com.io7m.trasco</groupId>
<artifactId>com.io7m.trasco.api</artifactId>
<version>${com.io7m.trasco.version}</version>
</dependency>
<dependency>
<groupId>com.io7m.trasco</groupId>
<artifactId>com.io7m.trasco.vanilla</artifactId>
<version>${com.io7m.trasco.version}</version>
</dependency>
<dependency>
<groupId>com.io7m.trasco</groupId>
<artifactId>com.io7m.trasco.xml.schemas</artifactId>
<version>${com.io7m.trasco.version}</version>
</dependency>
</dependencies>

<executions>
<execution>
<id>generate-sql</id>
<phase>generate-sources</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>com.io7m.trasco.vanilla.TrSchemaRevisionSetSQLMain</mainClass>
<includePluginDependencies>true</includePluginDependencies>
<includeProjectDependencies>false</includeProjectDependencies>
<arguments>
<argument>${project.basedir}/src/main/resources/com/io7m/cardant_gui/ui/internal/database.xml</argument>
<argument>${project.build.directory}/database.sql</argument>
<argument>ROLES</argument>
<argument>GRANTS</argument>
<argument>FUNCTIONS</argument>
<argument>TRIGGERS</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>

<!-- Generate jooq sources. -->
<plugin>
<groupId>org.jooq</groupId>
<artifactId>jooq-codegen-maven</artifactId>
<version>${org.jooq.version}</version>
<configuration>
<configurationFile>src/main/jooq/configuration.xml</configurationFile>
</configuration>
<executions>
<execution>
<id>jooq-codegen</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.jooq</groupId>
<artifactId>jooq-meta-extensions</artifactId>
<version>${org.jooq.version}</version>
</dependency>
<dependency>
<groupId>org.jooq</groupId>
<artifactId>jooq-postgres-extensions</artifactId>
<version>${org.jooq.version}</version>
</dependency>
</dependencies>
</plugin>

<!-- Add jooq sources. -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-jooq-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${project.build.directory}/generated-sources/jooq</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>

<!-- Generate strings. -->
<plugin>
<groupId>com.io7m.jxtrand</groupId>
<artifactId>com.io7m.jxtrand.maven_plugin</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@

package com.io7m.cardant_gui.ui;

import com.io7m.cardant.client.preferences.api.CAPreferencesServiceType;
import com.io7m.cardant_gui.ui.internal.CAGCSS;
import com.io7m.cardant_gui.ui.internal.CAGClientService;
import com.io7m.cardant_gui.ui.internal.CAGClientServiceType;
Expand Down Expand Up @@ -47,6 +46,12 @@
import com.io7m.cardant_gui.ui.internal.CAGStrings;
import com.io7m.cardant_gui.ui.internal.CAGStringsType;
import com.io7m.cardant_gui.ui.internal.CAGViewType;
import com.io7m.cardant_gui.ui.internal.database.CAGDatabaseConfiguration;
import com.io7m.cardant_gui.ui.internal.database.CAGDatabaseFactory;
import com.io7m.cardant_gui.ui.internal.database.CAGDatabaseType;
import com.io7m.darco.api.DDatabaseCreate;
import com.io7m.darco.api.DDatabaseTelemetryNoOp;
import com.io7m.darco.api.DDatabaseUpgrade;
import com.io7m.jade.api.ApplicationDirectoriesType;
import com.io7m.repetoir.core.RPServiceDirectory;
import javafx.application.Application;
Expand All @@ -67,23 +72,18 @@
public final class CAGApplication extends Application
{
private final ApplicationDirectoriesType directories;
private final CAPreferencesServiceType preferences;

/**
* The main application class responsible for starting up the "main" view.
*
* @param inConfiguration The configuration
* @param inPreferences The preferences
*/

public CAGApplication(
final ApplicationDirectoriesType inConfiguration,
final CAPreferencesServiceType inPreferences)
final ApplicationDirectoriesType inConfiguration)
{
this.directories =
Objects.requireNonNull(inConfiguration, "configuration");
this.preferences =
Objects.requireNonNull(inPreferences, "preferences");
}

@Override
Expand All @@ -96,25 +96,45 @@ public void start(
final var services =
new RPServiceDirectory();

services.register(CAGFileChoosersType.class, new CAGFileChoosers());
services.register(CAGStringsType.class, strings);

final var database =
new CAGDatabaseFactory()
.open(
new CAGDatabaseConfiguration(
DDatabaseTelemetryNoOp.get(),
DDatabaseCreate.CREATE_DATABASE,
DDatabaseUpgrade.UPGRADE_DATABASE,
this.directories.configurationDirectory()
.resolve("database.db")
),
event -> {

}
);
services.register(
CAGDatabaseType.class,
database
);
services.register(
CAGFileChoosersType.class,
new CAGFileChoosers(services)
);
services.register(
CAGStringsType.class,
strings
);
services.register(
CAGFileViewDialogs.class,
new CAGFileViewDialogs(services));

new CAGFileViewDialogs(services)
);
services.register(
CAGItemAttachmentAddDialogs.class,
new CAGItemAttachmentAddDialogs(services)
);

services.register(
CAGLocationAttachmentAddDialogs.class,
new CAGLocationAttachmentAddDialogs(services)
);

services.register(CAPreferencesServiceType.class, this.preferences);

final var status = new CAGStatusService();
services.register(CAGStatusService.class, status);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@

package com.io7m.cardant_gui.ui;

import com.io7m.cardant.client.preferences.api.CAPreferencesServiceType;
import com.io7m.jade.api.ApplicationDirectoriesType;
import javafx.stage.Stage;

Expand All @@ -41,16 +40,14 @@ private CAGUI(
* Start a new UI.
*
* @param configuration The configuration
* @param preferences
*
* @return A new UI
*
* @throws Exception On startup failures
*/

public static CAGUI start(
final ApplicationDirectoriesType configuration,
final CAPreferencesServiceType preferences)
final ApplicationDirectoriesType configuration)
throws Exception
{
final var stage = new Stage();
Expand All @@ -60,7 +57,7 @@ public static CAGUI start(
stage.setMinWidth(800.0);
stage.setMinHeight(600.0);

final var app = new CAGApplication(configuration, preferences);
final var app = new CAGApplication(configuration);
app.start(stage);
return new CAGUI(app);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,14 @@

package com.io7m.cardant_gui.ui.internal;

import com.io7m.cardant.client.preferences.api.CAPreferenceServerBookmark;
import javafx.scene.control.ListCell;

/**
* A cell displaying a bookmark.
*/

public final class CAGBookmarkCell
extends ListCell<CAPreferenceServerBookmark>
extends ListCell<CAGServerBookmark>
{
/**
* Construct a cell.
Expand All @@ -37,7 +36,7 @@ public CAGBookmarkCell()

@Override
protected void updateItem(
final CAPreferenceServerBookmark item,
final CAGServerBookmark item,
final boolean empty)
{
super.updateItem(item, empty);
Expand Down
Loading

0 comments on commit 1b7fc61

Please sign in to comment.