Skip to content

Commit d7a8424

Browse files
committed
real-time api
1 parent 7858a38 commit d7a8424

File tree

3 files changed

+40
-10
lines changed

3 files changed

+40
-10
lines changed

.idea/workspace.xml

Lines changed: 6 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/developer.md

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@ We provide a real-time data API for future JetBrains plugin developers and resea
3838
IDE tracker and eye tracker separately. The API is based on the [IDE Tracker](#ide-tracker)
3939
and [Eye Tracker](#eye-tracker).
4040

41+
#### Example Project
42+
43+
We provide an example project [DataStreamReceiver](https://github.com/codegrits/DataStreamReceiver)
44+
that builds on top of the real-time data API. It is designed to receive real-time IDE tracking and eye tracking data and
45+
directly visualize them in two separate windows. You could refer to the source code of the example project to learn how
46+
to use the API.
47+
4148
### Configuration
4249

4350
Before using the API, you first need to build CodeGRITS from source
@@ -52,6 +59,13 @@ intellij {
5259
}
5360
```
5461

62+
You also need to add the following to `./src/main/resources/META-INF/plugin.xml`.
63+
64+
```xml
65+
66+
<depends>com.nd.codegrits</depends>
67+
```
68+
5569
### Quick Start
5670

5771
To use the API, simply call the `getInstance()` method to get the instance of the IDE Tracker or Eye Tracker. Then, set
@@ -60,13 +74,13 @@ the `ideTrackerDataHandler` or `eyeTrackerDataHandler` to handle the real-time d
6074
method to start tracking.
6175

6276
```java
63-
IDETracker ideTracker = IDETracker.getInstance();
64-
ideTracker.setIsRealTimeDataTransmitting(true);
65-
ideTracker.setIdeTrackerDataHandler(element -> {
66-
String formattedStr = "Event: " + element.getAttribute("id");
67-
System.out.println(formattedStr);
68-
});
69-
ideTracker.startTracking(currentProject);
77+
IDETracker ideTracker=IDETracker.getInstance();
78+
ideTracker.setIsRealTimeDataTransmitting(true);
79+
ideTracker.setIdeTrackerDataHandler(element->{
80+
String formattedStr="Event: "+element.getAttribute("id");
81+
System.out.println(formattedStr);
82+
});
83+
ideTracker.startTracking(currentProject);
7084
```
7185

7286
!!!

src/main/java/trackers/EyeTracker.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,20 @@ public void selectionChanged(@NotNull FileEditorManagerEvent event) {
8888
}
8989
}
9090
});
91+
}
9192

93+
public EyeTracker(String pythonInterpreter, double sampleFrequency, boolean isUsingMouse) throws ParserConfigurationException {
94+
// designed specifically for the real-time data API
95+
this(); // call default constructor
96+
if (isUsingMouse) {
97+
deviceIndex = 0;
98+
} else {
99+
deviceIndex = 1;
100+
}
101+
this.pythonInterpreter = pythonInterpreter;
102+
this.sampleFrequency = sampleFrequency;
103+
setPythonScriptMouse();
104+
setPythonScriptTobii();
92105
}
93106

94107
VisibleAreaListener visibleAreaListener = e -> visibleArea = e.getNewRectangle();

0 commit comments

Comments
 (0)