Skip to content
Snippets Groups Projects
Commit 66c80f3a authored by Tobias Ask's avatar Tobias Ask
Browse files

Merge branch 'master' into 22-jdk-9-is-not-supported

# Conflicts:
#	sb4e.test/META-INF/MANIFEST.MF
parents 9fbbd0a8 9d79b258
Branches
No related tags found
1 merge request!14Resolve "JDK 9 is not supported"
Pipeline #
Showing
with 48 additions and 39 deletions
......@@ -8,7 +8,7 @@
<parent>
<groupId>no.tobask.sb4e</groupId>
<artifactId>no.tobask.sb4e.parent</artifactId>
<version>0.9.1</version>
<version>0.9.2-SNAPSHOT</version>
<relativePath>../sb4e.parent</relativePath>
</parent>
......
......@@ -4,7 +4,7 @@
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.151" xmlns:fx="http://javafx.com/fxml/1" fx:controller="GreatFxmlController.java">
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.151" xmlns:fx="http://javafx.com/fxml/1" fx:controller="no.tobask.sb4e.examples.GreatFxmlController">
<children>
<Button layoutX="58.0" layoutY="296.0" mnemonicParsing="false" text="Button" fx:id="button" />
<Label layoutX="350.0" layoutY="200.0" text="Label" />
......
......@@ -2,7 +2,7 @@
<feature
id="no.tobask.sb4e.feature"
label="sb4e - Scene Builder integration for Eclipse"
version="0.9.1"
version="0.9.2.qualifier"
provider-name="Tobias Ask">
<description url="http://www.example.com/description">
......
......@@ -6,7 +6,7 @@
<parent>
<groupId>no.tobask.sb4e</groupId>
<artifactId>no.tobask.sb4e.parent</artifactId>
<version>0.9.1</version>
<version>0.9.2-SNAPSHOT</version>
<relativePath>../sb4e.parent</relativePath>
</parent>
</project>
\ No newline at end of file
......@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>no.tobask.sb4e</groupId>
<artifactId>no.tobask.sb4e.parent</artifactId>
<version>0.9.1</version>
<version>0.9.2-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
......@@ -62,7 +62,7 @@
<artifact>
<groupId>no.tobask.sb4e</groupId>
<artifactId>no.tobask.sb4e.target</artifactId>
<version>0.9.1</version>
<version>0.9.2-SNAPSHOT</version>
</artifact>
</target>
<dependency-resolution>
......
<?xml version="1.0" encoding="UTF-8"?>
<site>
<feature url="features/no.tobask.sb4e.feature_0.9.1.jar" id="no.tobask.sb4e.feature" version="0.9.1">
<feature url="features/no.tobask.sb4e.feature_0.9.2.qualifier.jar" id="no.tobask.sb4e.feature" version="0.9.2.qualifier">
<category name="no.tobask.sb4e"/>
</feature>
<category-def name="no.tobask.sb4e" label="no.tobask.sb4e"/>
......
......@@ -6,7 +6,7 @@
<parent>
<groupId>no.tobask.sb4e</groupId>
<artifactId>no.tobask.sb4e.parent</artifactId>
<version>0.9.1</version>
<version>0.9.2-SNAPSHOT</version>
<relativePath>../sb4e.parent</relativePath>
</parent>
</project>
\ No newline at end of file
......@@ -7,7 +7,7 @@
<parent>
<groupId>no.tobask.sb4e</groupId>
<artifactId>no.tobask.sb4e.parent</artifactId>
<version>0.9.1</version>
<version>0.9.2-SNAPSHOT</version>
<relativePath>../sb4e.parent</relativePath>
</parent>
</project>
\ No newline at end of file
......@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Test
Bundle-SymbolicName: no.tobask.sb4e.test
Bundle-Version: 0.9.1
Bundle-Version: 0.9.2.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-9
Require-Bundle: no.tobask.sb4e;bundle-version="0.9.0",
org.junit;bundle-version="4.12.0",
......
......@@ -8,7 +8,7 @@
<parent>
<groupId>no.tobask.sb4e</groupId>
<artifactId>no.tobask.sb4e.parent</artifactId>
<version>0.9.1</version>
<version>0.9.2-SNAPSHOT</version>
<relativePath>../sb4e.parent</relativePath>
</parent>
......
......@@ -10,8 +10,6 @@ import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
import com.oracle.javafx.scenebuilder.kit.editor.panel.inspector.InspectorPanelController;
import no.tobask.sb4e.editors.FXMLEditor;
import no.tobask.sb4e.views.IWorkbenchAccessor;
import no.tobask.sb4e.views.InspectorView;
......@@ -37,32 +35,28 @@ public class InspectorViewTest {
@Test
public void setsEditorCtrler_WhenEditorIsActivated_AndEditorHasNewEditorCtrler() {
FXMLEditor editor = mock(FXMLEditor.class);
InspectorPanelController inspectorPanelController = mock(InspectorPanelController.class);
EditorController editorController = mock(EditorController.class);
EditorController editorEditorController = mock(EditorController.class);
when(inspectorViewController.getInspectorPanelController()).thenReturn(inspectorPanelController);
when(inspectorPanelController.getEditorController()).thenReturn(editorController);
when(inspectorViewController.getEditorController()).thenReturn(editorController);
when(editor.getEditorController()).thenReturn(editorEditorController);
inspectorView.partActivated(editor);
verify(inspectorPanelController).setEditorController(editorEditorController);
verify(inspectorViewController).setEditorController(editorEditorController);
}
@Test
public void resetsEditorCtrler_WhenOtherPartIsActivated_AndNoFxmlEditorsAreVisible() {
IWorkbenchPart part = mock(IWorkbenchPart.class);
InspectorPanelController inspectorPanelController = mock(InspectorPanelController.class);
EditorController editorController = mock(EditorController.class);
when(inspectorViewController.getInspectorPanelController()).thenReturn(inspectorPanelController);
when(inspectorPanelController.getEditorController()).thenReturn(editorController);
when(inspectorViewController.getEditorController()).thenReturn(editorController);
when(workbenchAccessor.anyFxmlEditorsVisible()).thenReturn(false);
inspectorView.partActivated(part);
ArgumentCaptor<EditorController> editorCtrlerArgument = ArgumentCaptor.
forClass(EditorController.class);
verify(inspectorPanelController).setEditorController(editorCtrlerArgument.capture());
verify(inspectorViewController).setEditorController(editorCtrlerArgument.capture());
assertEquals(null, editorCtrlerArgument.getValue().getFxmlLocation());
}
......
......@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: sb4e
Bundle-SymbolicName: no.tobask.sb4e;singleton:=true
Bundle-Version: 0.9.1
Bundle-Version: 0.9.2.qualifier
Bundle-Activator: no.tobask.sb4e.Activator
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.ui;bundle-version="3.109.0",
......
......@@ -6,7 +6,7 @@
<parent>
<groupId>no.tobask.sb4e</groupId>
<artifactId>no.tobask.sb4e.parent</artifactId>
<version>0.9.1</version>
<version>0.9.2-SNAPSHOT</version>
<relativePath>../sb4e.parent</relativePath>
</parent>
</project>
\ No newline at end of file
......@@ -12,6 +12,7 @@ import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jdt.core.IPackageFragmentRoot;
......@@ -33,11 +34,11 @@ public class JavaModelUtils {
return null;
}
public static IPackageFragment getPackageContainingFile(URL fileLocation) {
public static IJavaElement getPackageContainingFile(URL fileLocation) {
IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
IPath path = new Path(fileLocation.getPath()).removeLastSegments(1);
IFolder folder = (IFolder) workspaceRoot.getContainerForLocation(path);
return (IPackageFragment) JavaCore.create(folder);
return JavaCore.create(folder);
}
public static IJavaProject getJavaProjectFromUrl(URL fileLocation) {
......
......@@ -55,7 +55,9 @@ public class JavaProjectGlossary extends Glossary implements IElementChangedList
public List<String> queryControllerClasses(URL fxmlLocation) {
if (candidateControllers == null) {
IJavaProject project = JavaModelUtils.getJavaProjectFromUrl(fxmlLocation);
String packageName = JavaModelUtils.getPackageContainingFile(fxmlLocation).getElementName();
IJavaElement pkgWithFile = JavaModelUtils.getPackageContainingFile(fxmlLocation);
String packageName = (pkgWithFile.getElementType() == IJavaElement.PACKAGE_FRAGMENT) ?
pkgWithFile.getElementName() : "";
candidateControllers = new ArrayList<>();
for (IPackageFragment pkg : JavaModelUtils.getAllMatchingPackages(packageName, project)) {
candidateControllers.addAll(getCandidateControllers(pkg));
......
package no.tobask.sb4e.views;
import no.tobask.sb4e.editors.FXMLEditor;
public interface IWorkbenchAccessor {
public boolean anyFxmlEditorsVisible();
public boolean hasActiveFxmlEditor();
public FXMLEditor getActiveFxmlEditor();
}
......@@ -10,8 +10,6 @@ import org.eclipse.ui.IPartListener;
import org.eclipse.ui.IPartService;
import org.eclipse.ui.IWorkbenchPart;
import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
import com.oracle.javafx.scenebuilder.kit.editor.panel.inspector.InspectorPanelController;
import javafx.embed.swt.FXCanvas;
import no.tobask.sb4e.editors.FXMLEditor;
......@@ -38,6 +36,11 @@ public class InspectorView implements IPartListener {
canvas = new FXCanvas(parent, SWT.NONE);
canvas.setScene(inspectorViewController.getScene());
partService.addPartListener(this);
if (workbenchAccessor.hasActiveFxmlEditor()) {
FXMLEditor editor = workbenchAccessor.getActiveFxmlEditor();
inspectorViewController.setEditorController(editor.getEditorController());
}
}
@Focus
......@@ -45,7 +48,7 @@ public class InspectorView implements IPartListener {
}
public void dispose() {
inspectorViewController.getInspectorPanelController().setEditorController(dummyEditorController);
inspectorViewController.setEditorController(dummyEditorController);
if (canvas != null) {
canvas.dispose();
}
......@@ -54,18 +57,16 @@ public class InspectorView implements IPartListener {
@Override
public void partActivated(IWorkbenchPart part) {
InspectorPanelController inspectorPanelController = inspectorViewController
.getInspectorPanelController();
EditorController currentController = inspectorPanelController.getEditorController();
EditorController currentController = inspectorViewController.getEditorController();
if (part instanceof FXMLEditor) {
EditorController partController = ((FXMLEditor) part).getEditorController();
if (currentController != partController) {
inspectorPanelController.setEditorController(partController);
inspectorViewController.setEditorController(partController);
}
} else {
if (!workbenchAccessor.anyFxmlEditorsVisible() &&
currentController != dummyEditorController) {
inspectorPanelController.setEditorController(dummyEditorController);
inspectorViewController.setEditorController(dummyEditorController);
}
}
}
......@@ -78,9 +79,7 @@ public class InspectorView implements IPartListener {
@Override
public void partClosed(IWorkbenchPart part) {
if (!workbenchAccessor.hasActiveFxmlEditor()) {
InspectorPanelController inspectorPanelController = inspectorViewController
.getInspectorPanelController();
inspectorPanelController.setEditorController(dummyEditorController);
inspectorViewController.setEditorController(dummyEditorController);
}
}
......
......@@ -34,8 +34,12 @@ public class InspectorViewController extends AbstractFxmlWindowController {
inspectorSearchController = new SearchController(dummyEdtCtrl);
}
public InspectorPanelController getInspectorPanelController() {
return inspectorPanelController;
public EditorController getEditorController() {
return inspectorPanelController.getEditorController();
}
public void setEditorController(EditorController editorController) {
inspectorPanelController.setEditorController(editorController);
}
@Override
......
......@@ -38,4 +38,10 @@ public class WorkbenchAccessor implements IWorkbenchAccessor {
return activeEditor instanceof FXMLEditor;
}
@Override
public FXMLEditor getActiveFxmlEditor() {
IWorkbenchPage activePage = context.get(IWorkbenchPage.class);
return (FXMLEditor) activePage.getActiveEditor();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment