From 1b7f91a4068a3d72222671539b1c1935b0c13b24 Mon Sep 17 00:00:00 2001 From: Alvaro Sanchez-Leon Date: Wed, 7 Sep 2016 11:06:49 -0400 Subject: [PATCH] Bug 303808: Add base terminal actions to the GDBFullCliConsole Change-Id: I90967e4e8b16059201d11b509a9737a01dad526d --- .../icons/full/dlcl16/clear_co.png | Bin 0 -> 499 bytes .../icons/full/dlcl16/copy_edit_co.gif | Bin 0 -> 366 bytes .../icons/full/dlcl16/lock_co.png | Bin 0 -> 462 bytes .../icons/full/elcl16/clear_co.png | Bin 0 -> 620 bytes .../icons/full/elcl16/copy_edit_co.png | Bin 0 -> 595 bytes .../icons/full/elcl16/lock_co.png | Bin 0 -> 560 bytes .../icons/full/obj16/paste_edit.png | Bin 0 -> 531 bytes .../internal/ui/console/ConsoleMessages.java | 15 ++++++ .../ui/console/ConsoleMessages.properties | 17 ++++++- .../ui/console/GdbConsoleClearAction.java | 38 +++++++++++++++ .../ui/console/GdbConsoleCopyAction.java | 38 +++++++++++++++ .../ui/console/GdbConsolePasteAction.java | 37 ++++++++++++++ .../console/GdbConsoleScrollLockAction.java | 45 ++++++++++++++++++ .../ui/console/GdbConsoleSelectAllAction.java | 35 ++++++++++++++ .../ui/console/GdbFullCliConsolePage.java | 26 +++++++++- .../ui/console/IConsoleImagesConst.java | 11 +++++ 16 files changed, 260 insertions(+), 2 deletions(-) create mode 100644 dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/icons/full/dlcl16/clear_co.png create mode 100644 dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/icons/full/dlcl16/copy_edit_co.gif create mode 100644 dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/icons/full/dlcl16/lock_co.png create mode 100644 dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/icons/full/elcl16/clear_co.png create mode 100644 dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/icons/full/elcl16/copy_edit_co.png create mode 100644 dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/icons/full/elcl16/lock_co.png create mode 100644 dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/icons/full/obj16/paste_edit.png create mode 100644 dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsoleClearAction.java create mode 100644 dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsoleCopyAction.java create mode 100644 dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsolePasteAction.java create mode 100644 dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsoleScrollLockAction.java create mode 100644 dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsoleSelectAllAction.java diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/icons/full/dlcl16/clear_co.png b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/icons/full/dlcl16/clear_co.png new file mode 100644 index 0000000000000000000000000000000000000000..d5b5764bcbb14223709df9e8087c1a4fd8c4e72c GIT binary patch literal 499 zcmV`W9Vu<)+|6bkjHJ1Bi-Ov@u>$yv6$+T(~O~)MzwnPFxf$)0qK- zixX+!&ml8&zWH+|@%Vf`&v-muPbL#XCd}!>;m}KUGVyIXo!Y0<31q??j7B5N4Z=6< zB+lnE$TXkN8G-;Y7!15p0Co_zZ9}u!gi56Xxm*q+kqA(1u~;w!YXAYZ6hL$;Hcb=u z`#tP-JJ@cw47gRV*8?d4$-=TMc2KL;*hR5eWG9NEKs+7?%6Ge6IiTO~Gk`i9hT(`@ zkT#nQ13I0K9DvpYo%lTmlyA4&asXNr$K%oIcHrHlp3P<rTrNXCpTE$GF1};2 z*b@URS7_je(*c-J7=J2nxF~Xb|o#BOPeJ#gswx{cdUow@Mo^Vg4`zI^!j z`Ox8`8@KG-wfE4@JqNe#+_!bd-p$)~?>~5C-@&8DPn|n@;>_V=rw$%D@%_iouiw6Z z`TFh9;Uhf`ojZ2u;K4tC z{`~*{pMf%<_>+Z^fkBHw2V@M$PYi6`4pR#}bhrXfs9dV>v2+ZWFsXydX6}s;PE!|F zzUdQ8P36t<`v*!YLu*$Yi4eq zD$ytw<ZLA6@7@#Xn^zKO2u zA{dLsga{caC>D!%1^IlQ{5_Us5i(Mc%jND0(&;oM5(x=1QjpDN?+OqajYc#cj|Ir6 zxA3x9EC}Go&1OTc>jnf|G93;FIv$S#&RhlUcKd6;-_vrrq}6Ig>-Ac!RY9dv5k0{9 zL8H;|1Z;|MX&1cNaU8O3o96Sm0MEXlTrLX%ZUD#%*z`D^PH8fk&~CRAKsKAr2vw;^ zsMTr`uE-M@hT(3vTl$T`U?2sWrUeFx=fV^8dc9Aa8E`LXI2@At>HF9H@iDgXIZ$(;GH}ZnsPQeqXF{rKM8olF4LjkW41YUo)?%RLc7^ z@mnDo^Z;Emnjp;=k>Hq)$07*qoM6N<$ Eg3P_qu>b%7 literal 0 HcmV?d00001 diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/icons/full/elcl16/clear_co.png b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/icons/full/elcl16/clear_co.png new file mode 100644 index 0000000000000000000000000000000000000000..559471b8921f56cbaf87776946548ada1d4ebc92 GIT binary patch literal 620 zcmV-y0+aoTP)Wi`q=0GhyIJ!+WG=Rh%67DBEiE68S-K?v=^N%HPR82H$h#{3!~9iTb5>- z2&kZFbT|*CAnodT&WF~A17EtgYtNqhe(v9O?a^pxel~jTtfpJ# zmMje-SD~iWWFN9|PVNfHF4@R&vkf(ErUvjK!66gnNxBo{)uKQe$8Fr1eS_N%(&+at z;vzQ<*2`yxDC8F2N3I|p;Tx)e7g3SOzfMs;`iZ@213L!nl|1wk+>fQ5N4snnVs6IewbCMG5@>~etT`60Tz&+eiqMifABZiMW9 zZ{o`?!N!h^jgpMd#X8oh)(R3ru@rp15%~RnxZUnHI|l~`OB~0YR{(Q?QBpcQQ4%;O zU&4BK1)MtugFOV+XS(Vn&HR=65{dkOYlEuQetyU{tx(>ZwKV~+YYwS(| zF$FL_?mN>>Mx$Y-r>Ex~jeUW=*XeY6gTau|YPEvqf9ntMF)gw;Y%%u$0000u8T}_SI7+CNn-pZ zGACRlbNu;YoIQ1-B@l73Z~)O@KW2h`h=s0WR_OQ{6WSFGi}UC5(kJJc zzkmSSi*&Vy%vK#{ELF@RUCKg~MC9ZgW<6&it_~hZ>&)pt0G_pAaV?FZ-~!B8uD*@J z_7BKAyD0BA@Yr(!o6FabduLY>w}E(FR(#A#c=jO$p6%B$dw3Be`YeHc^y)X@?`p*S z?FaMW%a!MmjvY|2#~kZV;)N)ciHfZ!f)F@Qlz zz-qdH2QNOuPJ50mkW?VTSq)%-3SlKFf_wS~Llpnddr)ocp}xPb0%Zg^n*rP$pMZr5 z;}#Xr=cod=dKV6Xk_reuhXM4_p_7NBVaFAe6a_xt7&-FC(g1UjmGZ+zbNb#mXcl)E hT0be5+nLwi{{`mKZ=^7j5gGsh002ovPDHLkV1i2J3X=c; literal 0 HcmV?d00001 diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/icons/full/elcl16/lock_co.png b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/icons/full/elcl16/lock_co.png new file mode 100644 index 0000000000000000000000000000000000000000..df111d48fb31932be2a94f35339b31b96cb25efb GIT binary patch literal 560 zcmV-00?+-4P)|g2h$4jW!V3{2gS_Z6LWvSXm}7}>#*WfFoi*p?CT$#b?nPP1+&RJ& zMZ+YjU5Kf@Q7M9N*+eHcQqc=1(pR46Y>ym71nGefeEGe6;DKLO*8h5Pmk#HF33~hn z%M?z6iY6&8VlgJ-No7-#QKUc^DWE-&pk5Sq1R~f4N)51X~7%+&3`+~-Pm3VXxLitVXUi=2^v~u%^~s5 zw4mR19f>a%tbcljss6`^dP->~kX}Z>*=5Zk)!EX5FqenbDKp{|Cj1=LA?m(OGlBFn z0>cYMb1Qm_q6z|)*@%BMXP)MwF)1A>|W+RqT_8CzrlRs5a z80qec-|so&^#Vem=D;#6dtBh`qwKi* zf}DsZ_?2xd(39}rgDg!#k?hE&#*vMgv6r(!cK3fgl_1WKVZW-PtTsR!O}u`UM(O!2 zyi-g+K5sd@{wWZMLlYEs%CP!mly)}pjK6{G{NQ0uxc=TCcshBN*53G_Cqg*Gf=|sa zs2+SpkrlBVop49{|_b8T%Z(;Sza0+=%utaRFg3DChv_p?K>}|VX zk&Lzo92cp&@eq1ug8@yjzFUD*EEyI=LylI#1zKM>Lys%Kw_QL&E~8+1qW6PZxQ%-8 z&L19dAq3+RNJ7MXA^|~+A)Z`7Y>_|YxbeF2FIdmrT(S3-SEn!0lVBOqde-#2_Y)kE VB?*C~89x93002ovPDHLkV1oT?`cMD> literal 0 HcmV?d00001 diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/ConsoleMessages.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/ConsoleMessages.java index ec30d8ec3e3..a3d71971002 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/ConsoleMessages.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/ConsoleMessages.java @@ -31,6 +31,21 @@ public class ConsoleMessages extends NLS { public static String ConsoleTerminateLaunchAction_name; public static String ConsoleTerminateLaunchAction_description; + public static String ConsoleClearAction_name; + public static String ConsoleClearAction_description; + + public static String ConsoleScrollLockAction_name; + public static String ConsoleScrollLockAction_description; + + public static String ConsoleCopyAction_name; + public static String ConsoleCopyAction_description; + + public static String ConsolePasteAction_name; + public static String ConsolePasteAction_description; + + public static String ConsoleSelectAllAction_name; + public static String ConsoleSelectAllAction_description; + static { // initialize resource bundle NLS.initializeMessages(ConsoleMessages.class.getName(), ConsoleMessages.class); diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/ConsoleMessages.properties b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/ConsoleMessages.properties index 9c313936d0b..d89c2e189db 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/ConsoleMessages.properties +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/ConsoleMessages.properties @@ -21,5 +21,20 @@ ConsoleMessages_save_info_io_error_desc=Error during save console content. Task ConsoleInvertColorsAction_name=Invert Colors ConsoleInvertColorsAction_description=Invert the colors for the gdb consoles -ConsoleTerminateLaunchAction_name=Terminate Launch +ConsoleTerminateLaunchAction_name=Termi&nate Launch ConsoleTerminateLaunchAction_description=Terminate the launch associated to this GDB console + +ConsoleClearAction_name=Clea&r +ConsoleClearAction_description=Clear console contents + +ConsoleScrollLockAction_name=&Scroll Lock +ConsoleScrollLockAction_description=Lock the scrolling of the associated console + +ConsoleCopyAction_name=&Copy +ConsoleCopyAction_description=Copy selection to clip-board + +ConsolePasteAction_name=&Paste +ConsolePasteAction_description=Paste contents of clip-board to console + +ConsoleSelectAllAction_name=Select &All +ConsoleSelectAllAction_description=Select All available text in the associated console \ No newline at end of file diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsoleClearAction.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsoleClearAction.java new file mode 100644 index 00000000000..e6cd6417baf --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsoleClearAction.java @@ -0,0 +1,38 @@ +/******************************************************************************* + * Copyright (c) 2016 Ericsson and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + *******************************************************************************/ +package org.eclipse.cdt.dsf.gdb.internal.ui.console; + +import org.eclipse.cdt.dsf.gdb.internal.ui.GdbUIPlugin; +import org.eclipse.jface.action.Action; +import org.eclipse.tm.internal.terminal.control.ITerminalViewControl; + +/** + * Action to clear the contents of the associated GDB terminal + */ +public class GdbConsoleClearAction extends Action { + + private final ITerminalViewControl fTerminalCtrl; + public GdbConsoleClearAction(ITerminalViewControl terminalControl) { + fTerminalCtrl = terminalControl; + if (fTerminalCtrl == null || fTerminalCtrl.isDisposed()) { + setEnabled(false); + } + + setText(ConsoleMessages.ConsoleClearAction_name); + setToolTipText(ConsoleMessages.ConsoleClearAction_description); + setImageDescriptor(GdbUIPlugin.getImageDescriptor(IConsoleImagesConst.IMG_CONSOLE_CLEAR_ACTIVE_COLOR)); + setDisabledImageDescriptor(GdbUIPlugin.getImageDescriptor(IConsoleImagesConst.IMG_CONSOLE_CLEAR_DISABLED_COLOR)); + } + + @Override + public void run() { + if (fTerminalCtrl != null) { + fTerminalCtrl.clearTerminal(); + } + } +} diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsoleCopyAction.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsoleCopyAction.java new file mode 100644 index 00000000000..33a494a6aaf --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsoleCopyAction.java @@ -0,0 +1,38 @@ +/******************************************************************************* + * Copyright (c) 2016 Ericsson and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + *******************************************************************************/ +package org.eclipse.cdt.dsf.gdb.internal.ui.console; + +import org.eclipse.cdt.dsf.gdb.internal.ui.GdbUIPlugin; +import org.eclipse.jface.action.Action; +import org.eclipse.tm.internal.terminal.control.ITerminalViewControl; + +/** + * Action to copy the selected text from the associated terminal + */ +public class GdbConsoleCopyAction extends Action { + + private final ITerminalViewControl fTerminalCtrl; + + public GdbConsoleCopyAction(ITerminalViewControl terminalControl) { + fTerminalCtrl = terminalControl; + if (fTerminalCtrl == null || fTerminalCtrl.isDisposed()) { + setEnabled(false); + } + setText(ConsoleMessages.ConsoleCopyAction_name); + setToolTipText(ConsoleMessages.ConsoleCopyAction_description); + setImageDescriptor(GdbUIPlugin.getImageDescriptor(IConsoleImagesConst.IMG_CONSOLE_COPY_ACTIVE_COLOR)); + setDisabledImageDescriptor(GdbUIPlugin.getImageDescriptor(IConsoleImagesConst.IMG_CONSOLE_COPY_DISABLED_COLOR)); + } + + @Override + public void run() { + if (fTerminalCtrl != null) { + fTerminalCtrl.copy(); + } + } +} diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsolePasteAction.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsolePasteAction.java new file mode 100644 index 00000000000..d98bed26cc0 --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsolePasteAction.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright (c) 2016 Ericsson and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + *******************************************************************************/ +package org.eclipse.cdt.dsf.gdb.internal.ui.console; + +import org.eclipse.cdt.dsf.gdb.internal.ui.GdbUIPlugin; +import org.eclipse.jface.action.Action; +import org.eclipse.tm.internal.terminal.control.ITerminalViewControl; + +/** + * Action to paste from the clip-board to the associated terminal + */ +public class GdbConsolePasteAction extends Action { + + private final ITerminalViewControl fTerminalCtrl; + public GdbConsolePasteAction(ITerminalViewControl terminalControl) { + fTerminalCtrl = terminalControl; + if (fTerminalCtrl == null || fTerminalCtrl.isDisposed()) { + setEnabled(false); + } + setText(ConsoleMessages.ConsolePasteAction_name); + setToolTipText(ConsoleMessages.ConsolePasteAction_description); + setImageDescriptor(GdbUIPlugin.getImageDescriptor(IConsoleImagesConst.IMG_CONSOLE_PASTE_ACTIVE_COLOR)); + setDisabledImageDescriptor(GdbUIPlugin.getImageDescriptor(IConsoleImagesConst.IMG_CONSOLE_PASTE_ACTIVE_COLOR)); + } + + @Override + public void run() { + if (fTerminalCtrl != null) { + fTerminalCtrl.paste(); + } + } +} \ No newline at end of file diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsoleScrollLockAction.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsoleScrollLockAction.java new file mode 100644 index 00000000000..06bda5911ac --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsoleScrollLockAction.java @@ -0,0 +1,45 @@ +/******************************************************************************* + * Copyright (c) 2016 Ericsson and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + *******************************************************************************/ +package org.eclipse.cdt.dsf.gdb.internal.ui.console; + +import org.eclipse.cdt.dsf.gdb.internal.ui.GdbUIPlugin; +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IAction; +import org.eclipse.tm.internal.terminal.control.ITerminalViewControl; + +/** + * Action to lock the scrolling of the associated terminal + */ +public class GdbConsoleScrollLockAction extends Action { + + private final ITerminalViewControl fTerminalCtrl; + private Boolean fScrollLocked = false; + + public GdbConsoleScrollLockAction(ITerminalViewControl terminalControl) { + super(ConsoleMessages.ConsoleScrollLockAction_name, IAction.AS_CHECK_BOX); + + fTerminalCtrl = terminalControl; + if (fTerminalCtrl == null || fTerminalCtrl.isDisposed()) { + setEnabled(false); + } else { + fTerminalCtrl.setScrollLock(fScrollLocked); + } + + setToolTipText(ConsoleMessages.ConsoleScrollLockAction_description); + setImageDescriptor(GdbUIPlugin.getImageDescriptor(IConsoleImagesConst.IMG_CONSOLE_SCROLL_LOCK_ACTIVE_COLOR)); + setDisabledImageDescriptor(GdbUIPlugin.getImageDescriptor(IConsoleImagesConst.IMG_CONSOLE_SCROLL_LOCK_DISABLED_COLOR)); + } + + @Override + public void run() { + if (fTerminalCtrl != null) { + fScrollLocked = !fScrollLocked; + fTerminalCtrl.setScrollLock(fScrollLocked); + } + } +} diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsoleSelectAllAction.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsoleSelectAllAction.java new file mode 100644 index 00000000000..f385561fa6c --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbConsoleSelectAllAction.java @@ -0,0 +1,35 @@ +/******************************************************************************* + * Copyright (c) 2016 Ericsson and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + *******************************************************************************/ +package org.eclipse.cdt.dsf.gdb.internal.ui.console; + +import org.eclipse.jface.action.Action; +import org.eclipse.tm.internal.terminal.control.ITerminalViewControl; + +/** + * Action to Select-All the available text from the associated terminal + */ +public class GdbConsoleSelectAllAction extends Action { + + private final ITerminalViewControl fTerminalCtrl; + + public GdbConsoleSelectAllAction(ITerminalViewControl terminalControl) { + fTerminalCtrl = terminalControl; + if (fTerminalCtrl == null || fTerminalCtrl.isDisposed()) { + setEnabled(false); + } + setText(ConsoleMessages.ConsoleSelectAllAction_name); + setToolTipText(ConsoleMessages.ConsoleSelectAllAction_description); + } + + @Override + public void run() { + if (fTerminalCtrl != null) { + fTerminalCtrl.selectAll(); + } + } +} diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbFullCliConsolePage.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbFullCliConsolePage.java index 99439de3532..5d8261e9cc7 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbFullCliConsolePage.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbFullCliConsolePage.java @@ -31,6 +31,7 @@ import org.eclipse.debug.ui.contexts.IDebugContextListener; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.action.Separator; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; @@ -65,6 +66,11 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener /** The control for the terminal widget embedded in the console */ private ITerminalViewControl fTerminalControl; + private GdbConsoleClearAction fClearAction; + private GdbConsoleCopyAction fCopyAction; + private GdbConsolePasteAction fPasteAction; + private GdbConsoleScrollLockAction fScrollLockAction; + private GdbConsoleSelectAllAction fSelectAllAction; public GdbFullCliConsolePage(GdbFullCliConsole gdbConsole, IDebuggerConsoleView view) { fConsole = gdbConsole; @@ -140,13 +146,31 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener protected void createActions() { fInvertColorsAction = new GdbConsoleInvertColorsAction(); fTerminateLaunchAction = new GdbConsoleTerminateLaunchAction(fLaunch); - } + fClearAction = new GdbConsoleClearAction(fTerminalControl); + fCopyAction = new GdbConsoleCopyAction(fTerminalControl); + fPasteAction = new GdbConsolePasteAction(fTerminalControl); + fScrollLockAction = new GdbConsoleScrollLockAction(fTerminalControl); + fSelectAllAction = new GdbConsoleSelectAllAction(fTerminalControl); + } protected void configureToolBar(IToolBarManager mgr) { mgr.insertBefore(DebuggerConsoleView.DROP_DOWN_ACTION_ID, fTerminateLaunchAction); + mgr.insertBefore(DebuggerConsoleView.DROP_DOWN_ACTION_ID, fClearAction); + mgr.insertBefore(DebuggerConsoleView.DROP_DOWN_ACTION_ID, fScrollLockAction); } protected void contextMenuAboutToShow(IMenuManager menuManager) { + menuManager.add(fCopyAction); + menuManager.add(fPasteAction); + menuManager.add(fSelectAllAction); + menuManager.add(new Separator()); + + menuManager.add(fClearAction); + menuManager.add(new Separator()); + + menuManager.add(fScrollLockAction); + menuManager.add(new Separator()); + menuManager.add(fTerminateLaunchAction); menuManager.add(fInvertColorsAction); } diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/IConsoleImagesConst.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/IConsoleImagesConst.java index d33f9539210..c9e8853c274 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/IConsoleImagesConst.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/IConsoleImagesConst.java @@ -18,4 +18,15 @@ public interface IConsoleImagesConst { public static final String IMG_CONSOLE_INVERT_COLORS = "icons/full/obj16/console_invert_colors.gif"; //$NON-NLS-1$ public static final String IMG_CONSOLE_TERMINATE_ACTIVE_COLOR = "icons/full/elcl16/stop.gif"; //$NON-NLS-1$ public static final String IMG_CONSOLE_TERMINATE_DISABLED_COLOR = "icons/full/dlcl16/stop.gif"; //$NON-NLS-1$ + + public static final String IMG_CONSOLE_CLEAR_ACTIVE_COLOR = "icons/full/elcl16/clear_co.png"; //$NON-NLS-1$ + public static final String IMG_CONSOLE_CLEAR_DISABLED_COLOR = "icons/full/dlcl16/clear_co.png"; //$NON-NLS-1$ + + public static final String IMG_CONSOLE_COPY_ACTIVE_COLOR = "icons/full/elcl16/copy_edit_co.png"; //$NON-NLS-1$ + public static final String IMG_CONSOLE_COPY_DISABLED_COLOR = "icons/full/dlcl16/copy_edit_co.gif"; //$NON-NLS-1$ + + public static final String IMG_CONSOLE_PASTE_ACTIVE_COLOR = "icons/full/obj16/paste_edit.png"; //$NON-NLS-1$ + + public static final String IMG_CONSOLE_SCROLL_LOCK_ACTIVE_COLOR = "icons/full/elcl16/lock_co.png"; //$NON-NLS-1$ + public static final String IMG_CONSOLE_SCROLL_LOCK_DISABLED_COLOR = "icons/full/dlcl16/lock_co.png"; //$NON-NLS-1$ }