Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Status bar / Activity monitor #7313

Closed
slemeur opened this issue Nov 10, 2017 · 14 comments
Closed

New Status bar / Activity monitor #7313

slemeur opened this issue Nov 10, 2017 · 14 comments
Labels
kind/enhancement A feature request - must adhere to the feature request template.

Comments

@slemeur
Copy link
Contributor

slemeur commented Nov 10, 2017

Description

The status bar in its current form is used only for maven project and it is rarely active. The information displayed in is important, but we must always look at how we can optimize the use of the space on the screen.

For all users who are not doing Maven, the status bar is stealing 20px which could be better use.

The goal of this issue is to discuss and define what other solutions we could put in place.

Options

1- Display the status bar only for maven project
2- Hide the bar, when no information to be displayed (would be annoying for end-user)
3- Allowing the command controller to display IDE activity information (similar to XCode and Visual Studio)
4- Display the information in a toast popup

@slemeur slemeur added the kind/enhancement A feature request - must adhere to the feature request template. label Nov 10, 2017
@AndrienkoAleksandr
Copy link
Contributor

AndrienkoAleksandr commented Nov 10, 2017

Related to this discussion "Make IDE more informative": #6929

@skabashnyuk
Copy link
Contributor

skabashnyuk commented Nov 10, 2017

@stevan
You are right showing project type specific information that is rarely(arguable topic but still) active in 20px is a crime. We must think about the reasonable use of space.

Let's quickly summarise world best-practices.
2017-11-10 21 14 43

On this image, we can see three IDE. They all show at the bottom the static panel, that probably
can be disabled, but by default, it's visible 100% of the time.
What kind of information we see.

  1. Line and column position
  2. Line feed, carriage return mode-.
  3. Tabulation size
  4. Codepage of file
  5. Opened file type.
  6. Ready only or not.
  7. Long-running process progress. Git clone, git push, maven import, refactoring, etc.
  8. Event log.
  9. IDE memory consumption.
  10. VCS information, like branch name.

Most if not all these indicators are projected agnostic

What do we have
2017-11-10 21 31 54

This is a panel inside editor that always shown. Not sure it's can be disabled.
It's located above bottom panels and show:

  1. Line and column position
  2. Codepage of file
  3. Opened file type.
    Not much, yeh.

I agree if we put the status panel on the bottom like other IDEs we will have two panels instead of one.
And it's quite bad.

What do I propose?

  1. Have one single panel on the bottom. Make IDE more informative #6929
  2. Revise list of best practices and summarise what we can show on this panel. I think major part should be a project or file independent.
  3. Move some information from tree panel to status pannel. My personal feeling that project tree is not a good place for git branch. It becomes looking like Christmas tree.
  4. Add some critical infrastructure information. Like memory used by processes in the container. That is tremendously important information for user to be able properly set his limits
    and diagnose spontaneous killing of processes. Also, we may consider showing
    4.1 CPU percentage
    4.2 Memory usage
    4.3 Network IO
    4.4 Block IO
    4.5 Memory percentage
    4.6 Number of PIDs
    This list has to be revised in terms if infrastructure can provide it, in some cases, they may be optional
  5. Add some networking state, https://html5demos.com/offline/ , http://wicg.github.io/netinfo/#dom-networkinformation
    type: undefined
    downlink: 1.85Mb/s
    rtt: 150ms
    downlinkMax: undefinedMb/s
    effectiveType: 4g
  6. We can add some test result, (Runned, passed, failed, skipped), test code coverage.

@gazarenkov
Copy link
Contributor

"The status bar in its current form is used only for maven project" if so (maybe just because Maven project are the most featured type of project in Che), then let's use it for other tasks. As Sergey mentioned there are a lot of them and this UI is very useful and usual for developers.
See no reason in reinventing the wheel for the things which just work.

@benoitf
Copy link
Contributor

benoitf commented Nov 10, 2017

It's not because it's not in intellij that it's called 'reiventing the wheel'
It seems Xcode or vstudio are solutions using that

@skabashnyuk
Copy link
Contributor

@benoitf can you clarify or rephrase your last statement. I'm not sure I correctly understand your arguments.

@skabashnyuk
Copy link
Contributor

BTW, three editors, from my example is

  1. Sublime
  2. IntelliJ IDEA
  3. VsCode

@benoitf
Copy link
Contributor

benoitf commented Nov 10, 2017

VS studio is not vscode and there is Xcode as well

My argument is that the screenshots you selected are from product that you like but there are other products which are not like this and you didn't show them

IDE information on xcode or vstudio is done in a style that Stevan want to implement so it's not "reinventing the wheel"

@skabashnyuk
Copy link
Contributor

skabashnyuk commented Nov 10, 2017

Fair enough.
But from another hand. Stevan is not the only one person who will use Eclipse. What would be the criteria to make sure that xcode way is what expect our community? From what I see ~12 Eclipse Che contributors fell a bit upset that status panel is missing. Shall we revise our view according to some modern IDEs like VSCode or Theia?
VSCode - status panel exists.
Visualstudio - status panel exists
developmac2

Theia - dozens of panels from left and right side what we don't have. OK- let's consider status panel on the sides ))

@skabashnyuk
Copy link
Contributor

I would say it's harder to find IDE without the status bar in comparison with the status bar.

@sunix
Copy link
Contributor

sunix commented Nov 10, 2017

To me a status bar is very small place where you can put what ever you want and at some point we have to choose what to put in there. Let's take your info "classic" IDEs display in there.

Line and column position Line feed, carriage return mode, Opened file type

should be place at the editor "status" bar. For instance, if you split your editors pane vertically into 2 editors, you want to display the cursor position of each editor.

Tabulation size

Not needed to be display all the time in a status bar

Codepage of file

Not needed to be display all the time in a status bar

Ready only or not

Not sure what that is

Long-running process progress. Git clone, git push, maven import, refactoring, etc.

Could be displayed in a popup (top right)

Event log

popup (top right)

IDE memory consumption.

User should care about this.

VCS information, like branch name

Displayed in project explorer next to project name. Or git panel.

All the system info shouldn't have to be in an IDE. Or maybe we could display them in a specific panel when running an app but the status bar is too small to display this kind of information.

My point is, the status bar is too small to display all the information we would like to display but at the same time take some space that could be useful for something else. So I would remove them.

Comparing with other IDE's is OK but we are also here to rethink how we would like Che to be and make things better than the other.

@AndrienkoAleksandr
Copy link
Contributor

AndrienkoAleksandr commented Nov 11, 2017

I like old bottom status bar, but top "status bar" in xcode and Vstudio looks great too. But let think about TOP status bar "usage target" in the Vstudio. Seems Vstudio use BOTTOM status bar to display completed tasks and completed events. And they use TOP status bar to display tasks in progress and progress status information. We should think not only about status bar view, size and where is it should be located. We need think about content type to display if we really want to find the best solution.

@gazarenkov
Copy link
Contributor

OK, let's discuss it following way:
1/ It used for years in famous IDEs with majority of developers (including us) - No objections?
2/ Che ALREADY had it and (see 1) it was definitely used by someones over here.

So, why it was easily removed from Che in version 6 and so, now, it has to be proven that is useful to move it back?

We can consider ANY visual options (top, right, popup etc) but let's move this panel back and then discuss new concept (IF it is really THAT a big deal to work on it NOW, I would say not at all)

@slemeur
Copy link
Contributor Author

slemeur commented Nov 11, 2017

  • The information displayed only for maven projects (but important, nobody never disagree) should not have been removed without a replacement solution.
  • So, we will re-introduce the status bar. There is another issue for that and it's going to be fixed, see: Restore statusbar #7314 . Everybody happy.
  • Everyone, not exactly, because the status bar will again have the problem that it is completely useless when you are not doing maven.

This issue, this specific issue is for discussing about different options for a better status bar and activity monitor.
So, let’s re-center the discussion and get ideas on what we could do - and let's not be restrictive on those:

  • Adding an option to display/hide the status bar?
  • Displaying the status bar, only when the project type is needing it?
  • Adding more information in the status bar? (similar to Sergey’s proposal and what we had in the past version of Che, but which was unfortunately not maintained)

At an higher level, I agree with @andrienko, we need to think about the kind of events that we need to display, when those events are important/helpful to the developer. We will identify categories of events and we can then build the most appropriate solution to provide them to the end-user.
We already have few different ways to display events or processes - we need to rationalize and define unified patterns.

Few examples:

  • Why when we are cloning a repo, we use a progress notification in top right corner and why for resolving maven project dependencies we use a progress indicator in the status bar?
  • Why when we successfully did a git push, we show the console output of the git push command?

We need to put a better mechanism to display IDE’s tools activities and use that mechanism consistently in the IDE. That’s why, I titled the issue “Status bar / Activity monitor”, it’s pure UX work, where we need to identify the information to be displayed. We can then define patterns and define where to display the information. Note that Information are in general more useful when they are displayed close their context. We have some work to do on that, but I believe that at the end it will make our UX stronger and more understandable by the end-users.

I feel there is a difference between:

  • IDE’s tools activity: git clone, git push, resolving project dependencies, tests execution, etc.
  • IDE status: branch currently worked on, connective status, memory consumed, etc.
  • Editor status: file type, file encoding, position of cursor, etc

About the status bar itself - what could be interesting - is to let the user being able to customise it:

  • He should be able to display it or not
  • He should be able to choose the widgets to enable/disable
  • He should be able to customize the position of the widgets in the bar
  • He should be able to choose widgets from a statusbar widget registry (plugins market place, type: statusbar widgets)
    That means that:
  • We should have an extension point for the status bar
  • Plugins could leverage that extension point and widgets could be built on of it

There are tons of cool stuff the status bar could be used for:

  • system health
  • CI/CD feedback
  • Integration with Issue tracker
  • etc

There will be user which will be happy to get “system health” widgets and other who will not find any interest in it. There will be integration of Che into other systems where the status bar could be leverage to display information.

Again, let’s not be restrictive and let’s give the opportunity for the end-users to customize that. In other terms, let’s see how we can make the status bar flexible, extensible and configurable !

@gorkem
Copy link
Contributor

gorkem commented Aug 24, 2019

Closing

@gorkem gorkem closed this as completed Aug 24, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement A feature request - must adhere to the feature request template.
Projects
None yet
Development

No branches or pull requests

7 participants