Skip to content

Commit 7446169

Browse files
Add a link to getting started view from the overview page (#490)
1 parent 08c5900 commit 7446169

File tree

6 files changed

+56
-17
lines changed

6 files changed

+56
-17
lines changed

src/assets/vscode.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ $link-hover-decoration: none !default;
77
$list-group-bg: var(--vscode-notifications-background) !default;
88
$list-group-active-color: var(--vscode-notifications-foreground) !default;
99
$list-group-active-bg: var(--vscode-notifications-border) !default;
10-
$list-group-hover-bg: $list-group-bg;
10+
$list-group-hover-bg: var(--vscode-list-hoverBackground) !default;
1111
$list-group-action-active-bg: $list-group-bg;
1212
$list-group-border-color: var(--vscode-notifications-background) !default;
1313
$list-group-action-color: var(--vscode-notifications-foreground) !default;

src/getting-started/assets/index.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,13 @@ $("a[data-toggle='tab']").on("shown.bs.tab", e => {
2626
tabId: e.target.id
2727
});
2828
});
29+
30+
// Handle the message inside the webview
31+
window.addEventListener('message', event => {
32+
const message = event.data;
33+
switch (message.command) {
34+
case 'tabActivated':
35+
($(message.tabId) as any).tab("show");
36+
break;
37+
}
38+
});

src/getting-started/index.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ import { sendInfo, instrumentOperation } from "vscode-extension-telemetry-wrappe
88

99
let javaGettingStartedView: vscode.WebviewPanel | undefined;
1010

11-
export async function javaGettingStartedCmdHandler(context: vscode.ExtensionContext, operationId: string) {
11+
export async function javaGettingStartedCmdHandler(context: vscode.ExtensionContext, operationId: string, tabId?: string) {
1212
if (javaGettingStartedView) {
13+
setActiveTab(javaGettingStartedView, operationId, tabId);
1314
javaGettingStartedView.reveal();
1415
return;
1516
}
@@ -22,9 +23,23 @@ export async function javaGettingStartedCmdHandler(context: vscode.ExtensionCont
2223
retainContextWhenHidden: true
2324
});
2425

26+
setActiveTab(javaGettingStartedView, operationId, tabId);
2527
await initializeJavaGettingStartedView(context, javaGettingStartedView, onDidDisposeWebviewPanel, operationId);
2628
}
2729

