drinchev / project-label Goto Github PK
View Code? Open in Web Editor NEWProject label creates a small label on the bottom right project window with the name and a changeable color.
Project label creates a small label on the bottom right project window with the name and a changeable color.
When working with multiple open windows in IntelliJ, it is often hard to tell which window is which, e.g. when switching windows using mission control because the label in the status bar is not easily readable.
When discussing with my colleagues at work, several of them mentioned it would be very helpful, if one could optionally have the project label in a much bigger way as a background image of the whole editor window.
Since I would love to have that too, I've prototyped a bit and am fairly confident, that this would improve the UX in such cases.
@drinchev Would you be OK to including that in the project-label plugin?
Then I'll go ahead and polish things up to create a PR.
My current implementation looks like this:
It's a beautiful little feature, but for some reason, but if you have multiple solutions open, it only shows up on one screen.
Shouldn't it be centered? It seems to always be a bit off center.
I am using PHPStorm 2018.2
The TextAttribute.SIZE
looks hardcoded at 8. It is extremely small on my laptop.
A setting to choose font/weight/size would be great!
Modifying it in the src file looks trivial but I have no idea about how to compile it (I use it in RubyMine and I don't know anything about Java). Is there any quick way to compile it without Java knowledge? :) Thanks.
Currently, when a user changes "Global Preferences", these changes are only reflected in the open project window, where the preferences have been changed. All other open project windows do not get notified and as such do not update their labels. It would be nice if all open project windows would be triggered to repaint/update the project labels, whenever Global Preferences are changed.
I am using New UI with DataGrip. Project label triggers the attached exception after opening a project. I am just using Label Color, no background image etc. I does not happen anytime just ocassionally. I did not find a reliable way to reproduce and force the exception. It happens randomly.
com.intellij.serviceContainer.AlreadyDisposedException: Cannot create com.intellij.ide.util.PropertiesComponent because container is already disposed (container=Project(name=PRODUCTION, containerState=DISPOSE_COMPLETED, componentStore=.....\PRODUCTION) (disposed))
at com.intellij.serviceContainer.ContainerUtilKt.throwAlreadyDisposedError(containerUtil.kt:40)
at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:695)
at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:629)
at com.drinchev.projectlabel.resources.ui.ProjectLabelBackgroundImage.projectLevelPropertiesComponent(ProjectLabelBackgroundImage.java:113)
at com.drinchev.projectlabel.resources.ui.ProjectLabelBackgroundImage.hideImage(ProjectLabelBackgroundImage.java:125)
at com.drinchev.projectlabel.resources.ui.ProjectLabelBackgroundImage.showImage(ProjectLabelBackgroundImage.java:83)
at com.drinchev.projectlabel.resources.ui.ProjectLabelBackgroundImage.updateImage(ProjectLabelBackgroundImage.java:121)
at com.drinchev.projectlabel.resources.ui.ProjectLabelBackgroundImage$1.componentMoved(ProjectLabelBackgroundImage.java:75)
at java.desktop/java.awt.AWTEventMulticaster.componentMoved(AWTEventMulticaster.java:178)
at java.desktop/java.awt.AWTEventMulticaster.componentMoved(AWTEventMulticaster.java:177)
at java.desktop/java.awt.AWTEventMulticaster.componentMoved(AWTEventMulticaster.java:177)
at java.desktop/java.awt.AWTEventMulticaster.componentMoved(AWTEventMulticaster.java:177)
at java.desktop/java.awt.Component.processComponentEvent(Component.java:6477)
at java.desktop/java.awt.Component.processEvent(Component.java:6428)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Window.processEvent(Window.java:2078)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5022)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2802)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:754)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:752)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:751)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:909)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:756)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$5(IdeEventQueue.java:437)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:772)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:436)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:615)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:434)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:813)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:480)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
https://i.imgur.com/YpzFfW7.png
intellij 2017.1.*
dunno if its caused by Project Label
the same thing happens inside the idea/.name file:
myproject [JIRA-123] [/afs/acn/p./c./myproject./code./myproject] [/afs/acn/p./c./myproject./code./myproject] [/afs/acn/p./c./myproject./code./myproject] [/afs/acn/p./c./myproject./code./myproject] [/afs/acn/p./c./myproject./code./myproject]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.