Bug 61697 - Introduce Darcula Look And Feel to make JMeter UI more attractive

Bugzilla Id: 61697

git-svn-id: https://svn.apache.org/repos/asf/jmeter/trunk@1813826 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Philippe Mouawad 2017-10-30 20:30:04 +00:00
parent b3a1ca252a
commit e0e1ff4be6
8 changed files with 26 additions and 3 deletions

View File

@ -247,6 +247,7 @@ The following software is provided under the Apache License V 2.0 (as above):
* accessors-smart-1.2.jar
* caffeine-2.5.5.jar
* darcular.jar
* freemarker-2.3.23.jar (AL2.0, see licenses/bin for additional info)
* json-path-2.4.0.jar
* json-smart-2.3.jar

View File

@ -140,6 +140,13 @@ commons-pool2.jar = commons-pool2-${commons-pool2.version}.jar
commons-pool2.loc = ${maven2.repo}/org/apache/commons/commons-pool2/${commons-pool2.version}
commons-pool2.md5 = 62727a85e2e1bf6a756f5571d19cc71c
# Optional for use by checkstyle
darcula.version = e208efb96f70e4be9dc362fbb46f6e181ef501dd
darcula.jar = darcula.jar
darcula.loc = https://github.com/bulenkov/Darcula/raw/${darcula.version}/build
darcula.md5 = 5afdcd4e299f71fb9dfd1740937bfbea
# dnsjava for DNSCacheManager (http://www.dnsjava.org/ BSD license)
dnsjava.version = 2.1.8
dnsjava.jar = dnsjava-${dnsjava.version}.jar

View File

@ -402,6 +402,7 @@
<include name="${lib.dir}/${commons-math3.jar}"/>
<include name="${lib.dir}/${commons-net.jar}"/>
<include name="${lib.dir}/${commons-pool2.jar}"/>
<include name="${lib.dir}/${darcula.jar}"/>
<include name="${lib.dir}/${dnsjava.jar}"/>
<include name="${lib.dir}/${freemarker.jar}"/>
<include name="${lib.dir}/${groovy-all.jar}"/>
@ -484,6 +485,7 @@
<pathelement location="${lib.dir}/${commons-math3.jar}"/>
<pathelement location="${lib.dir}/${commons-net.jar}"/>
<pathelement location="${lib.dir}/${commons-pool2.jar}"/>
<pathelement location="${lib.dir}/${darcula.jar}"/>
<pathelement location="${lib.dir}/${dnsjava.jar}"/>
<pathelement location="${lib.dir}/${freemarker.jar}"/>
<pathelement location="${lib.dir}/${groovy-all.jar}"/>
@ -3178,6 +3180,7 @@ run JMeter unless all the JMeter jars are added.
<process_jarfile jarname="commons-math3"/>
<process_jarfile jarname="commons-net"/>
<process_jarfile jarname="commons-pool2"/>
<process_jarfile jarname="darcula"/>
<process_jarfile jarname="dnsjava"/>
<process_jarfile jarname="freemarker"/>
<process_jarfile jarname="groovy-all"/>

View File

@ -60,6 +60,7 @@
<classpathentry kind="lib" path="lib/commons-math3-3.6.1.jar"/>
<classpathentry kind="lib" path="lib/commons-net-3.6.jar"/>
<classpathentry kind="lib" path="lib/commons-pool2-2.4.2.jar"/>
<classpathentry kind="lib" path="lib/darcula.jar"/>
<classpathentry kind="lib" path="lib/dec-0.1.2.jar"/>
<classpathentry kind="lib" path="lib/dnsjava-2.1.8.jar"/>
<classpathentry kind="lib" path="lib/freemarker-2.3.23.jar"/>

View File

@ -92,6 +92,11 @@ commons-text-1.1
https://commons.apache.org/proper/commons-text/
- Random Strings
darcula
-----------------
https://github.com/bulenkov/Darcula/
- Look and Feel
dnsjava-2.1.8
-----------------
http://www.dnsjava.org/download/

View File

@ -100,7 +100,7 @@ public class LookAndFeelCommand extends AbstractAction {
if (laf != null) {
return checkLafName(laf);
}
laf = JMeterUtils.getProperty(JMETER_LAF);
laf = JMeterUtils.getPropDefault(JMETER_LAF, JMeterMenuBar.DARCULA_LAF);
if (laf != null) {
return checkLafName(laf);
}

View File

@ -148,6 +148,10 @@ public class JMeterMenuBar extends JMenuBar implements LocaleChangeListener {
public static final String CROSS_PLATFORM_LAF = "CrossPlatform"; // $NON-NLS-1$
public static final String DARCULA_LAF = "Darcula"; // $NON-NLS-1$
public static final String DARCULA_LAF_CLASS = "com.bulenkov.darcula.DarculaLaf"; // $NON-NLS-1$
public JMeterMenuBar() {
// List for recent files menu items
fileLoadRecentFiles = new LinkedList<>();
@ -707,10 +711,11 @@ public class JMeterMenuBar extends JMenuBar implements LocaleChangeListener {
public static LookAndFeelInfo[] getAllLAFs() {
UIManager.LookAndFeelInfo[] lafs = UIManager.getInstalledLookAndFeels();
int i = lafs.length;
UIManager.LookAndFeelInfo[] lafsAll = new UIManager.LookAndFeelInfo[i+2];
UIManager.LookAndFeelInfo[] lafsAll = new UIManager.LookAndFeelInfo[i+3];
System.arraycopy(lafs, 0, lafsAll, 0, i);
lafsAll[i++]=new UIManager.LookAndFeelInfo(DARCULA_LAF, DARCULA_LAF_CLASS);
lafsAll[i++]=new UIManager.LookAndFeelInfo(CROSS_PLATFORM_LAF,UIManager.getCrossPlatformLookAndFeelClassName());
lafsAll[i++]=new UIManager.LookAndFeelInfo(SYSTEM_LAF,UIManager.getSystemLookAndFeelClassName());
lafsAll[i]=new UIManager.LookAndFeelInfo(SYSTEM_LAF,UIManager.getSystemLookAndFeelClassName());
return lafsAll;
}
/**

View File

@ -142,6 +142,7 @@ Summary
<li><bug>61555</bug>Metaspace should be restricted as default</li>
<li><bug>61693</bug>JMeter aware of Docker (-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap)</li>
<li><bug>61694</bug>Add -server option in jmeter.bat</li>
<li><bug>61697</bug>Introduce Darcula Look And Feel to make JMeter UI more attractive</li>
</ul>
<ch_section>Non-functional changes</ch_section>