Skip to content

Commit

Permalink
Merge pull request #413 from CommonWealthRobotics/kh/cadoodle-compat
Browse files Browse the repository at this point in the history
Kh/cadoodle compat
  • Loading branch information
madhephaestus committed Jul 20, 2024
2 parents 12543ae + 3701f22 commit 0340fa8
Show file tree
Hide file tree
Showing 17 changed files with 109 additions and 229 deletions.
17 changes: 12 additions & 5 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ plugins {
id 'java'
id 'signing'
id 'application'
id 'eclipse'
}
apply plugin: 'com.github.johnrengelman.shadow'
if (project == rootProject) {
Expand Down Expand Up @@ -203,10 +204,6 @@ dependencies {
implementation group: 'org.fxmisc.richtext', name: 'richtextfx', version: '0.6'


implementation group: 'org.codehaus.groovy', name: 'groovy', version:'2.3.7';
//make grapes work
implementation group: 'org.apache.ivy', name:'ivy', version:'2.2.0'

implementation group: 'org.controlsfx', name: 'controlsfx', version: '8.0.6'
implementation group: 'commons-lang', name: 'commons-lang', version: '2.6'
implementation group: 'commons-codec', name: 'commons-codec', version: '1.7'
Expand Down Expand Up @@ -410,7 +407,17 @@ task ('showAll') {
}
}
}

eclipse{
jdt {
sourceCompatibility = 1.8
targetCompatibility = 1.8
file {
withProperties { properties ->
properties.setProperty('org.eclipse.jdt.core.compiler.problem.forbiddenReference', 'ignore')
}
}
}
}
shadowJar {
zip64 true
mainClassName = 'com.neuronrobotics.bowlerstudio.BowlerStudio'
Expand Down
1 change: 1 addition & 0 deletions libraries/.gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
/.project
/.settings/
/.classpath
10 changes: 8 additions & 2 deletions src/main/java/com/neuronrobotics/bowlerstudio/BowlerStudio.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,13 @@
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.TextArea;
import javafx.scene.image.Image;
import javafx.scene.transform.Affine;
import javafx.stage.Stage;

import org.dockfx.DockNode;
import org.dockfx.DockPane;
import org.dockfx.IStageModifyer;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.api.errors.InvalidRefNameException;
import org.eclipse.jgit.api.errors.InvalidRemoteException;
Expand Down Expand Up @@ -849,6 +852,7 @@ public void start(Stage primaryStage) {

root.setStyle("-fx-font-size: "+((int)tmp)+"pt");
});

