Skip to content

Commit

Permalink
TASK: Refactor settings and startup activity
Browse files Browse the repository at this point in the history
  • Loading branch information
cvette committed Nov 22, 2021
1 parent 6961a0e commit 8414f4e
Show file tree
Hide file tree
Showing 7 changed files with 67 additions and 22 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package de.vette.idea.neos;

import com.intellij.openapi.project.Project;
import com.jetbrains.php.frameworks.PhpFrameworkConfigurable;
import com.jetbrains.php.frameworks.PhpFrameworkConfigurableProvider;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;

public class FrameworkConfigurableProvider implements PhpFrameworkConfigurableProvider {
public FrameworkConfigurableProvider() {
}

@Override
public @Nls @NotNull String getName() {
return "Neos";
}

@Override
public @NotNull PhpFrameworkConfigurable createConfigurable(@NotNull Project project) {
return new SettingsForm(project);
}
}
20 changes: 20 additions & 0 deletions src/main/java/de/vette/idea/neos/FrameworkUsageProvider.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package de.vette.idea.neos;

import com.intellij.openapi.project.Project;
import com.jetbrains.php.frameworks.PhpFrameworkUsageProvider;
import org.jetbrains.annotations.NotNull;

public class FrameworkUsageProvider implements PhpFrameworkUsageProvider {
public FrameworkUsageProvider() {
}

@Override
public @NotNull String getName() {
return "Neos";
}

@Override
public boolean isEnabled(@NotNull Project project) {
return Settings.getInstance(project).pluginEnabled;
}
}
5 changes: 2 additions & 3 deletions src/main/java/de/vette/idea/neos/NeosProjectService.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

package de.vette.idea.neos;

import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VfsUtil;
Expand All @@ -38,7 +37,7 @@ public NeosProjectService(Project project) {
}

public static NeosProjectService getInstance(@NotNull Project project) {
return ServiceManager.getService(project, NeosProjectService.class);
return project.getService(NeosProjectService.class);
}

public static Logger getLogger() {
Expand All @@ -58,7 +57,7 @@ public boolean isEnabled() {
}

public static boolean isEnabled(@Nullable Project project) {
return project != null && Settings.getInstance(project).pluginEnabled;
return false;
}

public static boolean isEnabled(@Nullable PsiElement element) {
Expand Down
6 changes: 2 additions & 4 deletions src/main/java/de/vette/idea/neos/NeosStartupActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,14 @@
import de.vette.idea.neos.util.IdeHelper;
import org.jetbrains.annotations.NotNull;

public class NeosStartupActivity implements StartupActivity {
public class NeosStartupActivity implements StartupActivity.DumbAware {

@Override
public void runActivity(@NotNull Project project) {
NeosProjectService projectService = project.getService(NeosProjectService.class);
NeosProjectService projectService = NeosProjectService.getInstance(project);

if (!projectService.isEnabled() && !Settings.getInstance(project).dismissEnableNotification) {
NeosProjectService.getLogger().info("test");
if (projectService.isNeosProject()) {
NeosProjectService.getLogger().info("is neos project");
IdeHelper.notifyEnableMessage(project);
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/de/vette/idea/neos/Settings.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ public class Settings implements PersistentStateComponent<Settings> {
public boolean pluginEnabled = false;
public boolean dismissEnableNotification = false;

public static Settings getInstance(Project project) {
return ServiceManager.getService(project, Settings.class);
public static Settings getInstance(@NotNull Project project) {
return project.getService(Settings.class);
}

@Nullable
Expand Down
24 changes: 17 additions & 7 deletions src/main/java/de/vette/idea/neos/SettingsForm.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,29 +20,39 @@

import com.intellij.ide.actions.ShowSettingsUtilImpl;
import com.intellij.openapi.options.Configurable;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.project.Project;
import com.intellij.uiDesigner.core.GridConstraints;
import com.intellij.uiDesigner.core.GridLayoutManager;
import com.jetbrains.php.frameworks.PhpFrameworkConfigurable;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import javax.swing.*;

public class SettingsForm implements Configurable {

private Project project;
public class SettingsForm implements PhpFrameworkConfigurable {
private JCheckBox pluginEnabled;
private final Project project;

public SettingsForm(@NotNull final Project project) {
this.project = project;
}

@Override
public boolean isBeingUsed() {
return this.pluginEnabled.isSelected();
}

@Override
public @NotNull @NonNls String getId() {
return "Neos.SettingsForm";
}

@Nls
@Override
public String getDisplayName() {
return "Neos Plugin";
return "Neos";
}

@Nullable
Expand Down Expand Up @@ -71,7 +81,7 @@ public boolean isModified() {
}

@Override
public void apply() throws ConfigurationException {
public void apply() {
getSettings().pluginEnabled = pluginEnabled.isSelected();
}

Expand All @@ -85,7 +95,7 @@ private void updateUIFromSettings() {
}

private Settings getSettings() {
return Settings.getInstance(this.project);
return Settings.getInstance(project);
}

public static void show(@NotNull Project project) {
Expand Down
8 changes: 2 additions & 6 deletions src/main/resources/META-INF/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@

<extensions defaultExtensionNs="com.jetbrains.php">
<libraryRoot id="doctrine_meta" path="doctrine-phpstorm-meta/" runtime="false"/>
<frameworkUsageProvider implementation="de.vette.idea.neos.FrameworkUsageProvider"/>
<frameworkProjectConfigurableProvider implementation="de.vette.idea.neos.FrameworkConfigurableProvider"/>
</extensions>

<extensions defaultExtensionNs="org.intellij.intelliLang">
Expand All @@ -26,12 +28,6 @@

<extensions defaultExtensionNs="com.intellij">
<projectService serviceImplementation="de.vette.idea.neos.Settings"/>
<projectConfigurable instance="de.vette.idea.neos.SettingsForm"
displayName="Neos"
id="Neos.SettingsForm"
parentId="reference.webide.settings.project.settings.php"
nonDefaultProject="true"
/>

<testSourcesFilter implementation="de.vette.idea.neos.NeosTestSourcesFilter" />

Expand Down

0 comments on commit 8414f4e

Please sign in to comment.