mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
-Fix JBScrollbar usage in Terminal component
-Show terminal find results on scrollbar -Several fixes for find in Jediterm jars
This commit is contained in:
Binary file not shown.
@@ -31,7 +31,7 @@ import com.intellij.ui.tabs.impl.JBTabsImpl;
|
||||
import com.intellij.ui.tabs.impl.TabLabel;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import com.jediterm.terminal.ui.*;
|
||||
import com.jediterm.terminal.ui.settings.SettingsProvider;
|
||||
import com.jediterm.terminal.ui.settings.TabbedSettingsProvider;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.plugins.terminal.vfs.TerminalSessionVirtualFileImpl;
|
||||
@@ -116,7 +116,7 @@ public class JBTabbedTerminalWidget extends TabbedTerminalWidget implements Disp
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JediTermWidget createInnerTerminalWidget(SettingsProvider settingsProvider) {
|
||||
protected JediTermWidget createInnerTerminalWidget(TabbedSettingsProvider settingsProvider) {
|
||||
return new JBTerminalWidget(mySettingsProvider, myParent);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,10 @@ import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.ui.SearchTextField;
|
||||
import com.intellij.ui.components.JBScrollBar;
|
||||
import com.intellij.ui.components.JBScrollPane;
|
||||
import com.intellij.util.ui.JBSwingUtilities;
|
||||
import com.intellij.util.ui.RegionPainter;
|
||||
import com.jediterm.terminal.SubstringFinder;
|
||||
import com.jediterm.terminal.TerminalStarter;
|
||||
import com.jediterm.terminal.TtyConnector;
|
||||
import com.jediterm.terminal.model.JediTerminal;
|
||||
@@ -50,9 +53,29 @@ public class JBTerminalWidget extends JediTermWidget implements Disposable{
|
||||
|
||||
@Override
|
||||
protected JScrollBar createScrollBar() {
|
||||
return new JBScrollBar();
|
||||
}
|
||||
JBScrollBar bar = new JBScrollBar();
|
||||
bar.putClientProperty(JBScrollPane.Alignment.class, JBScrollPane.Alignment.RIGHT);
|
||||
bar.putClientProperty(JBScrollBar.TRACK, new RegionPainter<Object>() {
|
||||
@Override
|
||||
public void paint(Graphics2D g, int x, int y, int width, int height, Object object) {
|
||||
SubstringFinder.FindResult result = myTerminalPanel.getFindResult();
|
||||
if (result != null) {
|
||||
int modelHeight = bar.getModel().getMaximum() - bar.getModel().getMinimum();
|
||||
int anchorHeight = Math.max(2, height / modelHeight);
|
||||
|
||||
Color color = mySettingsProvider.getTerminalColorPalette()
|
||||
.getColor(mySettingsProvider.getFoundPatternColor().getBackground());
|
||||
g.setColor(color);
|
||||
for (SubstringFinder.FindResult.FindItem r : result.getItems()) {
|
||||
int where = height * r.getStart().y / modelHeight;
|
||||
g.fillRect(x, y + where, width, anchorHeight);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
return bar;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
}
|
||||
@@ -81,6 +104,18 @@ public class JBTerminalWidget extends JediTermWidget implements Disposable{
|
||||
public void addKeyListener(KeyListener listener) {
|
||||
myTextField.addKeyboardListener(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResultUpdated(SubstringFinder.FindResult result) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void nextFindResultItem(SubstringFinder.FindResult.FindItem item) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void prevFindResultItem(SubstringFinder.FindResult.FindItem item) {
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user