double sw = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice()
.getDisplayMode().getWidth();
double sh = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice()
Expand Down Expand Up @@ -902,7 +906,9 @@ public void start(Stage primaryStage) {
setTitle(null);

try {
primaryStage.getIcons().add(AssetFactory.loadAsset("BowlerStudioTrayIcon.png"));

Image loadAsset = new Image(PsudoSplash.getResource().toString());
primaryStage.getIcons().add(loadAsset);
} catch (Exception e) {
reporter.uncaughtException(Thread.currentThread(), e);

Expand Down Expand Up @@ -954,7 +960,7 @@ public void onDeviceRemoved(BowlerAbstractDevice arg0) {

public static void setTitle(String title) {
if(title==null)
title="Bowler Studio: v " + StudioBuildInfo.getVersion();
title=StudioBuildInfo.getAppName()+" v " + StudioBuildInfo.getVersion();
if(primaryStage2!=null)
primaryStage2.setTitle(title);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ private void setToLoggedIn(final String n) {
new Thread() {
public void run() {
//ConfigurationDatabase.loginEvent(username);
ConfigurationDatabase.getParamMap("workspace");
//ConfigurationDatabase.getParamMap("workspace");
BowlerStudioMenuWorkspace.loginEvent();
if (!PasswordManager.hasNetwork())
return;
Expand Down Expand Up @@ -269,8 +269,9 @@ public void run() {

}
private void openFilesInUI() {
HashMap<String, Object> openGits = ConfigurationDatabase.getParamMap("studio-open-git");
Object[] set = openGits.keySet().toArray();
String key ="studio-open-git";
//HashMap<String, Object> openGits = ConfigurationDatabase.getParamMap("studio-open-git");
Object[] set = ConfigurationDatabase.keySet("studio-open-git").toArray();
for (int i = 0; i < set.length; i++) {
try {
Thread.sleep(300);
Expand All @@ -281,22 +282,24 @@ private void openFilesInUI() {
String s = (String) set[i];
try {
@SuppressWarnings("unchecked")
ArrayList<String> repoFile = (ArrayList<String>) openGits.get(s);
ArrayList<String> repoFile = (ArrayList<String>) ConfigurationDatabase.getObject(key,s, new ArrayList<>());
File f = ScriptingEngine.fileFromGit(repoFile.get(0), repoFile.get(1));
if (!f.exists() || BowlerStudio.createFileTab(f) == null) {
openGits.remove(s);
ConfigurationDatabase.removeObject(key, s);
System.err.println("Removing missing " + s);
}

} catch (Throwable e) {
openGits.remove(s);
ConfigurationDatabase.removeObject(key, s);
System.out.println("Error loading file " + s);
}
}
}
HashMap<String, Object> openWeb = ConfigurationDatabase.getParamMap("studio-open-web");
for (String s : openWeb.keySet()) {
String repoFile = (String) openWeb.get(s);
//HashMap<String, Object> openWeb = ConfigurationDatabase.getParamMap("studio-open-web");
String webKey="studio-open-web";
for (String s : ConfigurationDatabase.keySet(webKey)) {
String repoFile = (String) ConfigurationDatabase.getObject(webKey,s,null);
if(repoFile!=null)
try {
bowlerStudioModularFrame.openUrlInNewTab(new URL(repoFile));
} catch (Exception e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@

@SuppressWarnings("restriction")
public class BowlerStudioMenuWorkspace {
private static final String key = "workspace";
private static Menu workspaceMenu;
private static final int maxMenueSize = 20;
private static boolean sorting = false;
Expand All @@ -41,9 +42,10 @@ public static void loginEvent() {
rank.clear();
new Thread(() -> {
if (ScriptingEngine.hasNetwork())
for (int i = 0; i < getWorkspaceData().keySet().size(); i++) {

for (int i = 0; i < ConfigurationDatabase.keySet(key).size(); i++) {
try {
String o = (String) getWorkspaceData().keySet().toArray()[i];
String o = (String) ConfigurationDatabase.keySet(key).toArray()[i];
if (o.endsWith(".git")) {
boolean wasState = ScriptingEngine.isPrintProgress();
ScriptingEngine.setPrintProgress(false);
Expand All @@ -57,15 +59,15 @@ public static void loginEvent() {
BowlerStudioMenu.checkandDelete(o);
}catch (Throwable ex) {
ex.printStackTrace();
getWorkspaceData().remove(o);
ConfigurationDatabase.removeObject(key, o);
// ScriptingEngine.deleteRepo(o);
// i--;
}
ScriptingEngine.setPrintProgress(wasState);


} else {
getWorkspaceData().remove(o);
ConfigurationDatabase.remove(key,o);
}
} catch (Exception e) {
e.printStackTrace();
Expand All @@ -89,16 +91,16 @@ public static void add(String url, String menueMessage) {
menueMessage = new Date().toString();
}
ArrayList<String> data;
if (getWorkspaceData() != null)
synchronized (getWorkspaceData()) {
if (getWorkspaceData().get(url) == null) {


if (ConfigurationDatabase.getObject(key,url,null) == null) {
data = new ArrayList<String>();
data.add(menueMessage);
data.add(new Long(System.currentTimeMillis()).toString());
getWorkspaceData().put(url, data);
ConfigurationDatabase.put(key,url, data);
//System.out.println("Workspace add: " + url);
}
}

// data = (ArrayList<String>) workspaceData.get(url);
// data.set(1, new Long(System.currentTimeMillis()).toString());
sort();
Expand All @@ -115,20 +117,20 @@ public static void sort() {
boolean rankChanged = false;
try {
ArrayList<String> myOptions = new ArrayList<String>();
synchronized (getWorkspaceData()) {
for (String o : getWorkspaceData().keySet()) {

for (String o : ConfigurationDatabase.keySet(key)) {
// System.out.println("Opt: "+o);
myOptions.add(o);
}
}

ArrayList<String> menu = new ArrayList<>();
while (myOptions.size() > 0) {
int bestIndex = 0;
String besturl = (String) myOptions.get(bestIndex);
long newestTime = Long.parseLong(((ArrayList<String>) getWorkspaceData().get(besturl)).get(1));
long newestTime = Long.parseLong(((ArrayList<String>) ConfigurationDatabase.get(key,besturl)).get(1));
for (int i = 0; i < myOptions.size(); i++) {
String nowurl = (String) myOptions.get(i);
long myTime = Long.parseLong(((ArrayList<String>) getWorkspaceData().get(nowurl)).get(1));
long myTime = Long.parseLong(((ArrayList<String>) ConfigurationDatabase.get(key,nowurl)).get(1));
if (myTime >= newestTime) {
newestTime = myTime;
besturl = nowurl;
Expand Down Expand Up @@ -176,7 +178,7 @@ public static void sort() {
new Thread(() -> {
for (String url : menu) {
//System.out.println("Workspace : " + url);
ArrayList<String> arrayList = (ArrayList<String>) getWorkspaceData().get(url);
ArrayList<String> arrayList = (ArrayList<String>) ConfigurationDatabase.getObject(key,url,new ArrayList<>());
if (arrayList != null)
BowlerStudioMenu.setUpRepoMenue(workspaceMenu, url, false, false, arrayList.get(0));

Expand All @@ -199,14 +201,12 @@ public static void sort() {
}
}

public static HashMap<String, Object> getWorkspaceData() {
return ConfigurationDatabase.getParamMap("workspace");
}
// public static HashMap<String, Object> getWorkspaceData() {
// return ConfigurationDatabase.getParamMap("workspace");
// }

public static void remove(String url) {
synchronized (getWorkspaceData()) {
getWorkspaceData().remove(url);
}
ConfigurationDatabase.removeObject(key, url);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
**/

import com.neuronrobotics.bowlerstudio.assets.AssetFactory;
import com.neuronrobotics.bowlerstudio.assets.FontSizeManager;
import com.neuronrobotics.bowlerstudio.scripting.PasswordManager;
import com.neuronrobotics.bowlerstudio.scripting.ScriptingEngine;
import com.neuronrobotics.bowlerstudio.scripting.ScriptingFileWidget;
Expand All @@ -16,6 +17,7 @@
import javafx.beans.Observable;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.control.Tab;
import javafx.scene.image.Image;
import javafx.scene.layout.AnchorPane;
Expand All @@ -25,6 +27,7 @@
import org.dockfx.DockNode;
import org.dockfx.DockPane;
import org.dockfx.DockPos;
import org.dockfx.IStageModifyer;

import java.io.File;
import java.io.IOException;
Expand Down Expand Up @@ -345,6 +348,18 @@ public static Stage getPrimaryStage() {

public static void setPrimaryStage(Stage primaryStage) {
BowlerStudioModularFrame.primaryStage = primaryStage;
DockNode.addStageToDockingSystem(primaryStage);
DockNode.setModifyer(new IStageModifyer() {
@Override
public void onNewStage(Stage s) {
Parent r = s.getScene().getRoot();
FontSizeManager.addListener(fontNum->{
BowlerStudioController.getBowlerStudio().setFontSize(fontNum);
double tmp = FontSizeManager.getImageScale()*9;
r.setStyle("-fx-font-size: "+((int)tmp)+"pt");
});
}
});
}

public ScriptingFileWidget createFileTab(File file) {
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/com/neuronrobotics/bowlerstudio/GistHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

import com.neuronrobotics.bowlerstudio.scripting.PasswordManager;
import com.neuronrobotics.bowlerstudio.scripting.ScriptingEngine;
import com.neuronrobotics.sdk.common.Log;
import com.neuronrobotics.sdk.util.ThreadUtil;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.jfree.util.Log;
//import org.jfree.util.Log;
import org.kohsuke.github.GHGist;
import org.kohsuke.github.GHGistBuilder;
import org.kohsuke.github.GHGistFile;
Expand Down Expand Up @@ -89,7 +90,7 @@ private static String createGistFromBuilder(GHGistBuilder builder, String filena
}

ThreadUtil.wait(500);
Log.warn(filename + " not built yet");
//Log.warn(filename + " not built yet");
}

System.out.println("Creating gist at " + filename);
Expand Down
20 changes: 13 additions & 7 deletions src/main/java/com/neuronrobotics/bowlerstudio/PsudoSplash.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,15 @@
import java.awt.AlphaComposite;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsDevice;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;

import javafx.scene.image.Image;
import javax.imageio.ImageIO;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
Expand All @@ -29,6 +25,8 @@ public class PsudoSplash implements GitLogProgressMonitor{
JFrame interfaceFrame;
private String message = "";
private String log = "";
private static URL resource = PsudoSplash.class.getResource("splash.png");

@Override
public void onUpdate(String update, Exception e) {
//e.printStackTrace(System.err);
Expand All @@ -55,7 +53,7 @@ public CustomPanel() {
* | | package image(folder) ( or | .class 404error.jpg files, if no package
* exists.)
*/
image = ImageIO.read(getClass().getResource("splash.png"));
image = ImageIO.read(getResource());

} catch (IOException ioe) {
System.out.println("Unable to fetch image.");
Expand Down Expand Up @@ -130,7 +128,7 @@ public void run() {
interfaceFrame.setVisible(true);
interfaceFrame.setBackground(new Color(0, 0, 0, 0));
try {
interfaceFrame.setIconImage(ImageIO.read(getClass().getResource("splash.png")));
interfaceFrame.setIconImage(ImageIO.read(resource));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Expand Down Expand Up @@ -194,5 +192,13 @@ public void setMessage(String message) {
log="";
}

public static URL getResource() {
return resource;
}

public static void setResource(URL r) {
resource = r;
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -360,10 +360,12 @@ public void setGameController(BowlerJInputDevice gameController) {
game.setText("Remove Game Controller");

paramsKey = gameController.getControllerName();
HashMap<String, Object> map = ConfigurationDatabase.getParamMap(paramsKey);
//HashMap<String, Object> map = ConfigurationDatabase.getParamMap(paramsKey);
boolean hasmap = false;
if (map.containsKey("jogKinx") && map.containsKey("jogKiny") && map.containsKey("jogKinz")
&& map.containsKey("jogKinslider")) {
if (ConfigurationDatabase.containsKey(paramsKey,"jogKinx") &&
ConfigurationDatabase.containsKey(paramsKey,"jogKiny") &&
ConfigurationDatabase.containsKey(paramsKey,"jogKinz")
&& ConfigurationDatabase.containsKey(paramsKey,"jogKinslider")) {
hasmap = true;
}

Expand Down
Loading

0 comments on commit 0340fa8

Please sign in to comment.