Placing IntelliJ plugin in status bar
up vote
1
down vote
favorite
I'm just starting playing around with the plugin SDK for IntelliJ IDEA. However I already have some trouble with the first step.
I'd like to place an action in the lower status bar, next to the Git actions.
How can I place that action there?

intellij-idea intellij-plugin
add a comment |
up vote
1
down vote
favorite
I'm just starting playing around with the plugin SDK for IntelliJ IDEA. However I already have some trouble with the first step.
I'd like to place an action in the lower status bar, next to the Git actions.
How can I place that action there?

intellij-idea intellij-plugin
look how the existing ones are implemented?
– Meo
Nov 9 at 17:43
Actually, I'm trying. Looked at the source code of "git4idea" plugin. However, I have difficulties understanding how they put the plugin there.
– Robert Strauch
Nov 9 at 21:02
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I'm just starting playing around with the plugin SDK for IntelliJ IDEA. However I already have some trouble with the first step.
I'd like to place an action in the lower status bar, next to the Git actions.
How can I place that action there?

intellij-idea intellij-plugin
I'm just starting playing around with the plugin SDK for IntelliJ IDEA. However I already have some trouble with the first step.
I'd like to place an action in the lower status bar, next to the Git actions.
How can I place that action there?

intellij-idea intellij-plugin
intellij-idea intellij-plugin
asked Nov 9 at 17:03
Robert Strauch
3,626105599
3,626105599
look how the existing ones are implemented?
– Meo
Nov 9 at 17:43
Actually, I'm trying. Looked at the source code of "git4idea" plugin. However, I have difficulties understanding how they put the plugin there.
– Robert Strauch
Nov 9 at 21:02
add a comment |
look how the existing ones are implemented?
– Meo
Nov 9 at 17:43
Actually, I'm trying. Looked at the source code of "git4idea" plugin. However, I have difficulties understanding how they put the plugin there.
– Robert Strauch
Nov 9 at 21:02
look how the existing ones are implemented?
– Meo
Nov 9 at 17:43
look how the existing ones are implemented?
– Meo
Nov 9 at 17:43
Actually, I'm trying. Looked at the source code of "git4idea" plugin. However, I have difficulties understanding how they put the plugin there.
– Robert Strauch
Nov 9 at 21:02
Actually, I'm trying. Looked at the source code of "git4idea" plugin. However, I have difficulties understanding how they put the plugin there.
– Robert Strauch
Nov 9 at 21:02
add a comment |
1 Answer
1
active
oldest
votes
up vote
2
down vote
accepted
This type of UI is called EditorBasedWidget. If you like to explore how it works in git4idea plugin, I can suggest you to start with GitBranchWidget and DvcsStatusWidget classes.
Here is the code for the simplest example:
MyWidget.java
public class MyWidget extends EditorBasedWidget
public MyWidget(@NotNull Project project)
super(project);
@NotNull
@Override
public String ID()
return "MyWidget";
@Nullable
@Override
public WidgetPresentation getPresentation(@NotNull PlatformType type)
return new MyPresentation();
MyPresentation.java
public class MyPresentation implements StatusBarWidget.MultipleTextValuesPresentation
@Nullable("null means the widget is unable to show the popup")
@Override
public ListPopup getPopupStep()
return null;
@Nullable
@Override
public String getSelectedValue()
return "Selected value";
@NotNull
@Override
public String getMaxValue()
return "Max value";
@Nullable
@Override
public String getTooltipText()
return "Tooltip text";
@Nullable
@Override
public Consumer<MouseEvent> getClickConsumer()
return null;
Somewhere, for example in ProjectComponent
ApplicationManager.getApplication().invokeLater(() ->
StatusBar statusBar = WindowManager.getInstance().getStatusBar(myProject);
if (statusBar != null)
statusBar.addWidget(new MyWidget(myProject));
);
And here is the result:

add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
2
down vote
accepted
This type of UI is called EditorBasedWidget. If you like to explore how it works in git4idea plugin, I can suggest you to start with GitBranchWidget and DvcsStatusWidget classes.
Here is the code for the simplest example:
MyWidget.java
public class MyWidget extends EditorBasedWidget
public MyWidget(@NotNull Project project)
super(project);
@NotNull
@Override
public String ID()
return "MyWidget";
@Nullable
@Override
public WidgetPresentation getPresentation(@NotNull PlatformType type)
return new MyPresentation();
MyPresentation.java
public class MyPresentation implements StatusBarWidget.MultipleTextValuesPresentation
@Nullable("null means the widget is unable to show the popup")
@Override
public ListPopup getPopupStep()
return null;
@Nullable
@Override
public String getSelectedValue()
return "Selected value";
@NotNull
@Override
public String getMaxValue()
return "Max value";
@Nullable
@Override
public String getTooltipText()
return "Tooltip text";
@Nullable
@Override
public Consumer<MouseEvent> getClickConsumer()
return null;
Somewhere, for example in ProjectComponent
ApplicationManager.getApplication().invokeLater(() ->
StatusBar statusBar = WindowManager.getInstance().getStatusBar(myProject);
if (statusBar != null)
statusBar.addWidget(new MyWidget(myProject));
);
And here is the result:

