This is an automated email from the ASF dual-hosted git repository.
cgarcia pushed a commit to branch feature/app
in repository https://gitbox.apache.org/repos/asf/plc4x-extras.git
The following commit(s) were added to refs/heads/feature/app by this push:
new c4c730f New projectype for plc4x. SubProject Tests 3.
c4c730f is described below
commit c4c730f7ce43b4ab47d28461213a06d56c99539f
Author: César García <[email protected]>
AuthorDate: Fri Feb 6 19:20:24 2026 -0400
New projectype for plc4x. SubProject Tests 3.
---
plc4j/tools/malbec/application/pom.xml | 5 +
plc4j/tools/malbec/core/pom.xml | 12 +++
plc4j/tools/malbec/malbec-core/pom.xml | 12 +++
plc4j/tools/malbec/pom.xml | 1 +
.../malbec/projecttype/comms/nb-configuration.xml | 18 ++++
plc4j/tools/malbec/projecttype/comms/pom.xml | 87 +++++++++++++++-
.../impl/Plc4xCommsSubProjectFactoryImpl.java} | 15 ++-
.../comms/impl/Plc4xCommsSubProjectImpl.java} | 26 +++--
...lc4xCommsSubProjectLogicalViewProviderImpl.java | 116 +++++++++++++++++++++
.../impl/Plc4xCommsSubProjectNodeFactoryImpl.java} | 24 ++---
.../impl/Plc4xCommsSubProjectProviderImpl.java} | 28 +++--
.../projecttype/comms/src/main/nbm/manifest.mf | 2 +-
.../malbec/comms/{ => impl}/Bundle.properties | 0
.../plc4x/malbec/comms/nodes/FolderBlue-Open.png | Bin 0 -> 437 bytes
.../apache/plc4x/malbec/comms/nodes/FolderBlue.png | Bin 0 -> 246 bytes
.../malbec/projecttype/events/nb-configuration.xml | 18 ++++
plc4j/tools/malbec/projecttype/events/pom.xml | 87 +++++++++++++++-
.../impl/Plc4xEventsSubProjectFactoryImpl.java} | 15 ++-
.../events/impl/Plc4xEventsSubProjectImpl.java} | 26 +++--
...c4xEventsSubProjectLogicalViewProviderImpl.java | 116 +++++++++++++++++++++
.../Plc4xEventsSubProjectNodeFactoryImpl.java} | 24 ++---
.../impl/Plc4xEventsSubProjectProviderImpl.java} | 24 +++--
.../projecttype/events/src/main/nbm/manifest.mf | 2 +-
.../malbec/events/{ => impl}/Bundle.properties | 0
.../plc4x/malbec/events/nodes/FolderBlue-Open.png | Bin 0 -> 437 bytes
.../plc4x/malbec/events/nodes/FolderBlue.png | Bin 0 -> 246 bytes
plc4j/tools/malbec/projecttype/hmi/pom.xml | 17 ++-
.../hmi/impl/Plc4xHMICustomizerProviderImpl.java | 74 +++++++++++++
.../hmi/impl/Plc4xHMISubProjectFactoryIMpl.java | 7 +-
.../malbec/hmi/impl/Plc4xHMISubProjectImpl.java | 9 +-
...java => Plc4xHMISubProjectNodeFactoryImpl.java} | 2 +-
.../hmi/impl/Plc4xHMISubProjectProviderImpl.java | 9 +-
.../malbec/projecttype/malbec-projecttype/pom.xml | 15 +++
.../malbec/projecttype/impl/Plc4xProjectImpl.java | 5 +-
.../projecttype/recipes/nb-configuration.xml | 18 ++++
plc4j/tools/malbec/projecttype/recipes/pom.xml | 87 +++++++++++++++-
.../impl/Plc4xRecipesSubProjectFactoryImpl.java} | 15 ++-
.../recipes/impl/Plc4xRecipesSubProjectImpl.java} | 26 +++--
...4xRecipesSubProjectLogicalViewProviderImpl.java | 116 +++++++++++++++++++++
.../Plc4xRecipesSubProjectNodeFactoryImpl.java} | 24 ++---
.../impl/Plc4xRecipesSubProjectProviderImpl.java} | 24 +++--
.../projecttype/recipes/src/main/nbm/manifest.mf | 2 +-
.../malbec/recipes/{ => nodes}/Bundle.properties | 0
.../plc4x/malbec/recipes/nodes/FolderBlue-Open.png | Bin 0 -> 437 bytes
.../plc4x/malbec/recipes/nodes/FolderBlue.png | Bin 0 -> 246 bytes
45 files changed, 951 insertions(+), 157 deletions(-)
diff --git a/plc4j/tools/malbec/application/pom.xml
b/plc4j/tools/malbec/application/pom.xml
index 980f714..92e6eba 100644
--- a/plc4j/tools/malbec/application/pom.xml
+++ b/plc4j/tools/malbec/application/pom.xml
@@ -181,6 +181,11 @@
<artifactId>hmi</artifactId>
<version>0.13.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.plc4x.malbec.comms</groupId>
+ <artifactId>comms</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </dependency>
</dependencies>
<build>
diff --git a/plc4j/tools/malbec/core/pom.xml b/plc4j/tools/malbec/core/pom.xml
new file mode 100644
index 0000000..b198974
--- /dev/null
+++ b/plc4j/tools/malbec/core/pom.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>malbec-parent</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </parent>
+ <groupId>org.apache.plc4x.malbec.core</groupId>
+ <artifactId>core</artifactId>
+ <packaging>pom</packaging>
+</project>
\ No newline at end of file
diff --git a/plc4j/tools/malbec/malbec-core/pom.xml
b/plc4j/tools/malbec/malbec-core/pom.xml
new file mode 100644
index 0000000..ce9b190
--- /dev/null
+++ b/plc4j/tools/malbec/malbec-core/pom.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>malbec-parent</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </parent>
+ <groupId>org.apache.plc4x.malbec.core</groupId>
+ <artifactId>malbec-core</artifactId>
+ <packaging>pom</packaging>
+</project>
\ No newline at end of file
diff --git a/plc4j/tools/malbec/pom.xml b/plc4j/tools/malbec/pom.xml
index 24b0372..bd83b85 100644
--- a/plc4j/tools/malbec/pom.xml
+++ b/plc4j/tools/malbec/pom.xml
@@ -205,6 +205,7 @@
<module>s7</module>
<module>eip</module>
<module>projecttype</module>
+ <module>malbec-core</module>
</modules>
</project>
diff --git a/plc4j/tools/malbec/projecttype/comms/nb-configuration.xml
b/plc4j/tools/malbec/projecttype/comms/nb-configuration.xml
new file mode 100644
index 0000000..996b1a3
--- /dev/null
+++ b/plc4j/tools/malbec/projecttype/comms/nb-configuration.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-shared-configuration>
+ <!--
+This file contains additional configuration written by modules in the NetBeans
IDE.
+The configuration is intended to be shared among all the users of project and
+therefore it is assumed to be part of version control checkout.
+Without this configuration present, some functionality in the IDE may be
limited or fail altogether.
+-->
+ <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
+ <!--
+Properties that influence various parts of the IDE, especially code formatting
and the like.
+You can copy and paste the single properties, into the pom.xml file and the
IDE will pick them up.
+That way multiple projects can share the same settings (useful for formatting
rules for example).
+Any value defined here will override the pom.xml file value but is only
applicable to the current project.
+-->
+ <netbeans.hint.jdkPlatform>Zulu_21.0.9_10</netbeans.hint.jdkPlatform>
+ </properties>
+</project-shared-configuration>
diff --git a/plc4j/tools/malbec/projecttype/comms/pom.xml
b/plc4j/tools/malbec/projecttype/comms/pom.xml
index dbefe87..cd14f4b 100644
--- a/plc4j/tools/malbec/projecttype/comms/pom.xml
+++ b/plc4j/tools/malbec/projecttype/comms/pom.xml
@@ -15,6 +15,11 @@
<groupId>org.apache.netbeans.utilities</groupId>
<artifactId>nbm-maven-plugin</artifactId>
<extensions>true</extensions>
+ <configuration>
+ <publicPackages>
+
<publicPackage>org.apache.plc4x.malbec.comms.impl</publicPackage>
+ </publicPackages>
+ </configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -25,13 +30,93 @@
</archive>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.14.1</version>
+ <configuration>
+ <showDeprecation>false</showDeprecation>
+ <proc>full</proc>
+ </configuration>
+ </plugin>
</plugins>
</build>
<dependencies>
- <dependency>
+ <dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-api-annotations-common</artifactId>
<version>${netbeans.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-netbeans-api-templates</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-filesystems</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-loaders</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-nodes</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-util</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-util-lookup</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-util-ui</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-windows</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-text</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-netbeans-core-multiview</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-awt</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-dialogs</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-netbeans-modules-projectapi</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-netbeans-modules-projectuiapi</artifactId>
+ <version>${netbeans.version}</version>
+ <type>jar</type>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
diff --git
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectFactoryIMpl.java
b/plc4j/tools/malbec/projecttype/comms/src/main/java/org/apache/plc4x/malbec/comms/impl/Plc4xCommsSubProjectFactoryImpl.java
similarity index 71%
copy from
plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectFactoryIMpl.java
copy to
plc4j/tools/malbec/projecttype/comms/src/main/java/org/apache/plc4x/malbec/comms/impl/Plc4xCommsSubProjectFactoryImpl.java
index f17a3b3..43c3577 100644
---
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectFactoryIMpl.java
+++
b/plc4j/tools/malbec/projecttype/comms/src/main/java/org/apache/plc4x/malbec/comms/impl/Plc4xCommsSubProjectFactoryImpl.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.plc4x.malbec.hmi.impl;
+package org.apache.plc4x.malbec.comms.impl;
import java.io.IOException;
import org.netbeans.api.project.Project;
@@ -26,22 +26,19 @@ import org.openide.filesystems.FileObject;
import org.openide.util.lookup.ServiceProvider;
@ServiceProvider(service=ProjectFactory.class)
-public class Plc4xHMISubProjectFactoryImpl implements ProjectFactory {
+public class Plc4xCommsSubProjectFactoryImpl implements ProjectFactory {
- public static final String HMI_SUBPROJECT_DIRECTORY = "hmi";
+ public static final String COMMS_SUBPROJECT_DIRECTORY = "comms";
@Override
public boolean isProject(FileObject fo) {
- System.out.println("Carpeta: " + fo.isFolder());
- System.out.println("Name: >" + fo.getName() +">");
- boolean isHMIFolder =
fo.getName().equalsIgnoreCase(HMI_SUBPROJECT_DIRECTORY) && fo.isFolder();
- System.out.println("isFolder: " + isHMIFolder);
- return isHMIFolder;
+ boolean isCommsFolder =
fo.getName().equalsIgnoreCase(COMMS_SUBPROJECT_DIRECTORY) && fo.isFolder();
+ return isCommsFolder;
}
@Override
public Project loadProject(FileObject fo, ProjectState ps) throws
IOException {
- return isProject(fo) ? new Plc4xHMISubProjectImpl(fo, ps) : null;
+ return isProject(fo) ? new Plc4xCommsSubProjectImpl(fo, ps) : null;
}
@Override
diff --git
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectImpl.java
b/plc4j/tools/malbec/projecttype/comms/src/main/java/org/apache/plc4x/malbec/comms/impl/Plc4xCommsSubProjectImpl.java
similarity index 77%
copy from
plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectImpl.java
copy to
plc4j/tools/malbec/projecttype/comms/src/main/java/org/apache/plc4x/malbec/comms/impl/Plc4xCommsSubProjectImpl.java
index 9ea2d1d..be49bc5 100644
---
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectImpl.java
+++
b/plc4j/tools/malbec/projecttype/comms/src/main/java/org/apache/plc4x/malbec/comms/impl/Plc4xCommsSubProjectImpl.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.plc4x.malbec.hmi.impl;
+package org.apache.plc4x.malbec.comms.impl;
import java.beans.PropertyChangeListener;
import javax.swing.Icon;
@@ -30,17 +30,17 @@ import org.openide.util.ImageUtilities;
import org.openide.util.Lookup;
import org.openide.util.lookup.Lookups;
-public class Plc4xHMISubProjectImpl implements Project{
+public class Plc4xCommsSubProjectImpl implements Project {
private final FileObject projectDir;
private final ProjectState state;
- private Lookup lkp;
+ private Lookup lkp;
- public Plc4xHMISubProjectImpl(FileObject projectDir, ProjectState state) {
+ public Plc4xCommsSubProjectImpl(FileObject projectDir, ProjectState state)
{
this.projectDir = projectDir;
this.state = state;
}
-
+
@Override
public FileObject getProjectDirectory() {
return projectDir;
@@ -51,17 +51,17 @@ public class Plc4xHMISubProjectImpl implements Project{
if (lkp == null) {
lkp = Lookups.fixed(new Object[]{
// register your features here
- new Plc4xHMISubProjectInformation(),
- new Plc4xHMISubProjectLogicalViewProviderImpl(this),
+ new Plc4xCommsSubProjectInformation(),
+ new Plc4xCommsSubProjectLogicalViewProviderImpl(this),
});
}
return lkp;
}
- private class Plc4xHMISubProjectInformation implements ProjectInformation {
+ private class Plc4xCommsSubProjectInformation implements
ProjectInformation {
@StaticResource()
- public static final String HMI_SUBPROJECT_ICON =
"org/apache/plc4x/malbec/hmi/nodes/PanelOperador.png";
+ public static final String COMMS_SUBPROJECT_ICON =
"org/apache/plc4x/malbec/comms/nodes/FolderBlue.png";
@Override
public String getName() {
@@ -75,12 +75,12 @@ public class Plc4xHMISubProjectImpl implements Project{
@Override
public Icon getIcon() {
- return new
ImageIcon(ImageUtilities.loadImage(HMI_SUBPROJECT_ICON));
+ return new
ImageIcon(ImageUtilities.loadImage(COMMS_SUBPROJECT_ICON));
}
@Override
public Project getProject() {
- return Plc4xHMISubProjectImpl.this;
+ return Plc4xCommsSubProjectImpl.this;
}
@Override
@@ -93,8 +93,6 @@ public class Plc4xHMISubProjectImpl implements Project{
//
}
- }
-
-
+ }
}
diff --git
a/plc4j/tools/malbec/projecttype/comms/src/main/java/org/apache/plc4x/malbec/comms/impl/Plc4xCommsSubProjectLogicalViewProviderImpl.java
b/plc4j/tools/malbec/projecttype/comms/src/main/java/org/apache/plc4x/malbec/comms/impl/Plc4xCommsSubProjectLogicalViewProviderImpl.java
new file mode 100644
index 0000000..494f122
--- /dev/null
+++
b/plc4j/tools/malbec/projecttype/comms/src/main/java/org/apache/plc4x/malbec/comms/impl/Plc4xCommsSubProjectLogicalViewProviderImpl.java
@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.plc4x.malbec.comms.impl;
+
+import java.awt.Image;
+import javax.swing.Action;
+import org.netbeans.api.annotations.common.StaticResource;
+import org.netbeans.api.project.Project;
+import org.netbeans.spi.project.ui.LogicalViewProvider;
+import org.netbeans.spi.project.ui.support.CommonProjectActions;
+import org.openide.filesystems.FileObject;
+import org.openide.loaders.DataFolder;
+import org.openide.loaders.DataObjectNotFoundException;
+import org.openide.nodes.AbstractNode;
+import org.openide.nodes.Children;
+import org.openide.nodes.FilterNode;
+import org.openide.nodes.Node;
+import org.openide.util.Exceptions;
+import org.openide.util.ImageUtilities;
+import org.openide.util.Lookup;
+import org.openide.util.lookup.Lookups;
+import org.openide.util.lookup.ProxyLookup;
+
+public class Plc4xCommsSubProjectLogicalViewProviderImpl implements
LogicalViewProvider {
+
+ @StaticResource()
+ public static final String COMMS_SUBPROJECT_ICON =
"org/apache/plc4x/malbec/comms/nodes/FolderBlue.png";
+
+ private final Project project;
+
+ public Plc4xCommsSubProjectLogicalViewProviderImpl(Project project) {
+ this.project = null;
+ }
+
+ @Override
+ public Node createLogicalView() {
+ try {
+ //Obtain the project directory's node:
+ FileObject projectDirectory = project.getProjectDirectory();
+ DataFolder projectFolder = DataFolder.findFolder(projectDirectory);
+ Node nodeOfProjectFolder = projectFolder.getNodeDelegate();
+ //Decorate the project directory's node:
+ return new ProjectNode(nodeOfProjectFolder, project);
+ } catch (DataObjectNotFoundException donfe) {
+ Exceptions.printStackTrace(donfe);
+ //Fallback-the directory couldn't be created -
+ //read-only filesystem or something evil happened
+ return new AbstractNode(Children.LEAF);
+ }
+ }
+
+ @Override
+ public Node findPath(Node node, Object o) {
+ return null;
+ }
+
+ private final class ProjectNode extends FilterNode {
+
+ final Project project;
+
+ public ProjectNode(Node node, Project project)
+ throws DataObjectNotFoundException {
+ super(node,
+ new FilterNode.Children(node),
+ new ProxyLookup(
+ new Lookup[]{
+ Lookups.singleton(project),
+ node.getLookup()
+ }));
+ this.project = project;
+ }
+
+ @Override
+ public Action[] getActions(boolean arg0) {
+ return new Action[]{
+ CommonProjectActions.newFileAction(),
+ CommonProjectActions.copyProjectAction(),
+ CommonProjectActions.deleteProjectAction(),
+ CommonProjectActions.closeProjectAction()
+ };
+ }
+
+ @Override
+ public Image getIcon(int type) {
+ return ImageUtilities.loadImage(COMMS_SUBPROJECT_ICON);
+ }
+
+ @Override
+ public Image getOpenedIcon(int type) {
+ return getIcon(type);
+ }
+
+ @Override
+ public String getDisplayName() {
+ return project.getProjectDirectory().getName();
+ }
+
+ }
+
+}
diff --git
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectNodeFactory.java
b/plc4j/tools/malbec/projecttype/comms/src/main/java/org/apache/plc4x/malbec/comms/impl/Plc4xCommsSubProjectNodeFactoryImpl.java
similarity index 82%
copy from
plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectNodeFactory.java
copy to
plc4j/tools/malbec/projecttype/comms/src/main/java/org/apache/plc4x/malbec/comms/impl/Plc4xCommsSubProjectNodeFactoryImpl.java
index 8361771..4a6a293 100644
---
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectNodeFactory.java
+++
b/plc4j/tools/malbec/projecttype/comms/src/main/java/org/apache/plc4x/malbec/comms/impl/Plc4xCommsSubProjectNodeFactoryImpl.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.plc4x.malbec.hmi.impl;
+package org.apache.plc4x.malbec.comms.impl;
import java.awt.Image;
import java.util.ArrayList;
@@ -31,20 +31,19 @@ import org.openide.loaders.DataObject;
import org.openide.loaders.DataObjectNotFoundException;
import org.openide.nodes.FilterNode;
import org.openide.nodes.Node;
-import static org.openide.nodes.NodeTransfer.node;
import org.openide.util.Exceptions;
import org.openide.util.ImageUtilities;
[email protected](projectType = "org-plc4x-project", position = 10)
-public class Plc4xHMISubProjectNodeFactory implements NodeFactory{
-
- @StaticResource()
- public static final String HMI_SUBPROJECT_ICON =
"org/apache/plc4x/malbec/hmi/nodes/PanelOperador.png";
[email protected](projectType = "org-plc4x-hmi-project", position = 20)
+public class Plc4xCommsSubProjectNodeFactoryImpl implements NodeFactory {
+ @StaticResource()
+ public static final String COMMS_SUBPROJECT_ICON =
"org/apache/plc4x/malbec/comms/nodes/FolderBlue.png";
+
@Override
public NodeList<?> createNodes(Project project) {
- Plc4xHMISubProjectProviderImpl rsp = project.getLookup().
- lookup(Plc4xHMISubProjectProviderImpl.class);
+ Plc4xCommsSubProjectProviderImpl rsp = project.getLookup().
+ lookup(Plc4xCommsSubProjectProviderImpl.class);
assert rsp != null;
return new ProjectsNodeList(rsp.getSubprojects());
}
@@ -83,11 +82,11 @@ public class Plc4xHMISubProjectNodeFactory implements
NodeFactory{
getProjectDirectory()).getNodeDelegate()){
@Override
public Image getIcon(int type) {
- return ImageUtilities.loadImage(HMI_SUBPROJECT_ICON );
+ return ImageUtilities.loadImage(COMMS_SUBPROJECT_ICON
);
}
@Override
public Image getOpenedIcon(int type) {
- return ImageUtilities.loadImage(HMI_SUBPROJECT_ICON );
+ return ImageUtilities.loadImage(COMMS_SUBPROJECT_ICON
);
}
};
} catch (DataObjectNotFoundException ex) {
@@ -105,7 +104,6 @@ public class Plc4xHMISubProjectNodeFactory implements
NodeFactory{
public void removeNotify() {
//
}
- }
-
+ }
}
diff --git
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectProviderImpl.java
b/plc4j/tools/malbec/projecttype/comms/src/main/java/org/apache/plc4x/malbec/comms/impl/Plc4xCommsSubProjectProviderImpl.java
similarity index 73%
copy from
plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectProviderImpl.java
copy to
plc4j/tools/malbec/projecttype/comms/src/main/java/org/apache/plc4x/malbec/comms/impl/Plc4xCommsSubProjectProviderImpl.java
index 4d5b06d..e1a11cf 100644
---
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectProviderImpl.java
+++
b/plc4j/tools/malbec/projecttype/comms/src/main/java/org/apache/plc4x/malbec/comms/impl/Plc4xCommsSubProjectProviderImpl.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.plc4x.malbec.hmi.impl;
+package org.apache.plc4x.malbec.comms.impl;
import java.io.IOException;
import java.util.Collections;
@@ -29,14 +29,16 @@ import org.netbeans.spi.project.SubprojectProvider;
import org.openide.filesystems.FileObject;
import org.openide.util.Exceptions;
-public class Plc4xHMISubProjectProviderImpl implements SubprojectProvider {
-
- private final Project project;
+public class Plc4xCommsSubProjectProviderImpl implements SubprojectProvider {
+
+ public static final String COMMS_SUBPROJECT_DIRECTORY = "comms";
+
+ private final Project project;
- public Plc4xHMISubProjectProviderImpl(Project project) {
+ public Plc4xCommsSubProjectProviderImpl(Project project) {
this.project = project;
}
-
+
@Override
public Set<? extends Project> getSubprojects() {
return loadProjects(project.getProjectDirectory());
@@ -51,17 +53,21 @@ public class Plc4xHMISubProjectProviderImpl implements
SubprojectProvider {
public void removeChangeListener(ChangeListener cl) {
//
}
-
+
public Set loadProjects(FileObject dir) {
Set newProjects = new HashSet();
- FileObject reportsFolder = dir.getFileObject("hmi");
+ FileObject reportsFolder =
dir.getFileObject(COMMS_SUBPROJECT_DIRECTORY);
+ System.out.println("2>> " + dir.getName());
+ System.out.println("3>> " + dir.getPath());
if (reportsFolder != null) {
+ System.out.println("4>> " + reportsFolder.getName());
for (FileObject childFolder : reportsFolder.getChildren()) {
try {
+ System.out.println("5>> " + childFolder.getName());
Project subp = ProjectManager.getDefault().
findProject(reportsFolder);
- if (subp != null && subp instanceof
Plc4xHMISubProjectImpl) {
- newProjects.add((Plc4xHMISubProjectImpl) subp);
+ if (subp != null && subp instanceof
Plc4xCommsSubProjectImpl) {
+ newProjects.add((Plc4xCommsSubProjectImpl) subp);
}
} catch (IOException ex) {
Exceptions.printStackTrace(ex);
@@ -71,6 +77,6 @@ public class Plc4xHMISubProjectProviderImpl implements
SubprojectProvider {
}
}
return Collections.unmodifiableSet(newProjects);
- }
+ }
}
diff --git a/plc4j/tools/malbec/projecttype/comms/src/main/nbm/manifest.mf
b/plc4j/tools/malbec/projecttype/comms/src/main/nbm/manifest.mf
index 8ca0023..fce184c 100644
--- a/plc4j/tools/malbec/projecttype/comms/src/main/nbm/manifest.mf
+++ b/plc4j/tools/malbec/projecttype/comms/src/main/nbm/manifest.mf
@@ -1,3 +1,3 @@
Manifest-Version: 1.0
-OpenIDE-Module-Localizing-Bundle:
org/apache/plc4x/malbec/comms/Bundle.properties
+OpenIDE-Module-Localizing-Bundle:
org/apache/plc4x/malbec/comms/impl/Bundle.properties
diff --git
a/plc4j/tools/malbec/projecttype/comms/src/main/resources/org/apache/plc4x/malbec/comms/Bundle.properties
b/plc4j/tools/malbec/projecttype/comms/src/main/resources/org/apache/plc4x/malbec/comms/impl/Bundle.properties
similarity index 100%
rename from
plc4j/tools/malbec/projecttype/comms/src/main/resources/org/apache/plc4x/malbec/comms/Bundle.properties
rename to
plc4j/tools/malbec/projecttype/comms/src/main/resources/org/apache/plc4x/malbec/comms/impl/Bundle.properties
diff --git
a/plc4j/tools/malbec/projecttype/comms/src/main/resources/org/apache/plc4x/malbec/comms/nodes/FolderBlue-Open.png
b/plc4j/tools/malbec/projecttype/comms/src/main/resources/org/apache/plc4x/malbec/comms/nodes/FolderBlue-Open.png
new file mode 100644
index 0000000..2225cb0
Binary files /dev/null and
b/plc4j/tools/malbec/projecttype/comms/src/main/resources/org/apache/plc4x/malbec/comms/nodes/FolderBlue-Open.png
differ
diff --git
a/plc4j/tools/malbec/projecttype/comms/src/main/resources/org/apache/plc4x/malbec/comms/nodes/FolderBlue.png
b/plc4j/tools/malbec/projecttype/comms/src/main/resources/org/apache/plc4x/malbec/comms/nodes/FolderBlue.png
new file mode 100644
index 0000000..91800c1
Binary files /dev/null and
b/plc4j/tools/malbec/projecttype/comms/src/main/resources/org/apache/plc4x/malbec/comms/nodes/FolderBlue.png
differ
diff --git a/plc4j/tools/malbec/projecttype/events/nb-configuration.xml
b/plc4j/tools/malbec/projecttype/events/nb-configuration.xml
new file mode 100644
index 0000000..996b1a3
--- /dev/null
+++ b/plc4j/tools/malbec/projecttype/events/nb-configuration.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-shared-configuration>
+ <!--
+This file contains additional configuration written by modules in the NetBeans
IDE.
+The configuration is intended to be shared among all the users of project and
+therefore it is assumed to be part of version control checkout.
+Without this configuration present, some functionality in the IDE may be
limited or fail altogether.
+-->
+ <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
+ <!--
+Properties that influence various parts of the IDE, especially code formatting
and the like.
+You can copy and paste the single properties, into the pom.xml file and the
IDE will pick them up.
+That way multiple projects can share the same settings (useful for formatting
rules for example).
+Any value defined here will override the pom.xml file value but is only
applicable to the current project.
+-->
+ <netbeans.hint.jdkPlatform>Zulu_21.0.9_10</netbeans.hint.jdkPlatform>
+ </properties>
+</project-shared-configuration>
diff --git a/plc4j/tools/malbec/projecttype/events/pom.xml
b/plc4j/tools/malbec/projecttype/events/pom.xml
index 848bcf4..7b6e59d 100644
--- a/plc4j/tools/malbec/projecttype/events/pom.xml
+++ b/plc4j/tools/malbec/projecttype/events/pom.xml
@@ -15,6 +15,11 @@
<groupId>org.apache.netbeans.utilities</groupId>
<artifactId>nbm-maven-plugin</artifactId>
<extensions>true</extensions>
+ <configuration>
+ <publicPackages>
+
<publicPackage>org.apache.plc4x.malbec.events.impl</publicPackage>
+ </publicPackages>
+ </configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -25,13 +30,93 @@
</archive>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.14.1</version>
+ <configuration>
+ <showDeprecation>false</showDeprecation>
+ <proc>full</proc>
+ </configuration>
+ </plugin>
</plugins>
</build>
<dependencies>
- <dependency>
+ <dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-api-annotations-common</artifactId>
<version>${netbeans.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-netbeans-api-templates</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-filesystems</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-loaders</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-nodes</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-util</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-util-lookup</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-util-ui</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-windows</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-text</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-netbeans-core-multiview</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-awt</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-dialogs</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-netbeans-modules-projectapi</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-netbeans-modules-projectuiapi</artifactId>
+ <version>${netbeans.version}</version>
+ <type>jar</type>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
diff --git
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectFactoryIMpl.java
b/plc4j/tools/malbec/projecttype/events/src/main/java/org/apache/plc4x/malbec/events/impl/Plc4xEventsSubProjectFactoryImpl.java
similarity index 71%
copy from
plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectFactoryIMpl.java
copy to
plc4j/tools/malbec/projecttype/events/src/main/java/org/apache/plc4x/malbec/events/impl/Plc4xEventsSubProjectFactoryImpl.java
index f17a3b3..d39c75e 100644
---
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectFactoryIMpl.java
+++
b/plc4j/tools/malbec/projecttype/events/src/main/java/org/apache/plc4x/malbec/events/impl/Plc4xEventsSubProjectFactoryImpl.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.plc4x.malbec.hmi.impl;
+package org.apache.plc4x.malbec.events.impl;
import java.io.IOException;
import org.netbeans.api.project.Project;
@@ -26,22 +26,19 @@ import org.openide.filesystems.FileObject;
import org.openide.util.lookup.ServiceProvider;
@ServiceProvider(service=ProjectFactory.class)
-public class Plc4xHMISubProjectFactoryImpl implements ProjectFactory {
+public class Plc4xEventsSubProjectFactoryImpl implements ProjectFactory {
- public static final String HMI_SUBPROJECT_DIRECTORY = "hmi";
+ public static final String EVENTS_SUBPROJECT_DIRECTORY = "events";
@Override
public boolean isProject(FileObject fo) {
- System.out.println("Carpeta: " + fo.isFolder());
- System.out.println("Name: >" + fo.getName() +">");
- boolean isHMIFolder =
fo.getName().equalsIgnoreCase(HMI_SUBPROJECT_DIRECTORY) && fo.isFolder();
- System.out.println("isFolder: " + isHMIFolder);
- return isHMIFolder;
+ boolean isCommsFolder =
fo.getName().equalsIgnoreCase(EVENTS_SUBPROJECT_DIRECTORY) && fo.isFolder();
+ return isCommsFolder;
}
@Override
public Project loadProject(FileObject fo, ProjectState ps) throws
IOException {
- return isProject(fo) ? new Plc4xHMISubProjectImpl(fo, ps) : null;
+ return isProject(fo) ? new Plc4xEventsSubProjectImpl(fo, ps) : null;
}
@Override
diff --git
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectImpl.java
b/plc4j/tools/malbec/projecttype/events/src/main/java/org/apache/plc4x/malbec/events/impl/Plc4xEventsSubProjectImpl.java
similarity index 77%
copy from
plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectImpl.java
copy to
plc4j/tools/malbec/projecttype/events/src/main/java/org/apache/plc4x/malbec/events/impl/Plc4xEventsSubProjectImpl.java
index 9ea2d1d..33d6958 100644
---
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectImpl.java
+++
b/plc4j/tools/malbec/projecttype/events/src/main/java/org/apache/plc4x/malbec/events/impl/Plc4xEventsSubProjectImpl.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.plc4x.malbec.hmi.impl;
+package org.apache.plc4x.malbec.events.impl;
import java.beans.PropertyChangeListener;
import javax.swing.Icon;
@@ -30,17 +30,17 @@ import org.openide.util.ImageUtilities;
import org.openide.util.Lookup;
import org.openide.util.lookup.Lookups;
-public class Plc4xHMISubProjectImpl implements Project{
+public class Plc4xEventsSubProjectImpl implements Project {
private final FileObject projectDir;
private final ProjectState state;
- private Lookup lkp;
+ private Lookup lkp;
- public Plc4xHMISubProjectImpl(FileObject projectDir, ProjectState state) {
+ public Plc4xEventsSubProjectImpl(FileObject projectDir, ProjectState
state) {
this.projectDir = projectDir;
this.state = state;
}
-
+
@Override
public FileObject getProjectDirectory() {
return projectDir;
@@ -51,17 +51,17 @@ public class Plc4xHMISubProjectImpl implements Project{
if (lkp == null) {
lkp = Lookups.fixed(new Object[]{
// register your features here
- new Plc4xHMISubProjectInformation(),
- new Plc4xHMISubProjectLogicalViewProviderImpl(this),
+ new Plc4xEventsSubProjectInformation(),
+ new Plc4xEventsSubProjectLogicalViewProviderImpl(this),
});
}
return lkp;
}
- private class Plc4xHMISubProjectInformation implements ProjectInformation {
+ private class Plc4xEventsSubProjectInformation implements
ProjectInformation {
@StaticResource()
- public static final String HMI_SUBPROJECT_ICON =
"org/apache/plc4x/malbec/hmi/nodes/PanelOperador.png";
+ public static final String COMMS_SUBPROJECT_ICON =
"org/apache/plc4x/malbec/events/nodes/FolderBlue.png";
@Override
public String getName() {
@@ -75,12 +75,12 @@ public class Plc4xHMISubProjectImpl implements Project{
@Override
public Icon getIcon() {
- return new
ImageIcon(ImageUtilities.loadImage(HMI_SUBPROJECT_ICON));
+ return new
ImageIcon(ImageUtilities.loadImage(COMMS_SUBPROJECT_ICON));
}
@Override
public Project getProject() {
- return Plc4xHMISubProjectImpl.this;
+ return Plc4xEventsSubProjectImpl.this;
}
@Override
@@ -93,8 +93,6 @@ public class Plc4xHMISubProjectImpl implements Project{
//
}
- }
-
-
+ }
}
diff --git
a/plc4j/tools/malbec/projecttype/events/src/main/java/org/apache/plc4x/malbec/events/impl/Plc4xEventsSubProjectLogicalViewProviderImpl.java
b/plc4j/tools/malbec/projecttype/events/src/main/java/org/apache/plc4x/malbec/events/impl/Plc4xEventsSubProjectLogicalViewProviderImpl.java
new file mode 100644
index 0000000..57e45a8
--- /dev/null
+++
b/plc4j/tools/malbec/projecttype/events/src/main/java/org/apache/plc4x/malbec/events/impl/Plc4xEventsSubProjectLogicalViewProviderImpl.java
@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.plc4x.malbec.events.impl;
+
+import java.awt.Image;
+import javax.swing.Action;
+import org.netbeans.api.annotations.common.StaticResource;
+import org.netbeans.api.project.Project;
+import org.netbeans.spi.project.ui.LogicalViewProvider;
+import org.netbeans.spi.project.ui.support.CommonProjectActions;
+import org.openide.filesystems.FileObject;
+import org.openide.loaders.DataFolder;
+import org.openide.loaders.DataObjectNotFoundException;
+import org.openide.nodes.AbstractNode;
+import org.openide.nodes.Children;
+import org.openide.nodes.FilterNode;
+import org.openide.nodes.Node;
+import org.openide.util.Exceptions;
+import org.openide.util.ImageUtilities;
+import org.openide.util.Lookup;
+import org.openide.util.lookup.Lookups;
+import org.openide.util.lookup.ProxyLookup;
+
+public class Plc4xEventsSubProjectLogicalViewProviderImpl implements
LogicalViewProvider {
+
+ @StaticResource()
+ public static final String EVENTS_SUBPROJECT_ICON =
"org/apache/plc4x/malbec/events/nodes/FolderBlue.png";
+
+ private final Project project;
+
+ public Plc4xEventsSubProjectLogicalViewProviderImpl(Project project) {
+ this.project = null;
+ }
+
+ @Override
+ public Node createLogicalView() {
+ try {
+ //Obtain the project directory's node:
+ FileObject projectDirectory = project.getProjectDirectory();
+ DataFolder projectFolder = DataFolder.findFolder(projectDirectory);
+ Node nodeOfProjectFolder = projectFolder.getNodeDelegate();
+ //Decorate the project directory's node:
+ return new ProjectNode(nodeOfProjectFolder, project);
+ } catch (DataObjectNotFoundException donfe) {
+ Exceptions.printStackTrace(donfe);
+ //Fallback-the directory couldn't be created -
+ //read-only filesystem or something evil happened
+ return new AbstractNode(Children.LEAF);
+ }
+ }
+
+ @Override
+ public Node findPath(Node node, Object o) {
+ return null;
+ }
+
+ private final class ProjectNode extends FilterNode {
+
+ final Project project;
+
+ public ProjectNode(Node node, Project project)
+ throws DataObjectNotFoundException {
+ super(node,
+ new FilterNode.Children(node),
+ new ProxyLookup(
+ new Lookup[]{
+ Lookups.singleton(project),
+ node.getLookup()
+ }));
+ this.project = project;
+ }
+
+ @Override
+ public Action[] getActions(boolean arg0) {
+ return new Action[]{
+ CommonProjectActions.newFileAction(),
+ CommonProjectActions.copyProjectAction(),
+ CommonProjectActions.deleteProjectAction(),
+ CommonProjectActions.closeProjectAction()
+ };
+ }
+
+ @Override
+ public Image getIcon(int type) {
+ return ImageUtilities.loadImage(EVENTS_SUBPROJECT_ICON);
+ }
+
+ @Override
+ public Image getOpenedIcon(int type) {
+ return getIcon(type);
+ }
+
+ @Override
+ public String getDisplayName() {
+ return project.getProjectDirectory().getName();
+ }
+
+ }
+
+}
diff --git
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectNodeFactory.java
b/plc4j/tools/malbec/projecttype/events/src/main/java/org/apache/plc4x/malbec/events/impl/Plc4xEventsSubProjectNodeFactoryImpl.java
similarity index 82%
copy from
plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectNodeFactory.java
copy to
plc4j/tools/malbec/projecttype/events/src/main/java/org/apache/plc4x/malbec/events/impl/Plc4xEventsSubProjectNodeFactoryImpl.java
index 8361771..e3741e1 100644
---
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectNodeFactory.java
+++
b/plc4j/tools/malbec/projecttype/events/src/main/java/org/apache/plc4x/malbec/events/impl/Plc4xEventsSubProjectNodeFactoryImpl.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.plc4x.malbec.hmi.impl;
+package org.apache.plc4x.malbec.events.impl;
import java.awt.Image;
import java.util.ArrayList;
@@ -31,20 +31,19 @@ import org.openide.loaders.DataObject;
import org.openide.loaders.DataObjectNotFoundException;
import org.openide.nodes.FilterNode;
import org.openide.nodes.Node;
-import static org.openide.nodes.NodeTransfer.node;
import org.openide.util.Exceptions;
import org.openide.util.ImageUtilities;
[email protected](projectType = "org-plc4x-project", position = 10)
-public class Plc4xHMISubProjectNodeFactory implements NodeFactory{
-
- @StaticResource()
- public static final String HMI_SUBPROJECT_ICON =
"org/apache/plc4x/malbec/hmi/nodes/PanelOperador.png";
[email protected](projectType = "org-plc4x-hmi-project", position = 20)
+public class Plc4xEventsSubProjectNodeFactoryImpl implements NodeFactory {
+ @StaticResource()
+ public static final String EVENTS_SUBPROJECT_ICON =
"org/apache/plc4x/malbec/events/nodes/FolderBlue.png";
+
@Override
public NodeList<?> createNodes(Project project) {
- Plc4xHMISubProjectProviderImpl rsp = project.getLookup().
- lookup(Plc4xHMISubProjectProviderImpl.class);
+ Plc4xEventsSubProjectProviderImpl rsp = project.getLookup().
+ lookup(Plc4xEventsSubProjectProviderImpl.class);
assert rsp != null;
return new ProjectsNodeList(rsp.getSubprojects());
}
@@ -83,11 +82,11 @@ public class Plc4xHMISubProjectNodeFactory implements
NodeFactory{
getProjectDirectory()).getNodeDelegate()){
@Override
public Image getIcon(int type) {
- return ImageUtilities.loadImage(HMI_SUBPROJECT_ICON );
+ return ImageUtilities.loadImage(EVENTS_SUBPROJECT_ICON
);
}
@Override
public Image getOpenedIcon(int type) {
- return ImageUtilities.loadImage(HMI_SUBPROJECT_ICON );
+ return ImageUtilities.loadImage(EVENTS_SUBPROJECT_ICON
);
}
};
} catch (DataObjectNotFoundException ex) {
@@ -105,7 +104,6 @@ public class Plc4xHMISubProjectNodeFactory implements
NodeFactory{
public void removeNotify() {
//
}
- }
-
+ }
}
diff --git
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectProviderImpl.java
b/plc4j/tools/malbec/projecttype/events/src/main/java/org/apache/plc4x/malbec/events/impl/Plc4xEventsSubProjectProviderImpl.java
similarity index 79%
copy from
plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectProviderImpl.java
copy to
plc4j/tools/malbec/projecttype/events/src/main/java/org/apache/plc4x/malbec/events/impl/Plc4xEventsSubProjectProviderImpl.java
index 4d5b06d..0adadd5 100644
---
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectProviderImpl.java
+++
b/plc4j/tools/malbec/projecttype/events/src/main/java/org/apache/plc4x/malbec/events/impl/Plc4xEventsSubProjectProviderImpl.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.plc4x.malbec.hmi.impl;
+package org.apache.plc4x.malbec.events.impl;
import java.io.IOException;
import java.util.Collections;
@@ -29,14 +29,16 @@ import org.netbeans.spi.project.SubprojectProvider;
import org.openide.filesystems.FileObject;
import org.openide.util.Exceptions;
-public class Plc4xHMISubProjectProviderImpl implements SubprojectProvider {
-
- private final Project project;
+public class Plc4xEventsSubProjectProviderImpl implements SubprojectProvider {
+
+ public static final String EVENTS_SUBPROJECT_DIRECTORY = "events";
+
+ private final Project project;
- public Plc4xHMISubProjectProviderImpl(Project project) {
+ public Plc4xEventsSubProjectProviderImpl(Project project) {
this.project = project;
}
-
+
@Override
public Set<? extends Project> getSubprojects() {
return loadProjects(project.getProjectDirectory());
@@ -51,17 +53,17 @@ public class Plc4xHMISubProjectProviderImpl implements
SubprojectProvider {
public void removeChangeListener(ChangeListener cl) {
//
}
-
+
public Set loadProjects(FileObject dir) {
Set newProjects = new HashSet();
- FileObject reportsFolder = dir.getFileObject("hmi");
+ FileObject reportsFolder =
dir.getFileObject(EVENTS_SUBPROJECT_DIRECTORY);
if (reportsFolder != null) {
for (FileObject childFolder : reportsFolder.getChildren()) {
try {
Project subp = ProjectManager.getDefault().
findProject(reportsFolder);
- if (subp != null && subp instanceof
Plc4xHMISubProjectImpl) {
- newProjects.add((Plc4xHMISubProjectImpl) subp);
+ if (subp != null && subp instanceof
Plc4xEventsSubProjectImpl) {
+ newProjects.add((Plc4xEventsSubProjectImpl) subp);
}
} catch (IOException ex) {
Exceptions.printStackTrace(ex);
@@ -71,6 +73,6 @@ public class Plc4xHMISubProjectProviderImpl implements
SubprojectProvider {
}
}
return Collections.unmodifiableSet(newProjects);
- }
+ }
}
diff --git a/plc4j/tools/malbec/projecttype/events/src/main/nbm/manifest.mf
b/plc4j/tools/malbec/projecttype/events/src/main/nbm/manifest.mf
index 56fafca..d17d15b 100644
--- a/plc4j/tools/malbec/projecttype/events/src/main/nbm/manifest.mf
+++ b/plc4j/tools/malbec/projecttype/events/src/main/nbm/manifest.mf
@@ -1,3 +1,3 @@
Manifest-Version: 1.0
-OpenIDE-Module-Localizing-Bundle:
org/apache/plc4x/malbec/events/Bundle.properties
+OpenIDE-Module-Localizing-Bundle:
org/apache/plc4x/malbec/events/impl/Bundle.properties
diff --git
a/plc4j/tools/malbec/projecttype/events/src/main/resources/org/apache/plc4x/malbec/events/Bundle.properties
b/plc4j/tools/malbec/projecttype/events/src/main/resources/org/apache/plc4x/malbec/events/impl/Bundle.properties
similarity index 100%
rename from
plc4j/tools/malbec/projecttype/events/src/main/resources/org/apache/plc4x/malbec/events/Bundle.properties
rename to
plc4j/tools/malbec/projecttype/events/src/main/resources/org/apache/plc4x/malbec/events/impl/Bundle.properties
diff --git
a/plc4j/tools/malbec/projecttype/events/src/main/resources/org/apache/plc4x/malbec/events/nodes/FolderBlue-Open.png
b/plc4j/tools/malbec/projecttype/events/src/main/resources/org/apache/plc4x/malbec/events/nodes/FolderBlue-Open.png
new file mode 100644
index 0000000..2225cb0
Binary files /dev/null and
b/plc4j/tools/malbec/projecttype/events/src/main/resources/org/apache/plc4x/malbec/events/nodes/FolderBlue-Open.png
differ
diff --git
a/plc4j/tools/malbec/projecttype/events/src/main/resources/org/apache/plc4x/malbec/events/nodes/FolderBlue.png
b/plc4j/tools/malbec/projecttype/events/src/main/resources/org/apache/plc4x/malbec/events/nodes/FolderBlue.png
new file mode 100644
index 0000000..91800c1
Binary files /dev/null and
b/plc4j/tools/malbec/projecttype/events/src/main/resources/org/apache/plc4x/malbec/events/nodes/FolderBlue.png
differ
diff --git a/plc4j/tools/malbec/projecttype/hmi/pom.xml
b/plc4j/tools/malbec/projecttype/hmi/pom.xml
index 4c788c0..ae3bf05 100644
--- a/plc4j/tools/malbec/projecttype/hmi/pom.xml
+++ b/plc4j/tools/malbec/projecttype/hmi/pom.xml
@@ -116,8 +116,23 @@
<dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-modules-projectuiapi</artifactId>
- <version>RELEASE280</version>
+ <version>${netbeans.version}</version>
<type>jar</type>
</dependency>
+ <dependency>
+ <groupId>org.apache.plc4x.malbec.comms</groupId>
+ <artifactId>comms</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x.malbec.recipes</groupId>
+ <artifactId>recipes</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x.malbec.events</groupId>
+ <artifactId>events</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
diff --git
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMICustomizerProviderImpl.java
b/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMICustomizerProviderImpl.java
new file mode 100644
index 0000000..77cac9c
--- /dev/null
+++
b/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMICustomizerProviderImpl.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.plc4x.malbec.hmi.impl;
+
+import java.awt.Dialog;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import org.netbeans.api.project.Project;
+import org.netbeans.api.project.ProjectUtils;
+import org.netbeans.spi.project.ui.CustomizerProvider2;
+import org.netbeans.spi.project.ui.support.ProjectCustomizer;
+import org.openide.awt.StatusDisplayer;
+import org.openide.util.lookup.Lookups;
+
+public class Plc4xHMICustomizerProviderImpl implements CustomizerProvider2 {
+
+ public final Project project;
+
+ public static final String HMI_CUSTOMIZER_FOLDER_PATH =
+ "Projects/org-plc4x-hmi-project/Customizer";
+
+ public Plc4xHMICustomizerProviderImpl(Project project) {
+ this.project = project;
+ }
+
+ @Override
+ public void showCustomizer(String string, String string1) {
+ //
+ }
+
+ @Override
+ public void showCustomizer() {
+ Dialog dialog = ProjectCustomizer.createCustomizerDialog(
+ //Path to layer folder:
+ HMI_CUSTOMIZER_FOLDER_PATH,
+ //Lookup, which must contain, at least, the Project:
+ Lookups.fixed(project),
+ //Preselected category:
+ "",
+ //OK button listener:
+ new OKOptionListener(),
+ //HelpCtx for Help button of dialog:
+ null);
+ dialog.setTitle(ProjectUtils.getInformation(project).getDisplayName());
+ dialog.setVisible(true);
+ }
+
+ private class OKOptionListener implements ActionListener {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ StatusDisplayer.getDefault().setStatusText("OK button clicked for "
+ + project.getProjectDirectory().getName() + "
customizer!");
+ }
+
+ }
+
+}
diff --git
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectFactoryIMpl.java
b/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectFactoryIMpl.java
index f17a3b3..d3ba3db 100644
---
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectFactoryIMpl.java
+++
b/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectFactoryIMpl.java
@@ -31,11 +31,8 @@ public class Plc4xHMISubProjectFactoryImpl implements
ProjectFactory {
public static final String HMI_SUBPROJECT_DIRECTORY = "hmi";
@Override
- public boolean isProject(FileObject fo) {
- System.out.println("Carpeta: " + fo.isFolder());
- System.out.println("Name: >" + fo.getName() +">");
- boolean isHMIFolder =
fo.getName().equalsIgnoreCase(HMI_SUBPROJECT_DIRECTORY) && fo.isFolder();
- System.out.println("isFolder: " + isHMIFolder);
+ public boolean isProject(FileObject fo) {
+ boolean isHMIFolder =
fo.getName().equalsIgnoreCase(HMI_SUBPROJECT_DIRECTORY) && fo.isFolder();
return isHMIFolder;
}
diff --git
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectImpl.java
b/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectImpl.java
index 9ea2d1d..636af24 100644
---
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectImpl.java
+++
b/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectImpl.java
@@ -21,6 +21,9 @@ package org.apache.plc4x.malbec.hmi.impl;
import java.beans.PropertyChangeListener;
import javax.swing.Icon;
import javax.swing.ImageIcon;
+import org.apache.plc4x.malbec.comms.impl.Plc4xCommsSubProjectProviderImpl;
+import org.apache.plc4x.malbec.events.impl.Plc4xEventsSubProjectProviderImpl;
+import org.apache.plc4x.malbec.recipes.impl.Plc4xRecipesSubProjectProviderImpl;
import org.netbeans.api.annotations.common.StaticResource;
import org.netbeans.api.project.Project;
import org.netbeans.api.project.ProjectInformation;
@@ -30,7 +33,7 @@ import org.openide.util.ImageUtilities;
import org.openide.util.Lookup;
import org.openide.util.lookup.Lookups;
-public class Plc4xHMISubProjectImpl implements Project{
+public class Plc4xHMISubProjectImpl implements Project {
private final FileObject projectDir;
private final ProjectState state;
@@ -53,6 +56,10 @@ public class Plc4xHMISubProjectImpl implements Project{
// register your features here
new Plc4xHMISubProjectInformation(),
new Plc4xHMISubProjectLogicalViewProviderImpl(this),
+ new Plc4xHMICustomizerProviderImpl(this),
+ new Plc4xCommsSubProjectProviderImpl(this),
+ new Plc4xEventsSubProjectProviderImpl(this),
+ new Plc4xRecipesSubProjectProviderImpl(this),
});
}
return lkp;
diff --git
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectNodeFactory.java
b/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectNodeFactoryImpl.java
similarity index 98%
copy from
plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectNodeFactory.java
copy to
plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectNodeFactoryImpl.java
index 8361771..db33a0a 100644
---
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectNodeFactory.java
+++
b/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectNodeFactoryImpl.java
@@ -36,7 +36,7 @@ import org.openide.util.Exceptions;
import org.openide.util.ImageUtilities;
@NodeFactory.Registration(projectType = "org-plc4x-project", position = 10)
-public class Plc4xHMISubProjectNodeFactory implements NodeFactory{
+public class Plc4xHMISubProjectNodeFactoryImpl implements NodeFactory{
@StaticResource()
public static final String HMI_SUBPROJECT_ICON =
"org/apache/plc4x/malbec/hmi/nodes/PanelOperador.png";
diff --git
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectProviderImpl.java
b/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectProviderImpl.java
index 4d5b06d..bbb3c36 100644
---
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectProviderImpl.java
+++
b/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectProviderImpl.java
@@ -31,6 +31,8 @@ import org.openide.util.Exceptions;
public class Plc4xHMISubProjectProviderImpl implements SubprojectProvider {
+ public static final String HMI_SUBPROJECT_DIRECTORY = "hmi";
+
private final Project project;
public Plc4xHMISubProjectProviderImpl(Project project) {
@@ -52,9 +54,14 @@ public class Plc4xHMISubProjectProviderImpl implements
SubprojectProvider {
//
}
+ /*
+ *
+ */
public Set loadProjects(FileObject dir) {
Set newProjects = new HashSet();
- FileObject reportsFolder = dir.getFileObject("hmi");
+ FileObject reportsFolder = dir.getFileObject(HMI_SUBPROJECT_DIRECTORY);
+ System.out.println("2> " + dir.getName());
+ System.out.println("3> " + dir.getPath());
if (reportsFolder != null) {
for (FileObject childFolder : reportsFolder.getChildren()) {
try {
diff --git a/plc4j/tools/malbec/projecttype/malbec-projecttype/pom.xml
b/plc4j/tools/malbec/projecttype/malbec-projecttype/pom.xml
index e6ed9a4..64d9077 100644
--- a/plc4j/tools/malbec/projecttype/malbec-projecttype/pom.xml
+++ b/plc4j/tools/malbec/projecttype/malbec-projecttype/pom.xml
@@ -112,5 +112,20 @@
<artifactId>hmi</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.plc4x.malbec.comms</groupId>
+ <artifactId>comms</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x.malbec.events</groupId>
+ <artifactId>events</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.plc4x.malbec.recipes</groupId>
+ <artifactId>recipes</artifactId>
+ <version>0.13.0-SNAPSHOT</version>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
diff --git
a/plc4j/tools/malbec/projecttype/malbec-projecttype/src/main/java/org/apache/plc4x/malbec/projecttype/impl/Plc4xProjectImpl.java
b/plc4j/tools/malbec/projecttype/malbec-projecttype/src/main/java/org/apache/plc4x/malbec/projecttype/impl/Plc4xProjectImpl.java
index 2d98aaa..893c16e 100644
---
a/plc4j/tools/malbec/projecttype/malbec-projecttype/src/main/java/org/apache/plc4x/malbec/projecttype/impl/Plc4xProjectImpl.java
+++
b/plc4j/tools/malbec/projecttype/malbec-projecttype/src/main/java/org/apache/plc4x/malbec/projecttype/impl/Plc4xProjectImpl.java
@@ -21,8 +21,11 @@ package org.apache.plc4x.malbec.projecttype.impl;
import java.beans.PropertyChangeListener;
import javax.swing.Icon;
import javax.swing.ImageIcon;
+import org.apache.plc4x.malbec.comms.impl.Plc4xCommsSubProjectProviderImpl;
+import org.apache.plc4x.malbec.events.impl.Plc4xEventsSubProjectProviderImpl;
import org.apache.plc4x.malbec.hmi.impl.Plc4xHMISubProjectProviderImpl;
import org.apache.plc4x.malbec.projecttype.panels.Plc4xGeneralPropertiesImpl;
+import org.apache.plc4x.malbec.recipes.impl.Plc4xRecipesSubProjectProviderImpl;
import org.netbeans.api.annotations.common.StaticResource;
import org.netbeans.api.project.Project;
import org.netbeans.api.project.ProjectInformation;
@@ -58,8 +61,8 @@ public class Plc4xProjectImpl implements Project{
new Plc4xProjectInfoImpl(),
new Plc4xProjectLogicalViewImpl(this),
new Plc4xCustomizerProviderImpl(this),
- new Plc4xHMISubProjectProviderImpl(this),
new Plc4xGeneralPropertiesImpl(),
+ new Plc4xHMISubProjectProviderImpl(this),
});
}
return lkp;
diff --git a/plc4j/tools/malbec/projecttype/recipes/nb-configuration.xml
b/plc4j/tools/malbec/projecttype/recipes/nb-configuration.xml
new file mode 100644
index 0000000..996b1a3
--- /dev/null
+++ b/plc4j/tools/malbec/projecttype/recipes/nb-configuration.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-shared-configuration>
+ <!--
+This file contains additional configuration written by modules in the NetBeans
IDE.
+The configuration is intended to be shared among all the users of project and
+therefore it is assumed to be part of version control checkout.
+Without this configuration present, some functionality in the IDE may be
limited or fail altogether.
+-->
+ <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
+ <!--
+Properties that influence various parts of the IDE, especially code formatting
and the like.
+You can copy and paste the single properties, into the pom.xml file and the
IDE will pick them up.
+That way multiple projects can share the same settings (useful for formatting
rules for example).
+Any value defined here will override the pom.xml file value but is only
applicable to the current project.
+-->
+ <netbeans.hint.jdkPlatform>Zulu_21.0.9_10</netbeans.hint.jdkPlatform>
+ </properties>
+</project-shared-configuration>
diff --git a/plc4j/tools/malbec/projecttype/recipes/pom.xml
b/plc4j/tools/malbec/projecttype/recipes/pom.xml
index 31e3aef..b4f0ae2 100644
--- a/plc4j/tools/malbec/projecttype/recipes/pom.xml
+++ b/plc4j/tools/malbec/projecttype/recipes/pom.xml
@@ -15,6 +15,11 @@
<groupId>org.apache.netbeans.utilities</groupId>
<artifactId>nbm-maven-plugin</artifactId>
<extensions>true</extensions>
+ <configuration>
+ <publicPackages>
+
<publicPackage>org.apache.plc4x.malbec.recipes.impl</publicPackage>
+ </publicPackages>
+ </configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -25,13 +30,93 @@
</archive>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.14.1</version>
+ <configuration>
+ <showDeprecation>false</showDeprecation>
+ <proc>full</proc>
+ </configuration>
+ </plugin>
</plugins>
</build>
<dependencies>
- <dependency>
+ <dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-api-annotations-common</artifactId>
<version>${netbeans.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-netbeans-api-templates</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-filesystems</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-loaders</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-nodes</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-util</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-util-lookup</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-util-ui</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-windows</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-text</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-netbeans-core-multiview</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-awt</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-openide-dialogs</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-netbeans-modules-projectapi</artifactId>
+ <version>${netbeans.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.netbeans.api</groupId>
+ <artifactId>org-netbeans-modules-projectuiapi</artifactId>
+ <version>${netbeans.version}</version>
+ <type>jar</type>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
diff --git
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectFactoryIMpl.java
b/plc4j/tools/malbec/projecttype/recipes/src/main/java/org/apache/plc4x/malbec/recipes/impl/Plc4xRecipesSubProjectFactoryImpl.java
similarity index 71%
copy from
plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectFactoryIMpl.java
copy to
plc4j/tools/malbec/projecttype/recipes/src/main/java/org/apache/plc4x/malbec/recipes/impl/Plc4xRecipesSubProjectFactoryImpl.java
index f17a3b3..17cd842 100644
---
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectFactoryIMpl.java
+++
b/plc4j/tools/malbec/projecttype/recipes/src/main/java/org/apache/plc4x/malbec/recipes/impl/Plc4xRecipesSubProjectFactoryImpl.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.plc4x.malbec.hmi.impl;
+package org.apache.plc4x.malbec.recipes.impl;
import java.io.IOException;
import org.netbeans.api.project.Project;
@@ -26,22 +26,19 @@ import org.openide.filesystems.FileObject;
import org.openide.util.lookup.ServiceProvider;
@ServiceProvider(service=ProjectFactory.class)
-public class Plc4xHMISubProjectFactoryImpl implements ProjectFactory {
+public class Plc4xRecipesSubProjectFactoryImpl implements ProjectFactory {
- public static final String HMI_SUBPROJECT_DIRECTORY = "hmi";
+ public static final String RECIPES_SUBPROJECT_DIRECTORY = "recipes";
@Override
public boolean isProject(FileObject fo) {
- System.out.println("Carpeta: " + fo.isFolder());
- System.out.println("Name: >" + fo.getName() +">");
- boolean isHMIFolder =
fo.getName().equalsIgnoreCase(HMI_SUBPROJECT_DIRECTORY) && fo.isFolder();
- System.out.println("isFolder: " + isHMIFolder);
- return isHMIFolder;
+ boolean isCommsFolder =
fo.getName().equalsIgnoreCase(RECIPES_SUBPROJECT_DIRECTORY) && fo.isFolder();
+ return isCommsFolder;
}
@Override
public Project loadProject(FileObject fo, ProjectState ps) throws
IOException {
- return isProject(fo) ? new Plc4xHMISubProjectImpl(fo, ps) : null;
+ return isProject(fo) ? new Plc4xRecipesSubProjectImpl(fo, ps) : null;
}
@Override
diff --git
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectImpl.java
b/plc4j/tools/malbec/projecttype/recipes/src/main/java/org/apache/plc4x/malbec/recipes/impl/Plc4xRecipesSubProjectImpl.java
similarity index 76%
copy from
plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectImpl.java
copy to
plc4j/tools/malbec/projecttype/recipes/src/main/java/org/apache/plc4x/malbec/recipes/impl/Plc4xRecipesSubProjectImpl.java
index 9ea2d1d..34c19b7 100644
---
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectImpl.java
+++
b/plc4j/tools/malbec/projecttype/recipes/src/main/java/org/apache/plc4x/malbec/recipes/impl/Plc4xRecipesSubProjectImpl.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.plc4x.malbec.hmi.impl;
+package org.apache.plc4x.malbec.recipes.impl;
import java.beans.PropertyChangeListener;
import javax.swing.Icon;
@@ -30,17 +30,17 @@ import org.openide.util.ImageUtilities;
import org.openide.util.Lookup;
import org.openide.util.lookup.Lookups;
-public class Plc4xHMISubProjectImpl implements Project{
+public class Plc4xRecipesSubProjectImpl implements Project {
private final FileObject projectDir;
private final ProjectState state;
- private Lookup lkp;
+ private Lookup lkp;
- public Plc4xHMISubProjectImpl(FileObject projectDir, ProjectState state) {
+ public Plc4xRecipesSubProjectImpl(FileObject projectDir, ProjectState
state) {
this.projectDir = projectDir;
this.state = state;
}
-
+
@Override
public FileObject getProjectDirectory() {
return projectDir;
@@ -51,17 +51,17 @@ public class Plc4xHMISubProjectImpl implements Project{
if (lkp == null) {
lkp = Lookups.fixed(new Object[]{
// register your features here
- new Plc4xHMISubProjectInformation(),
- new Plc4xHMISubProjectLogicalViewProviderImpl(this),
+ new Plc4xRecipesSubProjectInformation(),
+ new Plc4xRecipesSubProjectLogicalViewProviderImpl(this),
});
}
return lkp;
}
- private class Plc4xHMISubProjectInformation implements ProjectInformation {
+ private class Plc4xRecipesSubProjectInformation implements
ProjectInformation {
@StaticResource()
- public static final String HMI_SUBPROJECT_ICON =
"org/apache/plc4x/malbec/hmi/nodes/PanelOperador.png";
+ public static final String RECIPES_SUBPROJECT_ICON =
"org/apache/plc4x/malbec/recipes/nodes/FolderBlue.png";
@Override
public String getName() {
@@ -75,12 +75,12 @@ public class Plc4xHMISubProjectImpl implements Project{
@Override
public Icon getIcon() {
- return new
ImageIcon(ImageUtilities.loadImage(HMI_SUBPROJECT_ICON));
+ return new
ImageIcon(ImageUtilities.loadImage(RECIPES_SUBPROJECT_ICON));
}
@Override
public Project getProject() {
- return Plc4xHMISubProjectImpl.this;
+ return Plc4xRecipesSubProjectImpl.this;
}
@Override
@@ -93,8 +93,6 @@ public class Plc4xHMISubProjectImpl implements Project{
//
}
- }
-
-
+ }
}
diff --git
a/plc4j/tools/malbec/projecttype/recipes/src/main/java/org/apache/plc4x/malbec/recipes/impl/Plc4xRecipesSubProjectLogicalViewProviderImpl.java
b/plc4j/tools/malbec/projecttype/recipes/src/main/java/org/apache/plc4x/malbec/recipes/impl/Plc4xRecipesSubProjectLogicalViewProviderImpl.java
new file mode 100644
index 0000000..922e87f
--- /dev/null
+++
b/plc4j/tools/malbec/projecttype/recipes/src/main/java/org/apache/plc4x/malbec/recipes/impl/Plc4xRecipesSubProjectLogicalViewProviderImpl.java
@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.plc4x.malbec.recipes.impl;
+
+import java.awt.Image;
+import javax.swing.Action;
+import org.netbeans.api.annotations.common.StaticResource;
+import org.netbeans.api.project.Project;
+import org.netbeans.spi.project.ui.LogicalViewProvider;
+import org.netbeans.spi.project.ui.support.CommonProjectActions;
+import org.openide.filesystems.FileObject;
+import org.openide.loaders.DataFolder;
+import org.openide.loaders.DataObjectNotFoundException;
+import org.openide.nodes.AbstractNode;
+import org.openide.nodes.Children;
+import org.openide.nodes.FilterNode;
+import org.openide.nodes.Node;
+import org.openide.util.Exceptions;
+import org.openide.util.ImageUtilities;
+import org.openide.util.Lookup;
+import org.openide.util.lookup.Lookups;
+import org.openide.util.lookup.ProxyLookup;
+
+public class Plc4xRecipesSubProjectLogicalViewProviderImpl implements
LogicalViewProvider {
+
+ @StaticResource()
+ public static final String RECIPES_SUBPROJECT_ICON =
"org/apache/plc4x/malbec/recipes/nodes/FolderBlue.png";
+
+ private final Project project;
+
+ public Plc4xRecipesSubProjectLogicalViewProviderImpl(Project project) {
+ this.project = null;
+ }
+
+ @Override
+ public Node createLogicalView() {
+ try {
+ //Obtain the project directory's node:
+ FileObject projectDirectory = project.getProjectDirectory();
+ DataFolder projectFolder = DataFolder.findFolder(projectDirectory);
+ Node nodeOfProjectFolder = projectFolder.getNodeDelegate();
+ //Decorate the project directory's node:
+ return new ProjectNode(nodeOfProjectFolder, project);
+ } catch (DataObjectNotFoundException donfe) {
+ Exceptions.printStackTrace(donfe);
+ //Fallback-the directory couldn't be created -
+ //read-only filesystem or something evil happened
+ return new AbstractNode(Children.LEAF);
+ }
+ }
+
+ @Override
+ public Node findPath(Node node, Object o) {
+ return null;
+ }
+
+ private final class ProjectNode extends FilterNode {
+
+ final Project project;
+
+ public ProjectNode(Node node, Project project)
+ throws DataObjectNotFoundException {
+ super(node,
+ new FilterNode.Children(node),
+ new ProxyLookup(
+ new Lookup[]{
+ Lookups.singleton(project),
+ node.getLookup()
+ }));
+ this.project = project;
+ }
+
+ @Override
+ public Action[] getActions(boolean arg0) {
+ return new Action[]{
+ CommonProjectActions.newFileAction(),
+ CommonProjectActions.copyProjectAction(),
+ CommonProjectActions.deleteProjectAction(),
+ CommonProjectActions.closeProjectAction()
+ };
+ }
+
+ @Override
+ public Image getIcon(int type) {
+ return ImageUtilities.loadImage(RECIPES_SUBPROJECT_ICON);
+ }
+
+ @Override
+ public Image getOpenedIcon(int type) {
+ return getIcon(type);
+ }
+
+ @Override
+ public String getDisplayName() {
+ return project.getProjectDirectory().getName();
+ }
+
+ }
+
+}
diff --git
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectNodeFactory.java
b/plc4j/tools/malbec/projecttype/recipes/src/main/java/org/apache/plc4x/malbec/recipes/impl/Plc4xRecipesSubProjectNodeFactoryImpl.java
similarity index 82%
rename from
plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectNodeFactory.java
rename to
plc4j/tools/malbec/projecttype/recipes/src/main/java/org/apache/plc4x/malbec/recipes/impl/Plc4xRecipesSubProjectNodeFactoryImpl.java
index 8361771..9c4ec5d 100644
---
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectNodeFactory.java
+++
b/plc4j/tools/malbec/projecttype/recipes/src/main/java/org/apache/plc4x/malbec/recipes/impl/Plc4xRecipesSubProjectNodeFactoryImpl.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.plc4x.malbec.hmi.impl;
+package org.apache.plc4x.malbec.recipes.impl;
import java.awt.Image;
import java.util.ArrayList;
@@ -31,20 +31,19 @@ import org.openide.loaders.DataObject;
import org.openide.loaders.DataObjectNotFoundException;
import org.openide.nodes.FilterNode;
import org.openide.nodes.Node;
-import static org.openide.nodes.NodeTransfer.node;
import org.openide.util.Exceptions;
import org.openide.util.ImageUtilities;
[email protected](projectType = "org-plc4x-project", position = 10)
-public class Plc4xHMISubProjectNodeFactory implements NodeFactory{
-
- @StaticResource()
- public static final String HMI_SUBPROJECT_ICON =
"org/apache/plc4x/malbec/hmi/nodes/PanelOperador.png";
[email protected](projectType = "org-plc4x-hmi-project", position = 30)
+public class Plc4xRecipesSubProjectNodeFactoryImpl implements NodeFactory {
+ @StaticResource()
+ public static final String RECIPES_SUBPROJECT_ICON =
"org/apache/plc4x/malbec/recipes/nodes/FolderBlue.png";
+
@Override
public NodeList<?> createNodes(Project project) {
- Plc4xHMISubProjectProviderImpl rsp = project.getLookup().
- lookup(Plc4xHMISubProjectProviderImpl.class);
+ Plc4xRecipesSubProjectProviderImpl rsp = project.getLookup().
+ lookup(Plc4xRecipesSubProjectProviderImpl.class);
assert rsp != null;
return new ProjectsNodeList(rsp.getSubprojects());
}
@@ -83,11 +82,11 @@ public class Plc4xHMISubProjectNodeFactory implements
NodeFactory{
getProjectDirectory()).getNodeDelegate()){
@Override
public Image getIcon(int type) {
- return ImageUtilities.loadImage(HMI_SUBPROJECT_ICON );
+ return
ImageUtilities.loadImage(RECIPES_SUBPROJECT_ICON );
}
@Override
public Image getOpenedIcon(int type) {
- return ImageUtilities.loadImage(HMI_SUBPROJECT_ICON );
+ return
ImageUtilities.loadImage(RECIPES_SUBPROJECT_ICON );
}
};
} catch (DataObjectNotFoundException ex) {
@@ -105,7 +104,6 @@ public class Plc4xHMISubProjectNodeFactory implements
NodeFactory{
public void removeNotify() {
//
}
- }
-
+ }
}
diff --git
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectProviderImpl.java
b/plc4j/tools/malbec/projecttype/recipes/src/main/java/org/apache/plc4x/malbec/recipes/impl/Plc4xRecipesSubProjectProviderImpl.java
similarity index 79%
copy from
plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectProviderImpl.java
copy to
plc4j/tools/malbec/projecttype/recipes/src/main/java/org/apache/plc4x/malbec/recipes/impl/Plc4xRecipesSubProjectProviderImpl.java
index 4d5b06d..1508b67 100644
---
a/plc4j/tools/malbec/projecttype/hmi/src/main/java/org/apache/plc4x/malbec/hmi/impl/Plc4xHMISubProjectProviderImpl.java
+++
b/plc4j/tools/malbec/projecttype/recipes/src/main/java/org/apache/plc4x/malbec/recipes/impl/Plc4xRecipesSubProjectProviderImpl.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.plc4x.malbec.hmi.impl;
+package org.apache.plc4x.malbec.recipes.impl;
import java.io.IOException;
import java.util.Collections;
@@ -29,14 +29,16 @@ import org.netbeans.spi.project.SubprojectProvider;
import org.openide.filesystems.FileObject;
import org.openide.util.Exceptions;
-public class Plc4xHMISubProjectProviderImpl implements SubprojectProvider {
-
- private final Project project;
+public class Plc4xRecipesSubProjectProviderImpl implements SubprojectProvider {
+
+ public static final String RECIPES_SUBPROJECT_DIRECTORY = "recipes";
+
+ private final Project project;
- public Plc4xHMISubProjectProviderImpl(Project project) {
+ public Plc4xRecipesSubProjectProviderImpl(Project project) {
this.project = project;
}
-
+
@Override
public Set<? extends Project> getSubprojects() {
return loadProjects(project.getProjectDirectory());
@@ -51,17 +53,17 @@ public class Plc4xHMISubProjectProviderImpl implements
SubprojectProvider {
public void removeChangeListener(ChangeListener cl) {
//
}
-
+
public Set loadProjects(FileObject dir) {
Set newProjects = new HashSet();
- FileObject reportsFolder = dir.getFileObject("hmi");
+ FileObject reportsFolder =
dir.getFileObject(RECIPES_SUBPROJECT_DIRECTORY);
if (reportsFolder != null) {
for (FileObject childFolder : reportsFolder.getChildren()) {
try {
Project subp = ProjectManager.getDefault().
findProject(reportsFolder);
- if (subp != null && subp instanceof
Plc4xHMISubProjectImpl) {
- newProjects.add((Plc4xHMISubProjectImpl) subp);
+ if (subp != null && subp instanceof
Plc4xRecipesSubProjectImpl) {
+ newProjects.add((Plc4xRecipesSubProjectImpl) subp);
}
} catch (IOException ex) {
Exceptions.printStackTrace(ex);
@@ -71,6 +73,6 @@ public class Plc4xHMISubProjectProviderImpl implements
SubprojectProvider {
}
}
return Collections.unmodifiableSet(newProjects);
- }
+ }
}
diff --git a/plc4j/tools/malbec/projecttype/recipes/src/main/nbm/manifest.mf
b/plc4j/tools/malbec/projecttype/recipes/src/main/nbm/manifest.mf
index c7e009b..2416754 100644
--- a/plc4j/tools/malbec/projecttype/recipes/src/main/nbm/manifest.mf
+++ b/plc4j/tools/malbec/projecttype/recipes/src/main/nbm/manifest.mf
@@ -1,3 +1,3 @@
Manifest-Version: 1.0
-OpenIDE-Module-Localizing-Bundle:
org/apache/plc4x/malbec/recipes/Bundle.properties
+OpenIDE-Module-Localizing-Bundle:
org/apache/plc4x/malbec/recipes/nodes/Bundle.properties
diff --git
a/plc4j/tools/malbec/projecttype/recipes/src/main/resources/org/apache/plc4x/malbec/recipes/Bundle.properties
b/plc4j/tools/malbec/projecttype/recipes/src/main/resources/org/apache/plc4x/malbec/recipes/nodes/Bundle.properties
similarity index 100%
rename from
plc4j/tools/malbec/projecttype/recipes/src/main/resources/org/apache/plc4x/malbec/recipes/Bundle.properties
rename to
plc4j/tools/malbec/projecttype/recipes/src/main/resources/org/apache/plc4x/malbec/recipes/nodes/Bundle.properties
diff --git
a/plc4j/tools/malbec/projecttype/recipes/src/main/resources/org/apache/plc4x/malbec/recipes/nodes/FolderBlue-Open.png
b/plc4j/tools/malbec/projecttype/recipes/src/main/resources/org/apache/plc4x/malbec/recipes/nodes/FolderBlue-Open.png
new file mode 100644
index 0000000..2225cb0
Binary files /dev/null and
b/plc4j/tools/malbec/projecttype/recipes/src/main/resources/org/apache/plc4x/malbec/recipes/nodes/FolderBlue-Open.png
differ
diff --git
a/plc4j/tools/malbec/projecttype/recipes/src/main/resources/org/apache/plc4x/malbec/recipes/nodes/FolderBlue.png
b/plc4j/tools/malbec/projecttype/recipes/src/main/resources/org/apache/plc4x/malbec/recipes/nodes/FolderBlue.png
new file mode 100644
index 0000000..91800c1
Binary files /dev/null and
b/plc4j/tools/malbec/projecttype/recipes/src/main/resources/org/apache/plc4x/malbec/recipes/nodes/FolderBlue.png
differ