30+
function setActiveTab(webviewPanel: vscode.WebviewPanel, operationId: string, tabId?: string) {
31+
if (tabId) {
32+
sendInfo(operationId, {
33+
infoType: "tabActivated",
34+
tabId: tabId
35+
});
36+
webviewPanel.webview.postMessage({
37+
command: "tabActivated",
38+
tabId,
39+
});
40+
}
41+
}
42+
2843
function onDidDisposeWebviewPanel() {
2944
javaGettingStartedView = undefined;
3045
}
@@ -33,7 +48,6 @@ async function initializeJavaGettingStartedView(context: vscode.ExtensionContext
3348
webviewPanel.iconPath = vscode.Uri.file(path.join(context.extensionPath, "logo.lowres.png"));
3449
const resourceUri = context.asAbsolutePath("./out/assets/getting-started/index.html");
3550
webviewPanel.webview.html = await loadTextFromFile(resourceUri);
36-
3751
context.subscriptions.push(webviewPanel.onDidDispose(onDisposeCallback));
3852
context.subscriptions.push(webviewPanel.webview.onDidReceiveMessage(async (e) => {
3953
if (e.command === "tabActivated") {

src/overview/assets/index.html

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,6 @@ <h3 class="font-weight-light">Start</h3>
3333
<!-- <a href="command:java.helper.createJavaFile">Create a standalone Java file...</a><br> -->
3434
</div>
3535
</div>
36-
<div class="row mb-3">
37-
<div class="col">
38-
<h3 class="font-weight-light">Documentation</h3>
39-
<div>
40-
<a href="command:java.helper.openUrl?%22https%3A%2F%2Fcode.visualstudio.com%2Fdocs%2Flanguages%2Fjava%22" title="Learn how to work with Java code in VS Code">Java in VS Code Tutorial</a>
41-
</div>
42-
<div>
43-
<a href="command:java.helper.openUrl?%22https%3A%2F%2Fcode.visualstudio.com%2Fdocs%2Fjava%2Fjava-debugging%22" title="Learn how to debug Java apps in VS Code">Debugging Tutorial</a>
44-
</div>
45-
<div>
46-
<a href="command:java.helper.openUrl?%22https%3A%2F%2Fcode.visualstudio.com%2Fdocs%2Fjava%2Fjava-debugging%23_run-junit-tests%22" title="Learn how to work with JUnit test cases in VS Code">Run JUnit Tests</a>
47-
</div>
48-
</div>
49-
</div>
5036
<div class="row mb-3">
5137
<div class="col">
5238
<h3 class="font-weight-light">Key Bindings</h3>
@@ -161,6 +147,27 @@ <h3 class="font-weight-light">Help</h3>
161147
</div>
162148
</div>
163149
</div>
150+
<div class="col">
151+
<div class="row mb-3">
152+
<div class="col">
153+
<h3 class="font-weight-light">Learn</h3>
154+
<div class="list-group">
155+
<button id="gettingStartedBtn" class="list-group-item list-group-item-action flex-column align-items-start btn btn-link mb-2" title="Open Java Getting Started View">
156+
<p class="mb-1">Java Getting Started</p>
157+
<small>Learn 1 min <a href="command:java.gettingStarted?%22%23quick-start-tab%22">Quick Start</a> tutorial, common shortcuts for <a href="command:java.gettingStarted?%22%23code-editing-tab%22">Code Editing</a> and <a href="command:java.gettingStarted?%22%23debugging-tab%22">Debugging</a>, and <a href="command:java.gettingStarted?%22%23faq-tab%22">FAQ</a>.</small>
158+
</button>
159+
<a href="command:java.helper.openUrl?%22https%3A%2F%2Fcode.visualstudio.com%2Fdocs%2Fjava%2Fjava-debugging%22" class="list-group-item list-group-item-action flex-column align-items-start btn btn-link mb-2" title="Open Java Debugging Tutorial">
160+
<p class="mb-1">Debugging Tutorial</p>
161+
<small>Learn how to debug Java apps in VS Code.</small>
162+
</a>
163+
<a href="command:java.helper.openUrl?%22https%3A%2F%2Fcode.visualstudio.com%2Fdocs%2Fjava%2Fjava-testing%22" class="list-group-item list-group-item-action flex-column align-items-start btn btn-link mb-2" title="Open Java Testing Tutorial">
164+
<p class="mb-1">Run JUnit Tests</p>
165+
<small>Learn how to work with JUnit test cases in VS Code.</small>
166+
</a>
167+
</div>
168+
</div>
169+
</div>
170+
</div>
164171
</div>
165172
<div class="row">
166173
<div class="col">

src/overview/assets/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,9 @@ function installExtension(extName: string, displayName: string) {
5757
$("div[ext] > a").click(function () {
5858
installExtension($(this.parentElement).attr("ext") || "", $(this.parentElement).attr("displayName") || "");
5959
});
60+
61+
$("#gettingStartedBtn").click(function () {
62+
vscode.postMessage({
63+
command: "java.gettingStarted"
64+
});
65+
});

src/overview/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ async function initializeOverviewView(context: vscode.ExtensionContext, webviewP
8181
toggleOverviewVisibilityOperation(context, e.visibility);
8282
} else if (e.command === "installExtension") {
8383
await vscode.commands.executeCommand("java.helper.installExtension", e.extName, e.displayName);
84+
} else if (e.command === "java.gettingStarted") {
85+
await vscode.commands.executeCommand("java.gettingStarted");
8486
}
8587
}));
8688
}

0 commit comments

Comments
 (0)