add a comment |
up vote
2
down vote
accepted
This type of UI is called EditorBasedWidget. If you like to explore how it works in git4idea plugin, I can suggest you to start with GitBranchWidget and DvcsStatusWidget classes.
Here is the code for the simplest example:
MyWidget.java
public class MyWidget extends EditorBasedWidget
public MyWidget(@NotNull Project project)
super(project);
@NotNull
@Override
public String ID()
return "MyWidget";
@Nullable
@Override
public WidgetPresentation getPresentation(@NotNull PlatformType type)
return new MyPresentation();
MyPresentation.java
public class MyPresentation implements StatusBarWidget.MultipleTextValuesPresentation
@Nullable("null means the widget is unable to show the popup")
@Override
public ListPopup getPopupStep()
return null;
@Nullable
@Override
public String getSelectedValue()
return "Selected value";
@NotNull
@Override
public String getMaxValue()
return "Max value";
@Nullable
@Override
public String getTooltipText()
return "Tooltip text";
@Nullable
@Override
public Consumer<MouseEvent> getClickConsumer()
return null;
Somewhere, for example in ProjectComponent
ApplicationManager.getApplication().invokeLater(() ->
StatusBar statusBar = WindowManager.getInstance().getStatusBar(myProject);
if (statusBar != null)
statusBar.addWidget(new MyWidget(myProject));
);
And here is the result:

add a comment |
up vote
2
down vote
accepted
up vote
2
down vote
accepted
This type of UI is called EditorBasedWidget. If you like to explore how it works in git4idea plugin, I can suggest you to start with GitBranchWidget and DvcsStatusWidget classes.
Here is the code for the simplest example:
MyWidget.java
public class MyWidget extends EditorBasedWidget
public MyWidget(@NotNull Project project)
super(project);
@NotNull
@Override
public String ID()
return "MyWidget";
@Nullable
@Override
public WidgetPresentation getPresentation(@NotNull PlatformType type)
return new MyPresentation();
MyPresentation.java
public class MyPresentation implements StatusBarWidget.MultipleTextValuesPresentation
@Nullable("null means the widget is unable to show the popup")
@Override
public ListPopup getPopupStep()
return null;
@Nullable
@Override
public String getSelectedValue()
return "Selected value";
@NotNull
@Override
public String getMaxValue()
return "Max value";
@Nullable
@Override
public String getTooltipText()
return "Tooltip text";
@Nullable
@Override
public Consumer<MouseEvent> getClickConsumer()
return null;
Somewhere, for example in ProjectComponent
ApplicationManager.getApplication().invokeLater(() ->
StatusBar statusBar = WindowManager.getInstance().getStatusBar(myProject);
if (statusBar != null)
statusBar.addWidget(new MyWidget(myProject));
);
And here is the result:

This type of UI is called EditorBasedWidget. If you like to explore how it works in git4idea plugin, I can suggest you to start with GitBranchWidget and DvcsStatusWidget classes.
Here is the code for the simplest example:
MyWidget.java
public class MyWidget extends EditorBasedWidget
public MyWidget(@NotNull Project project)
super(project);
@NotNull
@Override
public String ID()
return "MyWidget";
@Nullable
@Override
public WidgetPresentation getPresentation(@NotNull PlatformType type)
return new MyPresentation();
MyPresentation.java
public class MyPresentation implements StatusBarWidget.MultipleTextValuesPresentation
@Nullable("null means the widget is unable to show the popup")
@Override
public ListPopup getPopupStep()
return null;
@Nullable
@Override
public String getSelectedValue()
return "Selected value";
@NotNull
@Override
public String getMaxValue()
return "Max value";
@Nullable
@Override
public String getTooltipText()
return "Tooltip text";
@Nullable
@Override
public Consumer<MouseEvent> getClickConsumer()
return null;
Somewhere, for example in ProjectComponent
ApplicationManager.getApplication().invokeLater(() ->
StatusBar statusBar = WindowManager.getInstance().getStatusBar(myProject);
if (statusBar != null)
statusBar.addWidget(new MyWidget(myProject));
);
And here is the result:

answered Nov 10 at 15:18
Axel P
82421124
82421124
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53230271%2fplacing-intellij-plugin-in-status-bar%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
look how the existing ones are implemented?
– Meo
Nov 9 at 17:43
Actually, I'm trying. Looked at the source code of "git4idea" plugin. However, I have difficulties understanding how they put the plugin there.
– Robert Strauch
Nov 9 at 21:02