From dccd955e55105864fff8a0f682a8c7329c75c034 Mon Sep 17 00:00:00 2001 From: ubuntu Date: Fri, 13 Sep 2024 22:45:52 -0400 Subject: [PATCH 1/5] The plugin now collects OS name, version, architecture. Java version and vendor. Eclipse version. --- TestPluginProject/.gitignore | 1 + .../src/testpluginproject/Activator.java | 22 +++++++++++++++++-- .../model/jsonModel/EventDataJsonObject.java | 21 ++++++++++++++++++ 3 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 TestPluginProject/.gitignore diff --git a/TestPluginProject/.gitignore b/TestPluginProject/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/TestPluginProject/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/TestPluginProject/src/testpluginproject/Activator.java b/TestPluginProject/src/testpluginproject/Activator.java index f2b5ee4..9200bed 100644 --- a/TestPluginProject/src/testpluginproject/Activator.java +++ b/TestPluginProject/src/testpluginproject/Activator.java @@ -65,6 +65,7 @@ import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.preferences.ConfigurationScope; import org.eclipse.core.runtime.preferences.IEclipsePreferences; @@ -80,7 +81,7 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.dnd.Clipboard; import org.eclipse.swt.dnd.TextTransfer; -import org.eclipse.swt.internal.Platform; +//import org.eclipse.swt.internal.Platform; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; @@ -581,6 +582,19 @@ public void run() { } } }); + + //Getting OS Version + String osName = System.getProperty("os.name"); + String osVersion = System.getProperty("os.version"); + String osArch = System.getProperty("os.arch"); + + //Getting Java Version + String javaVersion = System.getProperty("java.version"); + String javaVendor = System.getProperty("java.vendor"); + + //Getting Eclipse Version + String eclipseVersion = Platform.getBundle("org.eclipse.core.runtime").getVersion().toString(); + List mousEventList = new ArrayList<>(); List keyEvents = new ArrayList<>(); if(mouseClickListener!=null) { @@ -600,13 +614,17 @@ public void run() { - //sort based ont he event time + //sort based on the event time Collections.sort(listSequntialevents, new EventTimeComparator()); EventDataJsonObject edjo = new EventDataJsonObject(listSequntialevents,errorLogList); +// System.out.println("EDJO"+edjo); edjo.setIPAddress(Utils.getIpAddress()); edjo.setMACAddress(Utils.getMacAddress()); edjo.setPluginVersion("V1.0.1"); + edjo.setOSInfo(osName, osVersion, osArch); + edjo.setJavaInfo(javaVersion, javaVendor); + edjo.setEclipseInfo(eclipseVersion); System.out.println("retrived key would be: "); //System.out.println(retriveKey()); //Save as json diff --git a/TestPluginProject/src/testpluginproject/model/jsonModel/EventDataJsonObject.java b/TestPluginProject/src/testpluginproject/model/jsonModel/EventDataJsonObject.java index 6c6aef9..36b186e 100644 --- a/TestPluginProject/src/testpluginproject/model/jsonModel/EventDataJsonObject.java +++ b/TestPluginProject/src/testpluginproject/model/jsonModel/EventDataJsonObject.java @@ -27,6 +27,12 @@ public class EventDataJsonObject { private String IPAddress; private String MACAddress; private String PluginVersion; + private String osName; + private String osVersion; + private String osArch; + private String javaVersion; + private String javaVendor; + private String eclipseVersion; public EventDataJsonObject(List sequentialEventData,List errorLogList) { this.errorLogList = errorLogList; @@ -76,6 +82,21 @@ public String getMACAddress() { public void setMACAddress(String mACAddress) { MACAddress = mACAddress; } + + public void setOSInfo(String osName, String osVersion, String osArch) { + this.osName = osName; + this.osVersion = osVersion; + this.osArch = osArch; + } + + public void setJavaInfo(String javaVersion, String javaVendor) { + this.javaVersion = javaVersion; + this.javaVendor = javaVendor; + } + + public void setEclipseInfo(String eclipseVersion) { + this.eclipseVersion = eclipseVersion; + } @Override From 65a65dce53dc663c0e9a3215ab4c0b1c537f6e03 Mon Sep 17 00:00:00 2001 From: Varad0210 Date: Mon, 28 Oct 2024 23:02:33 -0400 Subject: [PATCH 2/5] Keyboard and mouse Events in order --- TestPluginProject/src/testpluginproject/Activator.java | 7 ++++--- .../handlers/listener/KeyBoardClickListener.java | 7 +++++++ .../handlers/listener/LoggerResourceChangeListener.java | 6 +++++- .../handlers/listener/MouseClickListener.java | 5 ++++- .../handlers/listener/WindowClickListener.java | 5 ++++- 5 files changed, 24 insertions(+), 6 deletions(-) diff --git a/TestPluginProject/src/testpluginproject/Activator.java b/TestPluginProject/src/testpluginproject/Activator.java index 9200bed..6204457 100644 --- a/TestPluginProject/src/testpluginproject/Activator.java +++ b/TestPluginProject/src/testpluginproject/Activator.java @@ -179,7 +179,7 @@ public void start(BundleContext context) throws Exception { retriveKey(); plugin = this; - LoggerResourceChangeListener listener = new LoggerResourceChangeListener(); + LoggerResourceChangeListener listener = new LoggerResourceChangeListener(keyBoardClickListener); ResourcesPlugin.getWorkspace().addResourceChangeListener(listener); // Initialize and start the file system watcher @@ -728,6 +728,7 @@ private void recordUserAction(String commandId, ICommandService commandService, //System.out.println("Console Output Data: "+consoleOutput); //System.out.println("MenubarClick Data: "+MenuBarClickActions); // System.out.println("WorkSpaceErrorLog Data: "+errorLogList); + keyBoardClickListener.immediateSave(); Map parameters = new HashMap<>(); String [] commandStr = commandId.split("\\."); String activePart = commandStr[commandStr.length-2]; @@ -845,12 +846,12 @@ private void showErrorDialog(String message, Throwable throwable) { private void addSelectionListener(IWorkbenchWindow window) { if (window != null) { - mouseClickListener = new MouseClickListener(window); keyBoardClickListener = new KeyBoardClickListener(); + mouseClickListener = new MouseClickListener(window, keyBoardClickListener); window.getShell().getDisplay().addFilter(org.eclipse.swt.SWT.MouseDown, mouseClickListener); window.getShell().getDisplay().addFilter(org.eclipse.swt.SWT.MouseDoubleClick,mouseClickListener); window.getShell().getDisplay().addFilter(org.eclipse.swt.SWT.KeyDown, keyBoardClickListener); - window.getWorkbench().getActiveWorkbenchWindow().getPartService().addPartListener(new WindowClickListener(listSequntialevents,window)); + window.getWorkbench().getActiveWorkbenchWindow().getPartService().addPartListener(new WindowClickListener(listSequntialevents,window,keyBoardClickListener)); } diff --git a/TestPluginProject/src/testpluginproject/handlers/listener/KeyBoardClickListener.java b/TestPluginProject/src/testpluginproject/handlers/listener/KeyBoardClickListener.java index 4298436..905a797 100644 --- a/TestPluginProject/src/testpluginproject/handlers/listener/KeyBoardClickListener.java +++ b/TestPluginProject/src/testpluginproject/handlers/listener/KeyBoardClickListener.java @@ -114,6 +114,13 @@ public void run() { }, 5000); } + + public void immediateSave() { + System.out.println("Immediate save"); + if(this.KeyBoardClickEvents.toString().length()!=0) { + processKeyboardEvents(); + } + } private void processKeyboardEvents() { // TODO Auto-generated method stub SequentialEventData seDKB = new SequentialEventData("KeyBoardClickEvent", this.KeyBoardClickEvents.toString()); diff --git a/TestPluginProject/src/testpluginproject/handlers/listener/LoggerResourceChangeListener.java b/TestPluginProject/src/testpluginproject/handlers/listener/LoggerResourceChangeListener.java index eb5e251..a83866a 100644 --- a/TestPluginProject/src/testpluginproject/handlers/listener/LoggerResourceChangeListener.java +++ b/TestPluginProject/src/testpluginproject/handlers/listener/LoggerResourceChangeListener.java @@ -21,9 +21,12 @@ public class LoggerResourceChangeListener implements IResourceChangeListener { + KeyBoardClickListener keyBoardClickListener; + - public LoggerResourceChangeListener() { + public LoggerResourceChangeListener(KeyBoardClickListener keyBoardClickListener) { super(); + this.keyBoardClickListener = keyBoardClickListener; // TODO Auto-generated constructor stub } @@ -61,6 +64,7 @@ private class DeltaVisitor implements IResourceDeltaVisitor { @Override public boolean visit(IResourceDelta delta) { + keyBoardClickListener.immediateSave(); SequentialEventData sed = null; boolean defined = false; if (delta.getKind() == IResourceDelta.ADDED) { diff --git a/TestPluginProject/src/testpluginproject/handlers/listener/MouseClickListener.java b/TestPluginProject/src/testpluginproject/handlers/listener/MouseClickListener.java index c008b33..66ea08c 100644 --- a/TestPluginProject/src/testpluginproject/handlers/listener/MouseClickListener.java +++ b/TestPluginProject/src/testpluginproject/handlers/listener/MouseClickListener.java @@ -48,9 +48,11 @@ public class MouseClickListener implements MouseListener, Listener{ IWorkbenchWindow window; + KeyBoardClickListener keyBoardClickListener; List mouseClickData; - public MouseClickListener(IWorkbenchWindow window) { + public MouseClickListener(IWorkbenchWindow window, KeyBoardClickListener keyBoardClickListener) { this.mouseClickData = new ArrayList<>(); + this.keyBoardClickListener = keyBoardClickListener; this.window = window; } @@ -103,6 +105,7 @@ public void mouseExited(MouseEvent e) { @Override public void handleEvent(Event event) { // TODO Auto-generated method stub + keyBoardClickListener.immediateSave(); if(window.getActivePage()!=null) { if(window.getActivePage().getActivePart()!=null) { try { diff --git a/TestPluginProject/src/testpluginproject/handlers/listener/WindowClickListener.java b/TestPluginProject/src/testpluginproject/handlers/listener/WindowClickListener.java index 955da0f..b2774d6 100644 --- a/TestPluginProject/src/testpluginproject/handlers/listener/WindowClickListener.java +++ b/TestPluginProject/src/testpluginproject/handlers/listener/WindowClickListener.java @@ -31,8 +31,10 @@ public class WindowClickListener implements IPartListener { List activeWindow; - public WindowClickListener(List activeWindowList, IWorkbenchWindow window) { + KeyBoardClickListener keyBoardClickListener; + public WindowClickListener(List activeWindowList, IWorkbenchWindow window, KeyBoardClickListener keyBoardClickListener) { this.activeWindow = activeWindowList; + this.keyBoardClickListener = keyBoardClickListener; System.out.println("inside the menubar listener!"); System.out.println("Current Active Window is: "+window.getPartService().getActivePart().getTitle()); } @@ -50,6 +52,7 @@ public void partActivated(IWorkbenchPart part) { GlobalVars.lastOpenFile = path.toFile().toString(); } } + keyBoardClickListener.immediateSave(); this.activeWindow.add(new SequentialEventData("WindowClickEvent",part.getTitle())); From 8a12c34a7c3fac775ff16608eab2948772366a1a Mon Sep 17 00:00:00 2001 From: Varad0210 Date: Tue, 5 Nov 2024 14:01:56 -0500 Subject: [PATCH 3/5] Minor bug fixes --- TestPluginProject/src/testpluginproject/Activator.java | 3 ++- .../handlers/listener/LoggerResourceChangeListener.java | 7 ++++--- .../src/testpluginproject/model/MouseClickData.java | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/TestPluginProject/src/testpluginproject/Activator.java b/TestPluginProject/src/testpluginproject/Activator.java index 6204457..7362c94 100644 --- a/TestPluginProject/src/testpluginproject/Activator.java +++ b/TestPluginProject/src/testpluginproject/Activator.java @@ -179,7 +179,8 @@ public void start(BundleContext context) throws Exception { retriveKey(); plugin = this; - LoggerResourceChangeListener listener = new LoggerResourceChangeListener(keyBoardClickListener); +// LoggerResourceChangeListener listener = new LoggerResourceChangeListener(keyBoardClickListener); + LoggerResourceChangeListener listener = new LoggerResourceChangeListener(); ResourcesPlugin.getWorkspace().addResourceChangeListener(listener); // Initialize and start the file system watcher diff --git a/TestPluginProject/src/testpluginproject/handlers/listener/LoggerResourceChangeListener.java b/TestPluginProject/src/testpluginproject/handlers/listener/LoggerResourceChangeListener.java index a83866a..48f03dc 100644 --- a/TestPluginProject/src/testpluginproject/handlers/listener/LoggerResourceChangeListener.java +++ b/TestPluginProject/src/testpluginproject/handlers/listener/LoggerResourceChangeListener.java @@ -24,9 +24,9 @@ public class LoggerResourceChangeListener implements IResourceChangeListener { KeyBoardClickListener keyBoardClickListener; - public LoggerResourceChangeListener(KeyBoardClickListener keyBoardClickListener) { + public LoggerResourceChangeListener() { super(); - this.keyBoardClickListener = keyBoardClickListener; +// this.keyBoardClickListener = keyBoardClickListener; // TODO Auto-generated constructor stub } @@ -64,7 +64,8 @@ private class DeltaVisitor implements IResourceDeltaVisitor { @Override public boolean visit(IResourceDelta delta) { - keyBoardClickListener.immediateSave(); +// keyBoardClickListener.immediateSave(); + System.out.print("Here"); SequentialEventData sed = null; boolean defined = false; if (delta.getKind() == IResourceDelta.ADDED) { diff --git a/TestPluginProject/src/testpluginproject/model/MouseClickData.java b/TestPluginProject/src/testpluginproject/model/MouseClickData.java index 3d85452..6d7f695 100644 --- a/TestPluginProject/src/testpluginproject/model/MouseClickData.java +++ b/TestPluginProject/src/testpluginproject/model/MouseClickData.java @@ -24,7 +24,7 @@ public MouseClickData(int X,int Y,String fileName,int Line, int charOffset) { this.fileName = fileName; this.time = dateFormat.format(new Date()); this.Line = Line; - this.CharOffset = CharOffset; + this.CharOffset = charOffset; this.username = Utils.getUsernameFromPref(); } From dbd45a39a32ce754902efd533f6a325f29dfb500 Mon Sep 17 00:00:00 2001 From: Varad0210 Date: Mon, 2 Dec 2024 20:54:49 -0500 Subject: [PATCH 4/5] Added missing comments and tested once again --- .../src/testpluginproject/Activator.java | 13 +++++++------ .../handlers/listener/KeyBoardClickListener.java | 1 + .../listener/LoggerResourceChangeListener.java | 5 ----- .../handlers/listener/MouseClickListener.java | 3 ++- .../handlers/listener/WindowClickListener.java | 6 +++--- .../src/testpluginproject/model/MouseClickData.java | 1 + .../model/jsonModel/EventDataJsonObject.java | 4 ++++ 7 files changed, 18 insertions(+), 15 deletions(-) diff --git a/TestPluginProject/src/testpluginproject/Activator.java b/TestPluginProject/src/testpluginproject/Activator.java index 7362c94..8f5825d 100644 --- a/TestPluginProject/src/testpluginproject/Activator.java +++ b/TestPluginProject/src/testpluginproject/Activator.java @@ -65,7 +65,7 @@ import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.Platform; //Required for getting OS and other info import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.preferences.ConfigurationScope; import org.eclipse.core.runtime.preferences.IEclipsePreferences; @@ -81,7 +81,7 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.dnd.Clipboard; import org.eclipse.swt.dnd.TextTransfer; -//import org.eclipse.swt.internal.Platform; +//import org.eclipse.swt.internal.Platform; //Was causing conflict with org.eclipse.core.runtime.Platform import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; @@ -179,7 +179,6 @@ public void start(BundleContext context) throws Exception { retriveKey(); plugin = this; -// LoggerResourceChangeListener listener = new LoggerResourceChangeListener(keyBoardClickListener); LoggerResourceChangeListener listener = new LoggerResourceChangeListener(); ResourcesPlugin.getWorkspace().addResourceChangeListener(listener); @@ -623,6 +622,8 @@ public void run() { edjo.setIPAddress(Utils.getIpAddress()); edjo.setMACAddress(Utils.getMacAddress()); edjo.setPluginVersion("V1.0.1"); + + //Save OS, Java and Eclipse version info edjo.setOSInfo(osName, osVersion, osArch); edjo.setJavaInfo(javaVersion, javaVendor); edjo.setEclipseInfo(eclipseVersion); @@ -729,7 +730,7 @@ private void recordUserAction(String commandId, ICommandService commandService, //System.out.println("Console Output Data: "+consoleOutput); //System.out.println("MenubarClick Data: "+MenuBarClickActions); // System.out.println("WorkSpaceErrorLog Data: "+errorLogList); - keyBoardClickListener.immediateSave(); + keyBoardClickListener.immediateSave(); //Immediate save after some action e.g. cut, copy, paste, etc Map parameters = new HashMap<>(); String [] commandStr = commandId.split("\\."); String activePart = commandStr[commandStr.length-2]; @@ -848,11 +849,11 @@ private void addSelectionListener(IWorkbenchWindow window) { if (window != null) { keyBoardClickListener = new KeyBoardClickListener(); - mouseClickListener = new MouseClickListener(window, keyBoardClickListener); + mouseClickListener = new MouseClickListener(window, keyBoardClickListener); //Passes keyBoardClickListner info into mouse click for immediate save window.getShell().getDisplay().addFilter(org.eclipse.swt.SWT.MouseDown, mouseClickListener); window.getShell().getDisplay().addFilter(org.eclipse.swt.SWT.MouseDoubleClick,mouseClickListener); window.getShell().getDisplay().addFilter(org.eclipse.swt.SWT.KeyDown, keyBoardClickListener); - window.getWorkbench().getActiveWorkbenchWindow().getPartService().addPartListener(new WindowClickListener(listSequntialevents,window,keyBoardClickListener)); + window.getWorkbench().getActiveWorkbenchWindow().getPartService().addPartListener(new WindowClickListener(listSequntialevents,window,keyBoardClickListener)); //Passes keyBoardClickListner info into window change for immediate save } diff --git a/TestPluginProject/src/testpluginproject/handlers/listener/KeyBoardClickListener.java b/TestPluginProject/src/testpluginproject/handlers/listener/KeyBoardClickListener.java index 905a797..f50090d 100644 --- a/TestPluginProject/src/testpluginproject/handlers/listener/KeyBoardClickListener.java +++ b/TestPluginProject/src/testpluginproject/handlers/listener/KeyBoardClickListener.java @@ -115,6 +115,7 @@ public void run() { } + //Immediately save whatever is in the buffer public void immediateSave() { System.out.println("Immediate save"); if(this.KeyBoardClickEvents.toString().length()!=0) { diff --git a/TestPluginProject/src/testpluginproject/handlers/listener/LoggerResourceChangeListener.java b/TestPluginProject/src/testpluginproject/handlers/listener/LoggerResourceChangeListener.java index 48f03dc..eb5e251 100644 --- a/TestPluginProject/src/testpluginproject/handlers/listener/LoggerResourceChangeListener.java +++ b/TestPluginProject/src/testpluginproject/handlers/listener/LoggerResourceChangeListener.java @@ -21,12 +21,9 @@ public class LoggerResourceChangeListener implements IResourceChangeListener { - KeyBoardClickListener keyBoardClickListener; - public LoggerResourceChangeListener() { super(); -// this.keyBoardClickListener = keyBoardClickListener; // TODO Auto-generated constructor stub } @@ -64,8 +61,6 @@ private class DeltaVisitor implements IResourceDeltaVisitor { @Override public boolean visit(IResourceDelta delta) { -// keyBoardClickListener.immediateSave(); - System.out.print("Here"); SequentialEventData sed = null; boolean defined = false; if (delta.getKind() == IResourceDelta.ADDED) { diff --git a/TestPluginProject/src/testpluginproject/handlers/listener/MouseClickListener.java b/TestPluginProject/src/testpluginproject/handlers/listener/MouseClickListener.java index 66ea08c..f76778c 100644 --- a/TestPluginProject/src/testpluginproject/handlers/listener/MouseClickListener.java +++ b/TestPluginProject/src/testpluginproject/handlers/listener/MouseClickListener.java @@ -50,6 +50,7 @@ public class MouseClickListener implements MouseListener, Listener{ IWorkbenchWindow window; KeyBoardClickListener keyBoardClickListener; List mouseClickData; + //Get keyboard buffer and create a local variable public MouseClickListener(IWorkbenchWindow window, KeyBoardClickListener keyBoardClickListener) { this.mouseClickData = new ArrayList<>(); this.keyBoardClickListener = keyBoardClickListener; @@ -105,7 +106,7 @@ public void mouseExited(MouseEvent e) { @Override public void handleEvent(Event event) { // TODO Auto-generated method stub - keyBoardClickListener.immediateSave(); + keyBoardClickListener.immediateSave(); //Immediate save keyboard buffer after mouse click if(window.getActivePage()!=null) { if(window.getActivePage().getActivePart()!=null) { try { diff --git a/TestPluginProject/src/testpluginproject/handlers/listener/WindowClickListener.java b/TestPluginProject/src/testpluginproject/handlers/listener/WindowClickListener.java index b2774d6..3ab531d 100644 --- a/TestPluginProject/src/testpluginproject/handlers/listener/WindowClickListener.java +++ b/TestPluginProject/src/testpluginproject/handlers/listener/WindowClickListener.java @@ -31,10 +31,10 @@ public class WindowClickListener implements IPartListener { List activeWindow; - KeyBoardClickListener keyBoardClickListener; + KeyBoardClickListener keyBoardClickListener; //Create a local variable for keyboard buffer public WindowClickListener(List activeWindowList, IWorkbenchWindow window, KeyBoardClickListener keyBoardClickListener) { this.activeWindow = activeWindowList; - this.keyBoardClickListener = keyBoardClickListener; + this.keyBoardClickListener = keyBoardClickListener; //Save keyboard buffer to a local variable System.out.println("inside the menubar listener!"); System.out.println("Current Active Window is: "+window.getPartService().getActivePart().getTitle()); } @@ -52,7 +52,7 @@ public void partActivated(IWorkbenchPart part) { GlobalVars.lastOpenFile = path.toFile().toString(); } } - keyBoardClickListener.immediateSave(); + keyBoardClickListener.immediateSave(); //Immediate save after window switch this.activeWindow.add(new SequentialEventData("WindowClickEvent",part.getTitle())); diff --git a/TestPluginProject/src/testpluginproject/model/MouseClickData.java b/TestPluginProject/src/testpluginproject/model/MouseClickData.java index 6d7f695..4ecf63e 100644 --- a/TestPluginProject/src/testpluginproject/model/MouseClickData.java +++ b/TestPluginProject/src/testpluginproject/model/MouseClickData.java @@ -24,6 +24,7 @@ public MouseClickData(int X,int Y,String fileName,int Line, int charOffset) { this.fileName = fileName; this.time = dateFormat.format(new Date()); this.Line = Line; + // Variable name was causing issue of offset not registering this.CharOffset = charOffset; this.username = Utils.getUsernameFromPref(); diff --git a/TestPluginProject/src/testpluginproject/model/jsonModel/EventDataJsonObject.java b/TestPluginProject/src/testpluginproject/model/jsonModel/EventDataJsonObject.java index 36b186e..1b09891 100644 --- a/TestPluginProject/src/testpluginproject/model/jsonModel/EventDataJsonObject.java +++ b/TestPluginProject/src/testpluginproject/model/jsonModel/EventDataJsonObject.java @@ -27,6 +27,7 @@ public class EventDataJsonObject { private String IPAddress; private String MACAddress; private String PluginVersion; + //Get additional info about OS, Java and Eclipse private String osName; private String osVersion; private String osArch; @@ -83,17 +84,20 @@ public void setMACAddress(String mACAddress) { MACAddress = mACAddress; } + //OS info public void setOSInfo(String osName, String osVersion, String osArch) { this.osName = osName; this.osVersion = osVersion; this.osArch = osArch; } + //Java info public void setJavaInfo(String javaVersion, String javaVendor) { this.javaVersion = javaVersion; this.javaVendor = javaVendor; } + //Eclipse info public void setEclipseInfo(String eclipseVersion) { this.eclipseVersion = eclipseVersion; } From 6c5a6fc3ebf84ad4e94d8e533fd9129eb372eb87 Mon Sep 17 00:00:00 2001 From: Varad0210 Date: Sun, 4 May 2025 18:09:58 -0400 Subject: [PATCH 5/5] CSC preference --- TestPluginProject/plugin.xml | 2 +- .../src/testpluginproject/UserLogin.java | 29 +++++++++++++++++-- .../src/testpluginproject/utils/Utils.java | 6 +++- 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/TestPluginProject/plugin.xml b/TestPluginProject/plugin.xml index 65a46b6..49f7942 100644 --- a/TestPluginProject/plugin.xml +++ b/TestPluginProject/plugin.xml @@ -29,7 +29,7 @@ + name="CSC Preferences"> diff --git a/TestPluginProject/src/testpluginproject/UserLogin.java b/TestPluginProject/src/testpluginproject/UserLogin.java index 4d2b527..c78f557 100644 --- a/TestPluginProject/src/testpluginproject/UserLogin.java +++ b/TestPluginProject/src/testpluginproject/UserLogin.java @@ -2,6 +2,7 @@ import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.jface.preference.BooleanFieldEditor; +import org.eclipse.jface.preference.ComboFieldEditor; import org.eclipse.jface.preference.DirectoryFieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.RadioGroupFieldEditor; @@ -19,13 +20,37 @@ public UserLogin() { public void createFieldEditors() { addField(new StringFieldEditor("USERNAME", "Unity ID:", getFieldEditorParent())); addField(new StringFieldEditor("EMAIL", "NCSU Email:", getFieldEditorParent())); + + String[][] semesterOptions = { + {"Fall", "Fall"}, + {"Spring", "Spring"}, + {"Summer 1", "Summer1"}, + {"Summer 2", "Summer2"}, + {"Summer 1 and 2", "Summer1&2"}, + }; + addField(new ComboFieldEditor("SEMESTER", "Semester:", semesterOptions, getFieldEditorParent())); + + String[][] courseOptions = { + {"CSC116", "116"}, + {"CSC216", "216"}, + {"CSC316", "316"}, + {"CSC416", "416"}, + }; + addField(new ComboFieldEditor("COURSE", "Course Number:", courseOptions, getFieldEditorParent())); + + String[][] sectionOptions = { + {"Section 001", "001"}, + {"Section 002", "002"}, + {"Section 003", "003"} + }; + addField(new ComboFieldEditor("SECTION", "Section:", sectionOptions, getFieldEditorParent())); } @Override public void init(IWorkbench workbench) { // second parameter is typically the plug-in id - setPreferenceStore(new ScopedPreferenceStore(InstanceScope.INSTANCE, "csc216.plugin.prefs.page")); - setDescription("CSC 216 Student Info"); + setPreferenceStore(new ScopedPreferenceStore(InstanceScope.INSTANCE, "csc.plugin.prefs.page")); + setDescription("CSC Student Info"); } } \ No newline at end of file diff --git a/TestPluginProject/src/testpluginproject/utils/Utils.java b/TestPluginProject/src/testpluginproject/utils/Utils.java index 1aa1a77..81ad71f 100644 --- a/TestPluginProject/src/testpluginproject/utils/Utils.java +++ b/TestPluginProject/src/testpluginproject/utils/Utils.java @@ -15,10 +15,14 @@ public class Utils { public static String getUsernameFromPref() { - IEclipsePreferences preferences = InstanceScope.INSTANCE.getNode("csc216.plugin.prefs.page"); + IEclipsePreferences preferences = InstanceScope.INSTANCE.getNode("csc.plugin.prefs.page"); //deal with ill formatted usernames String username = preferences.get("USERNAME", "default").toLowerCase(); String email = preferences.get("EMAIL", "default").toLowerCase(); + String semester = preferences.get("SEMESTER", "default"); + String course = preferences.get("COURSE", "default"); + String section = preferences.get("SECTION", "default"); + System.out.print(semester+" "+course+" "+section); if(email.contains("@ncsu.edu")) { if(email.replace("@ncsu.edu", "").equals(username)) { // They match, we can just move on