mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-12 15:07:11 -06:00
Merge branch 'master' of https://github.com/JFormDesigner/FlatLaf into bug-60
This commit is contained in:
26
.travis.yml
26
.travis.yml
@@ -19,11 +19,21 @@ before_install:
|
|||||||
- ./gradlew --version
|
- ./gradlew --version
|
||||||
- java -version
|
- java -version
|
||||||
|
|
||||||
deploy:
|
stages:
|
||||||
provider: script
|
- name: test
|
||||||
script: ./gradlew bintrayUpload
|
- name: snapshot
|
||||||
skip_cleanup: true # to upload artifacts created during the build
|
if: branch = master AND type IN (push) AND tag IS blank
|
||||||
on:
|
- name: release
|
||||||
branch: master
|
if: branch = master AND type IN (push) AND tag IS present
|
||||||
jdk: openjdk11
|
|
||||||
tags: true
|
jobs:
|
||||||
|
include:
|
||||||
|
# publish snapshot to oss.jfrog.org
|
||||||
|
- stage: snapshot
|
||||||
|
jdk: openjdk11
|
||||||
|
script: ./gradlew artifactoryPublish
|
||||||
|
|
||||||
|
# release a new stable version to bintray
|
||||||
|
- stage: release
|
||||||
|
jdk: openjdk11
|
||||||
|
script: ./gradlew bintrayUpload -Drelease=true
|
||||||
|
|||||||
31
CHANGELOG.md
31
CHANGELOG.md
@@ -1,6 +1,37 @@
|
|||||||
FlatLaf Change Log
|
FlatLaf Change Log
|
||||||
==================
|
==================
|
||||||
|
|
||||||
|
## Unreleased
|
||||||
|
|
||||||
|
- Support `JInternalFrame` and `JDesktopPane`. (issues #39 and #11)
|
||||||
|
- Table: Support positioning the column sort arrow in header right, left, top or
|
||||||
|
bottom. (issue #34)
|
||||||
|
- ProgressBar: Fixed visual artifacts in indeterminate mode, on HiDPI screens at
|
||||||
|
125%, 150% and 175% scaling, when the progress moves around.
|
||||||
|
- TabbedPane: New option to allow tab separators to take full height (to enable
|
||||||
|
use `UIManager.put( "TabbedPane.tabSeparatorsFullHeight", true );`). (issue
|
||||||
|
#59, PR #62)
|
||||||
|
- CheckBox and RadioButton: Do not fill background if `contentAreaFilled` is
|
||||||
|
`false`. (issue #58, PR #63)
|
||||||
|
|
||||||
|
|
||||||
|
## 0.26
|
||||||
|
|
||||||
|
- Menus:
|
||||||
|
- Changed menu bar and popup menu background colors (made brighter in light
|
||||||
|
themes and darker in dark themes).
|
||||||
|
- Highlight items in menu bar on mouse hover. (issue #49)
|
||||||
|
- Popup menus now have empty space at the top and bottom.
|
||||||
|
- Menu items now have larger left and right margins.
|
||||||
|
- Made `JMenu`, `JMenuItem`, `JCheckBoxMenuItem` and `JRadioButtonMenuItem`
|
||||||
|
non-opaque.
|
||||||
|
- TextField, FormattedTextField and PasswordField: Select all text when a text
|
||||||
|
field gains focus for the first time and selection was not set explicitly.
|
||||||
|
This can be configured to newer or always select all text on focus gain (see
|
||||||
|
UI default value `TextComponent.selectAllOnFocusPolicy`).
|
||||||
|
- ProgressBar: Made progress bar paint smooth in indeterminate mode.
|
||||||
|
|
||||||
|
|
||||||
## 0.25.1
|
## 0.25.1
|
||||||
|
|
||||||
Re-release of 0.25 because of problems with Maven Central.
|
Re-release of 0.25 because of problems with Maven Central.
|
||||||
|
|||||||
27
README.md
27
README.md
@@ -45,13 +45,26 @@ build script:
|
|||||||
|
|
||||||
groupId: com.formdev
|
groupId: com.formdev
|
||||||
artifactId: flatlaf
|
artifactId: flatlaf
|
||||||
version: 0.25.1
|
version: (see button below)
|
||||||
|
|
||||||
Otherwise download `flatlaf-<version>.jar` here:
|
Otherwise download `flatlaf-<version>.jar` here:
|
||||||
|
|
||||||
[](https://bintray.com/jformdesigner/flatlaf/flatlaf/_latestVersion)
|
[](https://bintray.com/jformdesigner/flatlaf/flatlaf/_latestVersion)
|
||||||
|
|
||||||
|
|
||||||
|
### Snapshots
|
||||||
|
|
||||||
|
FlatLaf snapshot binaries are available in
|
||||||
|
[JFrog Artifactory](https://oss.jfrog.org/artifactory/oss-snapshot-local/com/formdev/).
|
||||||
|
To access the latest snapshot, change the FlatLaf version(s) in the dependencies
|
||||||
|
to `<version>-SNAPSHOT` (e.g. `0.27-SNAPSHOT`) and add the repository
|
||||||
|
`https://oss.jfrog.org/artifactory/oss-snapshot-local` to your build (see
|
||||||
|
[Maven](https://maven.apache.org/guides/mini/guide-multiple-repositories.html)
|
||||||
|
and
|
||||||
|
[Gradle](https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:declaring_custom_repository)
|
||||||
|
docs).
|
||||||
|
|
||||||
|
|
||||||
Addons
|
Addons
|
||||||
------
|
------
|
||||||
|
|
||||||
@@ -59,6 +72,18 @@ Addons
|
|||||||
- [JIDE Common Layer](flatlaf-jide-oss)
|
- [JIDE Common Layer](flatlaf-jide-oss)
|
||||||
|
|
||||||
|
|
||||||
|
Projects using FlatLaf
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
- [NetBeans](https://netbeans.apache.org/) 11.3
|
||||||
|
- [jclasslib bytecode viewer](https://github.com/ingokegel/jclasslib) 5.5
|
||||||
|
- [j-lawyer](https://github.com/jlawyerorg/j-lawyer-org)
|
||||||
|
- [Rest Suite](https://github.com/supanadit/restsuite)
|
||||||
|
- [ControllerBuddy](https://github.com/bwRavencl/ControllerBuddy)
|
||||||
|
- [SpringRemote](https://github.com/HaleyWang/SpringRemote)
|
||||||
|
- and more...
|
||||||
|
|
||||||
|
|
||||||
Documentation
|
Documentation
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
|||||||
@@ -14,9 +14,14 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
version = "0.25.1"
|
val releaseVersion = "0.26"
|
||||||
|
val developmentVersion = "0.27-SNAPSHOT"
|
||||||
|
|
||||||
|
version = if( java.lang.Boolean.getBoolean( "release" ) ) releaseVersion else developmentVersion
|
||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
|
version = rootProject.version
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
jcenter()
|
jcenter()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,12 +14,11 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
version = rootProject.version
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
`java-library`
|
`java-library`
|
||||||
`maven-publish`
|
`maven-publish`
|
||||||
id( "com.jfrog.bintray" ) version "1.8.4"
|
id( "com.jfrog.bintray" ) version "1.8.4"
|
||||||
|
id( "com.jfrog.artifactory" ) version "4.13.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
if( JavaVersion.current() >= JavaVersion.VERSION_1_9 ) {
|
if( JavaVersion.current() >= JavaVersion.VERSION_1_9 ) {
|
||||||
@@ -53,7 +52,7 @@ tasks {
|
|||||||
targetCompatibility = "9"
|
targetCompatibility = "9"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
jar {
|
jar {
|
||||||
archiveBaseName.set( "flatlaf" )
|
archiveBaseName.set( "flatlaf" )
|
||||||
|
|
||||||
@@ -68,6 +67,7 @@ tasks {
|
|||||||
options {
|
options {
|
||||||
this as StandardJavadocDocletOptions
|
this as StandardJavadocDocletOptions
|
||||||
tags = listOf( "uiDefault", "clientProperty" )
|
tags = listOf( "uiDefault", "clientProperty" )
|
||||||
|
addStringOption( "Xdoclint:all,-missing", "-Xdoclint:all,-missing" )
|
||||||
}
|
}
|
||||||
isFailOnError = false
|
isFailOnError = false
|
||||||
}
|
}
|
||||||
@@ -145,3 +145,25 @@ bintray {
|
|||||||
publish = true
|
publish = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
artifactory {
|
||||||
|
setContextUrl( "https://oss.jfrog.org" )
|
||||||
|
|
||||||
|
publish( closureOf<org.jfrog.gradle.plugin.artifactory.dsl.PublisherConfig> {
|
||||||
|
repository( delegateClosureOf<groovy.lang.GroovyObject> {
|
||||||
|
setProperty( "repoKey", "oss-snapshot-local" )
|
||||||
|
setProperty( "username", System.getenv( "BINTRAY_USER" ) ?: System.getProperty( "bintray.user" ) )
|
||||||
|
setProperty( "password", System.getenv( "BINTRAY_KEY" ) ?: System.getProperty( "bintray.key" ) )
|
||||||
|
} )
|
||||||
|
|
||||||
|
defaults( delegateClosureOf<groovy.lang.GroovyObject> {
|
||||||
|
invokeMethod( "publications", "maven" )
|
||||||
|
setProperty( "publishArtifacts", true )
|
||||||
|
setProperty( "publishPom", true )
|
||||||
|
} )
|
||||||
|
} )
|
||||||
|
|
||||||
|
resolve( delegateClosureOf<org.jfrog.gradle.plugin.artifactory.dsl.ResolverConfig> {
|
||||||
|
setProperty( "repoKey", "jcenter" )
|
||||||
|
} )
|
||||||
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public interface FlatClientProperties
|
|||||||
* <p>
|
* <p>
|
||||||
* <strong>Components</strong> {@link javax.swing.JToggleButton}
|
* <strong>Components</strong> {@link javax.swing.JToggleButton}
|
||||||
*
|
*
|
||||||
* @see #TOGGLE_BUTTON_TYPE
|
* @see #BUTTON_TYPE
|
||||||
*/
|
*/
|
||||||
String BUTTON_TYPE_TAB = "tab";
|
String BUTTON_TYPE_TAB = "tab";
|
||||||
|
|
||||||
@@ -141,10 +141,44 @@ public interface FlatClientProperties
|
|||||||
*/
|
*/
|
||||||
String TABBED_PANE_TAB_HEIGHT = "JTabbedPane.tabHeight";
|
String TABBED_PANE_TAB_HEIGHT = "JTabbedPane.tabHeight";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies whether all text is selected when the text component gains focus.
|
||||||
|
* <p>
|
||||||
|
* <strong>Component</strong> {@link javax.swing.JTextField} (and subclasses)<br>
|
||||||
|
* <strong>Value type</strong> {@link java.lang.String}<br>
|
||||||
|
* <strong>Allowed Values</strong> {@link #SELECT_ALL_ON_FOCUS_POLICY_NEVER},
|
||||||
|
* {@link #SELECT_ALL_ON_FOCUS_POLICY_ONCE} (default) or
|
||||||
|
* {@link #SELECT_ALL_ON_FOCUS_POLICY_ALWAYS}
|
||||||
|
*/
|
||||||
|
String SELECT_ALL_ON_FOCUS_POLICY = "JTextField.selectAllOnFocusPolicy";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Never select all text when the text component gains focus.
|
||||||
|
*
|
||||||
|
* @see #SELECT_ALL_ON_FOCUS_POLICY
|
||||||
|
*/
|
||||||
|
String SELECT_ALL_ON_FOCUS_POLICY_NEVER = "never";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Select all text when the text component gains focus for the first time
|
||||||
|
* and selection was not modified (is at end of text).
|
||||||
|
* This is the default.
|
||||||
|
*
|
||||||
|
* @see #SELECT_ALL_ON_FOCUS_POLICY
|
||||||
|
*/
|
||||||
|
String SELECT_ALL_ON_FOCUS_POLICY_ONCE = "once";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Always select all text when the text component gains focus.
|
||||||
|
*
|
||||||
|
* @see #SELECT_ALL_ON_FOCUS_POLICY
|
||||||
|
*/
|
||||||
|
String SELECT_ALL_ON_FOCUS_POLICY_ALWAYS = "always";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Placeholder text that is only painted if the text field is empty.
|
* Placeholder text that is only painted if the text field is empty.
|
||||||
* <p>
|
* <p>
|
||||||
* <strong>Component</strong> {@link javax.swing.JTextField} or {@link javax.swing.JComboBox}<br>
|
* <strong>Component</strong> {@link javax.swing.JTextField} (and subclasses) or {@link javax.swing.JComboBox}<br>
|
||||||
* <strong>Value type</strong> {@link java.lang.String}
|
* <strong>Value type</strong> {@link java.lang.String}
|
||||||
*/
|
*/
|
||||||
String PLACEHOLDER_TEXT = "JTextField.placeholderText";
|
String PLACEHOLDER_TEXT = "JTextField.placeholderText";
|
||||||
|
|||||||
@@ -288,10 +288,9 @@ public abstract class FlatLaf
|
|||||||
|
|
||||||
// override fonts
|
// override fonts
|
||||||
for( Object key : defaults.keySet() ) {
|
for( Object key : defaults.keySet() ) {
|
||||||
if( key instanceof String && ((String)key).endsWith( ".font" ) )
|
if( key instanceof String && (((String)key).endsWith( ".font" ) || ((String)key).endsWith( "Font" )) )
|
||||||
defaults.put( key, uiFont );
|
defaults.put( key, uiFont );
|
||||||
}
|
}
|
||||||
defaults.put( "MenuItem.acceleratorFont", uiFont );
|
|
||||||
|
|
||||||
// use smaller font for progress bar
|
// use smaller font for progress bar
|
||||||
defaults.put( "ProgressBar.font", UIScale.scaleFont( uiFont, 0.85f ) );
|
defaults.put( "ProgressBar.font", UIScale.scaleFont( uiFont, 0.85f ) );
|
||||||
|
|||||||
@@ -221,7 +221,8 @@ class UIDefaultsLoader
|
|||||||
return resolveValue( properties, newValue );
|
return resolveValue( properties, newValue );
|
||||||
}
|
}
|
||||||
|
|
||||||
private enum ValueType { UNKNOWN, STRING, INTEGER, FLOAT, BORDER, ICON, INSETS, DIMENSION, COLOR, SCALEDINTEGER, INSTANCE, CLASS }
|
private enum ValueType { UNKNOWN, STRING, INTEGER, FLOAT, BORDER, ICON, INSETS, DIMENSION, COLOR,
|
||||||
|
SCALEDINTEGER, SCALEDFLOAT, SCALEDINSETS, SCALEDDIMENSION, INSTANCE, CLASS }
|
||||||
|
|
||||||
static Object parseValue( String key, String value ) {
|
static Object parseValue( String key, String value ) {
|
||||||
return parseValue( key, value, v -> v, Collections.emptyList() );
|
return parseValue( key, value, v -> v, Collections.emptyList() );
|
||||||
@@ -299,6 +300,9 @@ class UIDefaultsLoader
|
|||||||
case DIMENSION: return parseDimension( value );
|
case DIMENSION: return parseDimension( value );
|
||||||
case COLOR: return parseColorOrFunction( value, resolver, true );
|
case COLOR: return parseColorOrFunction( value, resolver, true );
|
||||||
case SCALEDINTEGER: return parseScaledInteger( value );
|
case SCALEDINTEGER: return parseScaledInteger( value );
|
||||||
|
case SCALEDFLOAT: return parseScaledFloat( value );
|
||||||
|
case SCALEDINSETS: return parseScaledInsets( value );
|
||||||
|
case SCALEDDIMENSION:return parseScaledDimension( value );
|
||||||
case INSTANCE: return parseInstance( value, addonClassLoaders );
|
case INSTANCE: return parseInstance( value, addonClassLoaders );
|
||||||
case CLASS: return parseClass( value, addonClassLoaders );
|
case CLASS: return parseClass( value, addonClassLoaders );
|
||||||
case UNKNOWN:
|
case UNKNOWN:
|
||||||
@@ -629,6 +633,27 @@ class UIDefaultsLoader
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static ActiveValue parseScaledFloat( String value ) {
|
||||||
|
float val = parseFloat( value, true );
|
||||||
|
return (ActiveValue) t -> {
|
||||||
|
return UIScale.scale( val );
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ActiveValue parseScaledInsets( String value ) {
|
||||||
|
Insets insets = parseInsets( value );
|
||||||
|
return (ActiveValue) t -> {
|
||||||
|
return UIScale.scale( insets );
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ActiveValue parseScaledDimension( String value ) {
|
||||||
|
Dimension dimension = parseDimension( value );
|
||||||
|
return (ActiveValue) t -> {
|
||||||
|
return UIScale.scale( dimension );
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Split string and trim parts.
|
* Split string and trim parts.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public class FlatAscendingSortIcon
|
|||||||
g.setColor( sortIconColor );
|
g.setColor( sortIconColor );
|
||||||
if( chevron ) {
|
if( chevron ) {
|
||||||
// chevron arrow
|
// chevron arrow
|
||||||
Path2D path = FlatUIUtils.createPath( false, 1,5, 5,1, 9,5 );
|
Path2D path = FlatUIUtils.createPath( false, 1,4, 5,0, 9,4 );
|
||||||
g.setStroke( new BasicStroke( 1f ) );
|
g.setStroke( new BasicStroke( 1f ) );
|
||||||
g.draw( path );
|
g.draw( path );
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public class FlatDescendingSortIcon
|
|||||||
g.setColor( sortIconColor );
|
g.setColor( sortIconColor );
|
||||||
if( chevron ) {
|
if( chevron ) {
|
||||||
// chevron arrow
|
// chevron arrow
|
||||||
Path2D path = FlatUIUtils.createPath( false, 1,1, 5,5, 9,1 );
|
Path2D path = FlatUIUtils.createPath( false, 1,0, 5,4, 9,0 );
|
||||||
g.setStroke( new BasicStroke( 1f ) );
|
g.setStroke( new BasicStroke( 1f ) );
|
||||||
g.draw( path );
|
g.draw( path );
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -0,0 +1,60 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.icons;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Component;
|
||||||
|
import java.awt.Dimension;
|
||||||
|
import java.awt.Graphics2D;
|
||||||
|
import javax.swing.UIManager;
|
||||||
|
import com.formdev.flatlaf.ui.FlatButtonUI;
|
||||||
|
import com.formdev.flatlaf.ui.FlatUIUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Base class for internal frame icons.
|
||||||
|
*
|
||||||
|
* @uiDefault InternalFrame.buttonHoverBackground Color
|
||||||
|
* @uiDefault InternalFrame.buttonPressedBackground Color
|
||||||
|
*
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public abstract class FlatInternalFrameAbstractIcon
|
||||||
|
extends FlatAbstractIcon
|
||||||
|
{
|
||||||
|
private final Color hoverBackground;
|
||||||
|
private final Color pressedBackground;
|
||||||
|
|
||||||
|
public FlatInternalFrameAbstractIcon() {
|
||||||
|
this( UIManager.getDimension( "InternalFrame.buttonSize" ),
|
||||||
|
UIManager.getColor( "InternalFrame.buttonHoverBackground" ),
|
||||||
|
UIManager.getColor( "InternalFrame.buttonPressedBackground" ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatInternalFrameAbstractIcon( Dimension size, Color hoverBackground, Color pressedBackground ) {
|
||||||
|
super( size.width, size.height, null );
|
||||||
|
this.hoverBackground = hoverBackground;
|
||||||
|
this.pressedBackground = pressedBackground;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void paintBackground( Component c, Graphics2D g ) {
|
||||||
|
Color background = FlatButtonUI.buttonStateColor( c, null, null, null, hoverBackground, pressedBackground );
|
||||||
|
if( background != null ) {
|
||||||
|
FlatUIUtils.setColor( g, background, c.getBackground() );
|
||||||
|
g.fillRect( 0, 0, width, height );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -17,30 +17,42 @@
|
|||||||
package com.formdev.flatlaf.icons;
|
package com.formdev.flatlaf.icons;
|
||||||
|
|
||||||
import java.awt.BasicStroke;
|
import java.awt.BasicStroke;
|
||||||
|
import java.awt.Color;
|
||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.geom.Line2D;
|
import java.awt.geom.Line2D;
|
||||||
import java.awt.geom.Path2D;
|
import java.awt.geom.Path2D;
|
||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
|
import com.formdev.flatlaf.ui.FlatButtonUI;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* "close" icon for {@link javax.swing.JInternalFrame}.
|
* "close" icon for {@link javax.swing.JInternalFrame}.
|
||||||
*
|
*
|
||||||
* @uiDefault InternalFrame.iconColor Color
|
* @uiDefault InternalFrame.buttonHoverBackground Color
|
||||||
|
* @uiDefault InternalFrame.buttonPressedBackground Color
|
||||||
*
|
*
|
||||||
* @author Karl Tauber
|
* @author Karl Tauber
|
||||||
*/
|
*/
|
||||||
public class FlatInternalFrameCloseIcon
|
public class FlatInternalFrameCloseIcon
|
||||||
extends FlatAbstractIcon
|
extends FlatInternalFrameAbstractIcon
|
||||||
{
|
{
|
||||||
|
private final Color hoverForeground = UIManager.getColor( "InternalFrame.closeHoverForeground" );
|
||||||
|
private final Color pressedForeground = UIManager.getColor( "InternalFrame.closePressedForeground" );
|
||||||
|
|
||||||
public FlatInternalFrameCloseIcon() {
|
public FlatInternalFrameCloseIcon() {
|
||||||
super( 16, 16, UIManager.getColor( "InternalFrame.iconColor" ) );
|
super( UIManager.getDimension( "InternalFrame.buttonSize" ),
|
||||||
|
UIManager.getColor( "InternalFrame.closeHoverBackground" ),
|
||||||
|
UIManager.getColor( "InternalFrame.closePressedBackground" ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void paintIcon( Component c, Graphics2D g ) {
|
protected void paintIcon( Component c, Graphics2D g ) {
|
||||||
float mx = 8;
|
paintBackground( c, g );
|
||||||
float my = 8;
|
|
||||||
|
g.setColor( FlatButtonUI.buttonStateColor( c, c.getForeground(), null, null, hoverForeground, pressedForeground ) );
|
||||||
|
|
||||||
|
float mx = width / 2;
|
||||||
|
float my = height / 2;
|
||||||
float r = 3.25f;
|
float r = 3.25f;
|
||||||
|
|
||||||
Path2D path = new Path2D.Float( Path2D.WIND_EVEN_ODD );
|
Path2D path = new Path2D.Float( Path2D.WIND_EVEN_ODD );
|
||||||
|
|||||||
@@ -18,24 +18,23 @@ package com.formdev.flatlaf.icons;
|
|||||||
|
|
||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import javax.swing.UIManager;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* "iconify" icon for {@link javax.swing.JInternalFrame}.
|
* "iconify" icon for {@link javax.swing.JInternalFrame}.
|
||||||
*
|
*
|
||||||
* @uiDefault InternalFrame.iconColor Color
|
|
||||||
*
|
|
||||||
* @author Karl Tauber
|
* @author Karl Tauber
|
||||||
*/
|
*/
|
||||||
public class FlatInternalFrameIconifyIcon
|
public class FlatInternalFrameIconifyIcon
|
||||||
extends FlatAbstractIcon
|
extends FlatInternalFrameAbstractIcon
|
||||||
{
|
{
|
||||||
public FlatInternalFrameIconifyIcon() {
|
public FlatInternalFrameIconifyIcon() {
|
||||||
super( 16, 16, UIManager.getColor( "InternalFrame.iconColor" ) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void paintIcon( Component c, Graphics2D g ) {
|
protected void paintIcon( Component c, Graphics2D g ) {
|
||||||
g.fillRect( 3, 8, 10, 1 );
|
paintBackground( c, g );
|
||||||
|
|
||||||
|
g.setColor( c.getForeground() );
|
||||||
|
g.fillRect( (width / 2) - 4, height / 2, 8, 1 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,25 +18,24 @@ package com.formdev.flatlaf.icons;
|
|||||||
|
|
||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import javax.swing.UIManager;
|
|
||||||
import com.formdev.flatlaf.ui.FlatUIUtils;
|
import com.formdev.flatlaf.ui.FlatUIUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* "maximize" icon for {@link javax.swing.JInternalFrame}.
|
* "maximize" icon for {@link javax.swing.JInternalFrame}.
|
||||||
*
|
*
|
||||||
* @uiDefault InternalFrame.iconColor Color
|
|
||||||
*
|
|
||||||
* @author Karl Tauber
|
* @author Karl Tauber
|
||||||
*/
|
*/
|
||||||
public class FlatInternalFrameMaximizeIcon
|
public class FlatInternalFrameMaximizeIcon
|
||||||
extends FlatAbstractIcon
|
extends FlatInternalFrameAbstractIcon
|
||||||
{
|
{
|
||||||
public FlatInternalFrameMaximizeIcon() {
|
public FlatInternalFrameMaximizeIcon() {
|
||||||
super( 16, 16, UIManager.getColor( "InternalFrame.iconColor" ) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void paintIcon( Component c, Graphics2D g ) {
|
protected void paintIcon( Component c, Graphics2D g ) {
|
||||||
g.fill( FlatUIUtils.createRectangle( 3, 3, 10, 10, 1 ) );
|
paintBackground( c, g );
|
||||||
|
|
||||||
|
g.setColor( c.getForeground() );
|
||||||
|
g.fill( FlatUIUtils.createRectangle( (width / 2) - 4, (height / 2) - 4, 8, 8, 1 ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,30 +21,32 @@ import java.awt.Graphics2D;
|
|||||||
import java.awt.geom.Area;
|
import java.awt.geom.Area;
|
||||||
import java.awt.geom.Path2D;
|
import java.awt.geom.Path2D;
|
||||||
import java.awt.geom.Rectangle2D;
|
import java.awt.geom.Rectangle2D;
|
||||||
import javax.swing.UIManager;
|
|
||||||
import com.formdev.flatlaf.ui.FlatUIUtils;
|
import com.formdev.flatlaf.ui.FlatUIUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* "minimize" (actually "restore") icon for {@link javax.swing.JInternalFrame}.
|
* "minimize" (actually "restore") icon for {@link javax.swing.JInternalFrame}.
|
||||||
*
|
*
|
||||||
* @uiDefault InternalFrame.iconColor Color
|
|
||||||
*
|
|
||||||
* @author Karl Tauber
|
* @author Karl Tauber
|
||||||
*/
|
*/
|
||||||
public class FlatInternalFrameMinimizeIcon
|
public class FlatInternalFrameMinimizeIcon
|
||||||
extends FlatAbstractIcon
|
extends FlatInternalFrameAbstractIcon
|
||||||
{
|
{
|
||||||
public FlatInternalFrameMinimizeIcon() {
|
public FlatInternalFrameMinimizeIcon() {
|
||||||
super( 16, 16, UIManager.getColor( "InternalFrame.iconColor" ) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void paintIcon( Component c, Graphics2D g ) {
|
protected void paintIcon( Component c, Graphics2D g ) {
|
||||||
Path2D r1 = FlatUIUtils.createRectangle( 5, 3, 8, 8, 1 );
|
paintBackground( c, g );
|
||||||
Path2D r2 = FlatUIUtils.createRectangle( 3, 5, 8, 8, 1 );
|
|
||||||
|
g.setColor( c.getForeground() );
|
||||||
|
|
||||||
|
int x = (width / 2) - 4;
|
||||||
|
int y = (height / 2) - 4;
|
||||||
|
Path2D r1 = FlatUIUtils.createRectangle( x + 1, y - 1, 8, 8, 1 );
|
||||||
|
Path2D r2 = FlatUIUtils.createRectangle( x - 1, y + 1, 8, 8, 1 );
|
||||||
|
|
||||||
Area area = new Area( r1 );
|
Area area = new Area( r1 );
|
||||||
area.subtract( new Area( new Rectangle2D.Float( 3, 5, 8, 8 ) ) );
|
area.subtract( new Area( new Rectangle2D.Float( x - 1, y + 1, 8, 8 ) ) );
|
||||||
g.fill( area );
|
g.fill( area );
|
||||||
|
|
||||||
g.fill( r2 );
|
g.fill( r2 );
|
||||||
|
|||||||
128
flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatCaret.java
Normal file
128
flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatCaret.java
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.ui;
|
||||||
|
|
||||||
|
import static com.formdev.flatlaf.FlatClientProperties.*;
|
||||||
|
import java.awt.EventQueue;
|
||||||
|
import java.awt.event.FocusEvent;
|
||||||
|
import java.awt.event.MouseEvent;
|
||||||
|
import javax.swing.JFormattedTextField;
|
||||||
|
import javax.swing.plaf.UIResource;
|
||||||
|
import javax.swing.text.DefaultCaret;
|
||||||
|
import javax.swing.text.Document;
|
||||||
|
import javax.swing.text.JTextComponent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Caret that can select all text on focus gained.
|
||||||
|
*
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
class FlatCaret
|
||||||
|
extends DefaultCaret
|
||||||
|
implements UIResource
|
||||||
|
{
|
||||||
|
private final String selectAllOnFocusPolicy;
|
||||||
|
|
||||||
|
private boolean wasFocused;
|
||||||
|
private boolean wasTemporaryLost;
|
||||||
|
private boolean isMousePressed;
|
||||||
|
|
||||||
|
FlatCaret( String selectAllOnFocusPolicy ) {
|
||||||
|
this.selectAllOnFocusPolicy = selectAllOnFocusPolicy;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void install( JTextComponent c ) {
|
||||||
|
super.install( c );
|
||||||
|
|
||||||
|
// the dot and mark are lost when switching LaF
|
||||||
|
// --> move dot to end of text so that all text may be selected when it gains focus
|
||||||
|
Document doc = c.getDocument();
|
||||||
|
if( doc != null && getDot() == 0 && getMark() == 0 ) {
|
||||||
|
int length = doc.getLength();
|
||||||
|
if( length > 0 )
|
||||||
|
setDot( length );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void focusGained( FocusEvent e ) {
|
||||||
|
if( !wasTemporaryLost && !isMousePressed )
|
||||||
|
selectAllOnFocusGained();
|
||||||
|
wasTemporaryLost = false;
|
||||||
|
wasFocused = true;
|
||||||
|
|
||||||
|
super.focusGained( e );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void focusLost( FocusEvent e ) {
|
||||||
|
wasTemporaryLost = e.isTemporary();
|
||||||
|
super.focusLost( e );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void mousePressed( MouseEvent e ) {
|
||||||
|
isMousePressed = true;
|
||||||
|
super.mousePressed( e );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void mouseReleased( MouseEvent e ) {
|
||||||
|
isMousePressed = false;
|
||||||
|
super.mouseReleased( e );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void selectAllOnFocusGained() {
|
||||||
|
JTextComponent c = getComponent();
|
||||||
|
Document doc = c.getDocument();
|
||||||
|
if( doc == null || !c.isEnabled() || !c.isEditable() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
Object selectAllOnFocusPolicy = c.getClientProperty( SELECT_ALL_ON_FOCUS_POLICY );
|
||||||
|
if( selectAllOnFocusPolicy == null )
|
||||||
|
selectAllOnFocusPolicy = this.selectAllOnFocusPolicy;
|
||||||
|
|
||||||
|
if( SELECT_ALL_ON_FOCUS_POLICY_NEVER.equals( selectAllOnFocusPolicy ) )
|
||||||
|
return;
|
||||||
|
|
||||||
|
if( !SELECT_ALL_ON_FOCUS_POLICY_ALWAYS.equals( selectAllOnFocusPolicy ) ) {
|
||||||
|
// policy is "once" (or null or unknown)
|
||||||
|
|
||||||
|
// was already focused?
|
||||||
|
if( wasFocused )
|
||||||
|
return;
|
||||||
|
|
||||||
|
// check whether selection was modified before gaining focus
|
||||||
|
int dot = getDot();
|
||||||
|
int mark = getMark();
|
||||||
|
if( dot != mark || dot != doc.getLength() )
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// select all
|
||||||
|
if( c instanceof JFormattedTextField ) {
|
||||||
|
EventQueue.invokeLater( () -> {
|
||||||
|
setDot( 0 );
|
||||||
|
moveDot( doc.getLength() );
|
||||||
|
} );
|
||||||
|
} else {
|
||||||
|
setDot( 0 );
|
||||||
|
moveDot( doc.getLength() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,308 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.ui;
|
||||||
|
|
||||||
|
import java.awt.Component;
|
||||||
|
import java.awt.Container;
|
||||||
|
import java.awt.Dimension;
|
||||||
|
import java.awt.EventQueue;
|
||||||
|
import java.awt.Graphics2D;
|
||||||
|
import java.awt.Image;
|
||||||
|
import java.awt.Insets;
|
||||||
|
import java.awt.LayoutManager;
|
||||||
|
import java.awt.Point;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.awt.event.MouseEvent;
|
||||||
|
import java.awt.image.BufferedImage;
|
||||||
|
import java.beans.PropertyVetoException;
|
||||||
|
import javax.swing.BorderFactory;
|
||||||
|
import javax.swing.ImageIcon;
|
||||||
|
import javax.swing.JButton;
|
||||||
|
import javax.swing.JComponent;
|
||||||
|
import javax.swing.event.MouseInputAdapter;
|
||||||
|
import javax.swing.event.MouseInputListener;
|
||||||
|
import javax.swing.JLabel;
|
||||||
|
import javax.swing.JLayeredPane;
|
||||||
|
import javax.swing.JRootPane;
|
||||||
|
import javax.swing.JToolTip;
|
||||||
|
import javax.swing.LookAndFeel;
|
||||||
|
import javax.swing.SwingConstants;
|
||||||
|
import javax.swing.SwingUtilities;
|
||||||
|
import javax.swing.UIManager;
|
||||||
|
import javax.swing.plaf.ComponentUI;
|
||||||
|
import javax.swing.plaf.basic.BasicDesktopIconUI;
|
||||||
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides the Flat LaF UI delegate for {@link javax.swing.JInternalFrame.JDesktopIcon}.
|
||||||
|
*
|
||||||
|
* <!-- BasicDesktopIconUI -->
|
||||||
|
*
|
||||||
|
* @uiDefault DesktopIcon.border Border
|
||||||
|
*
|
||||||
|
* <!-- FlatDesktopIconUI -->
|
||||||
|
*
|
||||||
|
* @uiDefault DesktopIcon.background Color
|
||||||
|
* @uiDefault DesktopIcon.foreground Color
|
||||||
|
* @uiDefault DesktopIcon.iconSize Dimension
|
||||||
|
* @uiDefault DesktopIcon.closeSize Dimension
|
||||||
|
* @uiDefault DesktopIcon.closeIcon Icon
|
||||||
|
*
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatDesktopIconUI
|
||||||
|
extends BasicDesktopIconUI
|
||||||
|
{
|
||||||
|
private Dimension iconSize;
|
||||||
|
private Dimension closeSize;
|
||||||
|
|
||||||
|
private JLabel dockIcon;
|
||||||
|
private JButton closeButton;
|
||||||
|
private JToolTip titleTip;
|
||||||
|
private ActionListener closeListener;
|
||||||
|
private MouseInputListener mouseInputListener;
|
||||||
|
|
||||||
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
|
return new FlatDesktopIconUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void uninstallUI( JComponent c ) {
|
||||||
|
super.uninstallUI( c );
|
||||||
|
|
||||||
|
dockIcon = null;
|
||||||
|
closeButton = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void installComponents() {
|
||||||
|
dockIcon = new JLabel();
|
||||||
|
dockIcon.setHorizontalAlignment( SwingConstants.CENTER );
|
||||||
|
|
||||||
|
closeButton = new JButton();
|
||||||
|
closeButton.setIcon( UIManager.getIcon( "DesktopIcon.closeIcon" ) );
|
||||||
|
closeButton.setFocusable( false );
|
||||||
|
closeButton.setBorder( BorderFactory.createEmptyBorder() );
|
||||||
|
closeButton.setOpaque( true );
|
||||||
|
closeButton.setBackground( FlatUIUtils.nonUIResource( desktopIcon.getBackground() ) );
|
||||||
|
closeButton.setForeground( FlatUIUtils.nonUIResource( desktopIcon.getForeground() ) );
|
||||||
|
closeButton.setVisible( false );
|
||||||
|
|
||||||
|
desktopIcon.setLayout( new FlatDesktopIconLayout() );
|
||||||
|
desktopIcon.add( closeButton );
|
||||||
|
desktopIcon.add( dockIcon );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void uninstallComponents() {
|
||||||
|
hideTitleTip();
|
||||||
|
|
||||||
|
desktopIcon.remove( dockIcon );
|
||||||
|
desktopIcon.remove( closeButton );
|
||||||
|
desktopIcon.setLayout( null );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void installDefaults() {
|
||||||
|
super.installDefaults();
|
||||||
|
|
||||||
|
LookAndFeel.installColors( desktopIcon, "DesktopIcon.background", "DesktopIcon.foreground" );
|
||||||
|
|
||||||
|
iconSize = UIManager.getDimension( "DesktopIcon.iconSize" );
|
||||||
|
closeSize = UIManager.getDimension( "DesktopIcon.closeSize" );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void installListeners() {
|
||||||
|
super.installListeners();
|
||||||
|
|
||||||
|
closeListener = e -> {
|
||||||
|
if( frame.isClosable() )
|
||||||
|
frame.doDefaultCloseAction();
|
||||||
|
};
|
||||||
|
closeButton.addActionListener( closeListener );
|
||||||
|
closeButton.addMouseListener( mouseInputListener );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void uninstallListeners() {
|
||||||
|
super.uninstallListeners();
|
||||||
|
|
||||||
|
closeButton.removeActionListener( closeListener );
|
||||||
|
closeButton.removeMouseListener( mouseInputListener );
|
||||||
|
closeListener = null;
|
||||||
|
mouseInputListener = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected MouseInputListener createMouseInputListener() {
|
||||||
|
mouseInputListener = new MouseInputAdapter() {
|
||||||
|
@Override
|
||||||
|
public void mouseReleased( MouseEvent e ) {
|
||||||
|
if( frame.isIcon() && desktopIcon.contains( e.getX(), e.getY() ) ) {
|
||||||
|
hideTitleTip();
|
||||||
|
closeButton.setVisible( false );
|
||||||
|
|
||||||
|
try {
|
||||||
|
frame.setIcon( false );
|
||||||
|
} catch( PropertyVetoException ex ) {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void mouseEntered( MouseEvent e ) {
|
||||||
|
showTitleTip();
|
||||||
|
if( frame.isClosable() )
|
||||||
|
closeButton.setVisible( true );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void mouseExited( MouseEvent e ) {
|
||||||
|
hideTitleTip();
|
||||||
|
closeButton.setVisible( false );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
return mouseInputListener;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showTitleTip() {
|
||||||
|
JRootPane rootPane = SwingUtilities.getRootPane( desktopIcon );
|
||||||
|
if( rootPane == null )
|
||||||
|
return;
|
||||||
|
|
||||||
|
if( titleTip == null ) {
|
||||||
|
titleTip = new JToolTip();
|
||||||
|
rootPane.getLayeredPane().add( titleTip, JLayeredPane.POPUP_LAYER );
|
||||||
|
}
|
||||||
|
titleTip.setTipText( frame.getTitle() );
|
||||||
|
titleTip.setSize( titleTip.getPreferredSize() );
|
||||||
|
|
||||||
|
int tx = (desktopIcon.getWidth() - titleTip.getWidth()) / 2;
|
||||||
|
int ty = -(titleTip.getHeight() + UIScale.scale( 4 ));
|
||||||
|
Point pt = SwingUtilities.convertPoint( desktopIcon, tx, ty, titleTip.getParent() );
|
||||||
|
if( pt.x + titleTip.getWidth() > rootPane.getWidth() )
|
||||||
|
pt.x = rootPane.getWidth() - titleTip.getWidth();
|
||||||
|
if( pt.x < 0 )
|
||||||
|
pt.x = 0;
|
||||||
|
titleTip.setLocation( pt );
|
||||||
|
titleTip.repaint();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void hideTitleTip() {
|
||||||
|
if( titleTip == null )
|
||||||
|
return;
|
||||||
|
|
||||||
|
titleTip.setVisible( false );
|
||||||
|
titleTip.getParent().remove( titleTip );
|
||||||
|
titleTip = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Dimension getPreferredSize( JComponent c ) {
|
||||||
|
return UIScale.scale( iconSize );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Dimension getMinimumSize( JComponent c ) {
|
||||||
|
return getPreferredSize( c );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Dimension getMaximumSize( JComponent c ) {
|
||||||
|
return getPreferredSize( c );
|
||||||
|
}
|
||||||
|
|
||||||
|
void updateDockIcon() {
|
||||||
|
// use invoke later to make sure that components are updated when switching LaF
|
||||||
|
EventQueue.invokeLater( () -> {
|
||||||
|
if( dockIcon != null )
|
||||||
|
updateDockIconLater();
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateDockIconLater() {
|
||||||
|
// make sure that frame is not selected
|
||||||
|
if( frame.isSelected() ) {
|
||||||
|
try {
|
||||||
|
frame.setSelected( false );
|
||||||
|
} catch( PropertyVetoException ex ) {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// paint internal frame to buffered image
|
||||||
|
int frameWidth = Math.max( frame.getWidth(), 1 );
|
||||||
|
int frameHeight = Math.max( frame.getHeight(), 1 );
|
||||||
|
BufferedImage frameImage = new BufferedImage( frameWidth, frameHeight, BufferedImage.TYPE_INT_ARGB );
|
||||||
|
Graphics2D g = frameImage.createGraphics();
|
||||||
|
try {
|
||||||
|
//TODO fix missing internal frame header when switching LaF
|
||||||
|
frame.paint( g );
|
||||||
|
} finally {
|
||||||
|
g.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
// compute preview size (keep ratio; also works with non-square preview)
|
||||||
|
Insets insets = desktopIcon.getInsets();
|
||||||
|
int previewWidth = UIScale.scale( iconSize.width ) - insets.left - insets.right;
|
||||||
|
int previewHeight = UIScale.scale( iconSize.height ) - insets.top - insets.bottom;
|
||||||
|
float frameRatio = ((float) frameHeight / (float) frameWidth);
|
||||||
|
if( ((float) previewWidth / (float) frameWidth) > ((float) previewHeight / (float) frameHeight) )
|
||||||
|
previewWidth = Math.round( previewHeight / frameRatio );
|
||||||
|
else
|
||||||
|
previewHeight = Math.round( previewWidth * frameRatio );
|
||||||
|
|
||||||
|
// scale preview
|
||||||
|
Image previewImage = frameImage.getScaledInstance( previewWidth, previewHeight, Image.SCALE_SMOOTH );
|
||||||
|
dockIcon.setIcon( new ImageIcon( previewImage ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
//---- class DockIcon -----------------------------------------------------
|
||||||
|
|
||||||
|
private class FlatDesktopIconLayout
|
||||||
|
implements LayoutManager
|
||||||
|
{
|
||||||
|
@Override public void addLayoutComponent( String name, Component comp ) {}
|
||||||
|
@Override public void removeLayoutComponent( Component comp ) {}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Dimension preferredLayoutSize( Container parent ) {
|
||||||
|
return dockIcon.getPreferredSize();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Dimension minimumLayoutSize( Container parent ) {
|
||||||
|
return dockIcon.getMinimumSize();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void layoutContainer( Container parent ) {
|
||||||
|
Insets insets = parent.getInsets();
|
||||||
|
|
||||||
|
// dock icon
|
||||||
|
dockIcon.setBounds( insets.left, insets.top,
|
||||||
|
parent.getWidth() - insets.left - insets.right,
|
||||||
|
parent.getHeight() - insets.top - insets.bottom );
|
||||||
|
|
||||||
|
// close button in upper right corner
|
||||||
|
Dimension cSize = UIScale.scale( closeSize );
|
||||||
|
closeButton.setBounds( parent.getWidth() - cSize.width, 0, cSize.width, cSize.height );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.ui;
|
||||||
|
|
||||||
|
import javax.swing.DefaultDesktopManager;
|
||||||
|
import javax.swing.JComponent;
|
||||||
|
import javax.swing.JInternalFrame;
|
||||||
|
import javax.swing.plaf.ComponentUI;
|
||||||
|
import javax.swing.plaf.UIResource;
|
||||||
|
import javax.swing.plaf.basic.BasicDesktopPaneUI;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides the Flat LaF UI delegate for {@link javax.swing.JDesktopPane}.
|
||||||
|
*
|
||||||
|
* <!-- BasicDesktopPaneUI -->
|
||||||
|
*
|
||||||
|
* @uiDefault Desktop.background Color
|
||||||
|
* @uiDefault Desktop.minOnScreenInsets Insets
|
||||||
|
*
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatDesktopPaneUI
|
||||||
|
extends BasicDesktopPaneUI
|
||||||
|
{
|
||||||
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
|
return new FlatDesktopPaneUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void installDesktopManager() {
|
||||||
|
desktopManager = desktop.getDesktopManager();
|
||||||
|
if( desktopManager == null ) {
|
||||||
|
desktopManager = new FlatDesktopManager();
|
||||||
|
desktop.setDesktopManager( desktopManager );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---- class FlatDesktopManager -------------------------------------------
|
||||||
|
|
||||||
|
private class FlatDesktopManager
|
||||||
|
extends DefaultDesktopManager
|
||||||
|
implements UIResource
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void iconifyFrame( JInternalFrame f ) {
|
||||||
|
super.iconifyFrame( f );
|
||||||
|
|
||||||
|
((FlatDesktopIconUI)f.getDesktopIcon().getUI()).updateDockIcon();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -50,9 +50,10 @@ public class FlatEmptyBorder
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Insets getBorderInsets( Component c, Insets insets ) {
|
public Insets getBorderInsets( Component c, Insets insets ) {
|
||||||
insets.left = scale( left );
|
boolean leftToRight = left == right || c.getComponentOrientation().isLeftToRight();
|
||||||
|
insets.left = scale( leftToRight ? left : right );
|
||||||
insets.top = scale( top );
|
insets.top = scale( top );
|
||||||
insets.right = scale( right );
|
insets.right = scale( leftToRight ? right : left );
|
||||||
insets.bottom = scale( bottom );
|
insets.bottom = scale( bottom );
|
||||||
return insets;
|
return insets;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ import javax.swing.plaf.ComponentUI;
|
|||||||
* @uiDefault Component.minimumWidth int
|
* @uiDefault Component.minimumWidth int
|
||||||
* @uiDefault Component.isIntelliJTheme boolean
|
* @uiDefault Component.isIntelliJTheme boolean
|
||||||
* @uiDefault FormattedTextField.placeholderForeground Color
|
* @uiDefault FormattedTextField.placeholderForeground Color
|
||||||
|
* @uiDefault TextComponent.selectAllOnFocusPolicy String never, once (default) or always
|
||||||
*
|
*
|
||||||
* @author Karl Tauber
|
* @author Karl Tauber
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -0,0 +1,190 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.ui;
|
||||||
|
|
||||||
|
import java.awt.BorderLayout;
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Dimension;
|
||||||
|
import java.awt.Graphics;
|
||||||
|
import java.awt.LayoutManager;
|
||||||
|
import java.beans.PropertyChangeEvent;
|
||||||
|
import java.beans.PropertyChangeListener;
|
||||||
|
import javax.swing.BorderFactory;
|
||||||
|
import javax.swing.BoxLayout;
|
||||||
|
import javax.swing.Icon;
|
||||||
|
import javax.swing.JInternalFrame;
|
||||||
|
import javax.swing.JLabel;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
import javax.swing.LookAndFeel;
|
||||||
|
import javax.swing.UIManager;
|
||||||
|
import javax.swing.border.Border;
|
||||||
|
import javax.swing.plaf.basic.BasicInternalFrameTitlePane;
|
||||||
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides the Flat LaF internal frame title bar.
|
||||||
|
*
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatInternalFrameTitlePane
|
||||||
|
extends BasicInternalFrameTitlePane
|
||||||
|
{
|
||||||
|
private JLabel titleLabel;
|
||||||
|
private JPanel buttonPanel;
|
||||||
|
|
||||||
|
public FlatInternalFrameTitlePane( JInternalFrame f ) {
|
||||||
|
super( f );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void installDefaults() {
|
||||||
|
super.installDefaults();
|
||||||
|
|
||||||
|
LookAndFeel.installBorder( this, "InternalFrameTitlePane.border" );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected PropertyChangeListener createPropertyChangeListener() {
|
||||||
|
return new FlatPropertyChangeHandler();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected LayoutManager createLayout() {
|
||||||
|
return new BorderLayout( UIScale.scale( 4 ), 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void createButtons() {
|
||||||
|
super.createButtons();
|
||||||
|
|
||||||
|
iconButton.setContentAreaFilled( false );
|
||||||
|
maxButton.setContentAreaFilled( false );
|
||||||
|
closeButton.setContentAreaFilled( false );
|
||||||
|
|
||||||
|
Border emptyBorder = BorderFactory.createEmptyBorder();
|
||||||
|
iconButton.setBorder( emptyBorder );
|
||||||
|
maxButton.setBorder( emptyBorder );
|
||||||
|
closeButton.setBorder( emptyBorder );
|
||||||
|
|
||||||
|
updateButtonsVisibility();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void addSubComponents() {
|
||||||
|
titleLabel = new JLabel( frame.getTitle() );
|
||||||
|
titleLabel.setFont( FlatUIUtils.nonUIResource( getFont() ) );
|
||||||
|
titleLabel.setMinimumSize( new Dimension( UIScale.scale( 32 ), 1 ) );
|
||||||
|
updateFrameIcon();
|
||||||
|
updateColors();
|
||||||
|
|
||||||
|
buttonPanel = new JPanel();
|
||||||
|
buttonPanel.setLayout( new BoxLayout( buttonPanel, BoxLayout.LINE_AXIS ) );
|
||||||
|
buttonPanel.setOpaque( false );
|
||||||
|
|
||||||
|
buttonPanel.add( iconButton );
|
||||||
|
buttonPanel.add( maxButton );
|
||||||
|
buttonPanel.add( closeButton );
|
||||||
|
|
||||||
|
add( titleLabel, BorderLayout.CENTER );
|
||||||
|
add( buttonPanel, BorderLayout.LINE_END );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateFrameIcon() {
|
||||||
|
Icon frameIcon = frame.getFrameIcon();
|
||||||
|
if( frameIcon == UIManager.getIcon( "InternalFrame.icon" ) )
|
||||||
|
frameIcon = null;
|
||||||
|
titleLabel.setIcon( frameIcon );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateColors() {
|
||||||
|
Color background = FlatUIUtils.nonUIResource( frame.isSelected() ? selectedTitleColor : notSelectedTitleColor );
|
||||||
|
Color foreground = FlatUIUtils.nonUIResource( frame.isSelected() ? selectedTextColor : notSelectedTextColor );
|
||||||
|
|
||||||
|
titleLabel.setForeground( foreground );
|
||||||
|
iconButton.setBackground( background );
|
||||||
|
iconButton.setForeground( foreground );
|
||||||
|
maxButton.setBackground( background );
|
||||||
|
maxButton.setForeground( foreground );
|
||||||
|
closeButton.setBackground( background );
|
||||||
|
closeButton.setForeground( foreground );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateButtonsVisibility() {
|
||||||
|
iconButton.setVisible( frame.isIconifiable() );
|
||||||
|
maxButton.setVisible( frame.isMaximizable() );
|
||||||
|
closeButton.setVisible( frame.isClosable() );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Does nothing because FlatLaf internal frames do not have system menus.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected void assembleSystemMenu() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Does nothing because FlatLaf internal frames do not have system menus.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected void showSystemMenu() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void paintComponent( Graphics g ) {
|
||||||
|
paintTitleBackground( g );
|
||||||
|
}
|
||||||
|
|
||||||
|
//---- class FlatPropertyChangeHandler ------------------------------------
|
||||||
|
|
||||||
|
private class FlatPropertyChangeHandler
|
||||||
|
extends PropertyChangeHandler
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void propertyChange( PropertyChangeEvent e ) {
|
||||||
|
switch( e.getPropertyName() ) {
|
||||||
|
case JInternalFrame.TITLE_PROPERTY:
|
||||||
|
titleLabel.setText( frame.getTitle() );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case JInternalFrame.FRAME_ICON_PROPERTY:
|
||||||
|
updateFrameIcon();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case JInternalFrame.IS_SELECTED_PROPERTY:
|
||||||
|
updateColors();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "iconable":
|
||||||
|
case "maximizable":
|
||||||
|
case "closable":
|
||||||
|
updateButtonsVisibility();
|
||||||
|
enableActions();
|
||||||
|
revalidate();
|
||||||
|
repaint();
|
||||||
|
|
||||||
|
// do not invoke super.propertyChange() because this adds/removes the buttons
|
||||||
|
return;
|
||||||
|
|
||||||
|
case "componentOrientation":
|
||||||
|
applyComponentOrientation( frame.getComponentOrientation() );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
super.propertyChange( e );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,155 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.ui;
|
||||||
|
|
||||||
|
import static com.formdev.flatlaf.util.UIScale.scale;
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Component;
|
||||||
|
import java.awt.Graphics;
|
||||||
|
import java.awt.Graphics2D;
|
||||||
|
import java.awt.Insets;
|
||||||
|
import javax.swing.JComponent;
|
||||||
|
import javax.swing.JInternalFrame;
|
||||||
|
import javax.swing.LookAndFeel;
|
||||||
|
import javax.swing.UIManager;
|
||||||
|
import javax.swing.plaf.ComponentUI;
|
||||||
|
import javax.swing.plaf.basic.BasicInternalFrameUI;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides the Flat LaF UI delegate for {@link javax.swing.JInternalFrame}.
|
||||||
|
*
|
||||||
|
* <!-- BasicInternalFrameUI -->
|
||||||
|
*
|
||||||
|
* @uiDefault control Color
|
||||||
|
* @uiDefault InternalFrame.icon Icon
|
||||||
|
* @uiDefault InternalFrame.border Border
|
||||||
|
* @uiDefault InternalFrame.layoutTitlePaneAtOrigin boolean
|
||||||
|
*
|
||||||
|
* <!-- BasicInternalFrameTitlePane -->
|
||||||
|
*
|
||||||
|
* @uiDefault InternalFrame.titleFont Font
|
||||||
|
* @uiDefault InternalFrame.icon Icon
|
||||||
|
* @uiDefault InternalFrame.maximizeIcon Icon
|
||||||
|
* @uiDefault InternalFrame.minimizeIcon Icon
|
||||||
|
* @uiDefault InternalFrame.iconifyIcon Icon
|
||||||
|
* @uiDefault InternalFrame.closeIcon Icon
|
||||||
|
* @uiDefault InternalFrame.activeTitleBackground Color
|
||||||
|
* @uiDefault InternalFrame.activeTitleForeground Color
|
||||||
|
* @uiDefault InternalFrame.inactiveTitleBackground Color
|
||||||
|
* @uiDefault InternalFrame.inactiveTitleForeground Color
|
||||||
|
* @uiDefault InternalFrame.closeButtonToolTip String
|
||||||
|
* @uiDefault InternalFrame.iconButtonToolTip String
|
||||||
|
* @uiDefault InternalFrame.restoreButtonToolTip String
|
||||||
|
* @uiDefault InternalFrame.maxButtonToolTip String
|
||||||
|
* @uiDefault InternalFrameTitlePane.closeButtonText String
|
||||||
|
* @uiDefault InternalFrameTitlePane.minimizeButtonText String
|
||||||
|
* @uiDefault InternalFrameTitlePane.restoreButtonText String
|
||||||
|
* @uiDefault InternalFrameTitlePane.maximizeButtonText String
|
||||||
|
* @uiDefault InternalFrameTitlePane.moveButtonText String
|
||||||
|
* @uiDefault InternalFrameTitlePane.sizeButtonText String
|
||||||
|
* @uiDefault InternalFrameTitlePane.closeButton.mnemonic Integer
|
||||||
|
* @uiDefault InternalFrameTitlePane.minimizeButton.mnemonic Integer
|
||||||
|
* @uiDefault InternalFrameTitlePane.restoreButton.mnemonic Integer
|
||||||
|
* @uiDefault InternalFrameTitlePane.maximizeButton.mnemonic Integer
|
||||||
|
* @uiDefault InternalFrameTitlePane.moveButton.mnemonic Integer
|
||||||
|
* @uiDefault InternalFrameTitlePane.sizeButton.mnemonic Integer
|
||||||
|
*
|
||||||
|
* <!-- FlatInternalFrameUI -->
|
||||||
|
*
|
||||||
|
* @uiDefault InternalFrame.activeBorderColor Color
|
||||||
|
* @uiDefault InternalFrame.inactiveBorderColor Color
|
||||||
|
* @uiDefault InternalFrame.borderLineWidth int
|
||||||
|
* @uiDefault InternalFrame.borderMargins Insets
|
||||||
|
*
|
||||||
|
* <!-- FlatInternalFrameTitlePane -->
|
||||||
|
*
|
||||||
|
* @uiDefault InternalFrameTitlePane.border Border
|
||||||
|
*
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatInternalFrameUI
|
||||||
|
extends BasicInternalFrameUI
|
||||||
|
{
|
||||||
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
|
return new FlatInternalFrameUI( (JInternalFrame) c );
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatInternalFrameUI( JInternalFrame b ) {
|
||||||
|
super( b );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void installUI( JComponent c ) {
|
||||||
|
super.installUI( c );
|
||||||
|
|
||||||
|
LookAndFeel.installProperty( frame, "opaque", false );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected JComponent createNorthPane( JInternalFrame w ) {
|
||||||
|
return new FlatInternalFrameTitlePane( w );
|
||||||
|
}
|
||||||
|
|
||||||
|
//---- class FlatInternalFrameBorder --------------------------------------
|
||||||
|
|
||||||
|
public static class FlatInternalFrameBorder
|
||||||
|
extends FlatEmptyBorder
|
||||||
|
{
|
||||||
|
private final Color activeBorderColor = UIManager.getColor( "InternalFrame.activeBorderColor" );
|
||||||
|
private final Color inactiveBorderColor = UIManager.getColor( "InternalFrame.inactiveBorderColor" );
|
||||||
|
private final int borderLineWidth = FlatUIUtils.getUIInt( "InternalFrame.borderLineWidth", 1 );
|
||||||
|
|
||||||
|
public FlatInternalFrameBorder() {
|
||||||
|
super( UIManager.getInsets( "InternalFrame.borderMargins" ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Insets getBorderInsets( Component c, Insets insets ) {
|
||||||
|
if( c instanceof JInternalFrame && ((JInternalFrame)c).isMaximum() ) {
|
||||||
|
insets.left = scale( Math.min( borderLineWidth, left ) );
|
||||||
|
insets.top = scale( Math.min( borderLineWidth, top ) );
|
||||||
|
insets.right = scale( Math.min( borderLineWidth, right ) );
|
||||||
|
insets.bottom = scale( Math.min( borderLineWidth, bottom ) );
|
||||||
|
return insets;
|
||||||
|
}
|
||||||
|
|
||||||
|
return super.getBorderInsets( c, insets );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void paintBorder( Component c, Graphics g, int x, int y, int width, int height ) {
|
||||||
|
JInternalFrame f = (JInternalFrame) c;
|
||||||
|
|
||||||
|
Insets insets = getBorderInsets( c );
|
||||||
|
float lineWidth = scale( (float) borderLineWidth );
|
||||||
|
|
||||||
|
Graphics2D g2 = (Graphics2D) g.create();
|
||||||
|
try {
|
||||||
|
FlatUIUtils.setRenderingHints( g2 );
|
||||||
|
g2.setColor( f.isSelected() ? activeBorderColor : inactiveBorderColor );
|
||||||
|
g2.fill( FlatUIUtils.createRectangle(
|
||||||
|
x + insets.left - lineWidth,
|
||||||
|
y + insets.top - lineWidth,
|
||||||
|
width - insets.left - insets.right + (lineWidth * 2),
|
||||||
|
height - insets.top - insets.bottom + (lineWidth * 2),
|
||||||
|
lineWidth ) );
|
||||||
|
} finally {
|
||||||
|
g2.dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.ui;
|
||||||
|
|
||||||
|
import static com.formdev.flatlaf.util.UIScale.scale;
|
||||||
|
import java.awt.Component;
|
||||||
|
import java.awt.Insets;
|
||||||
|
import javax.swing.JMenuBar;
|
||||||
|
import javax.swing.UIManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Border for {@link javax.swing.JMenu}, {@link javax.swing.JMenuItem},
|
||||||
|
* {@link javax.swing.JCheckBoxMenuItem} and {@link javax.swing.JRadioButtonMenuItem}.
|
||||||
|
*
|
||||||
|
* @uiDefault MenuBar.itemMargins Insets
|
||||||
|
*
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatMenuItemBorder
|
||||||
|
extends FlatMarginBorder
|
||||||
|
{
|
||||||
|
private final Insets menuBarItemMargins = UIManager.getInsets( "MenuBar.itemMargins" );
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Insets getBorderInsets( Component c, Insets insets ) {
|
||||||
|
if( c.getParent() instanceof JMenuBar ) {
|
||||||
|
insets.top = scale( menuBarItemMargins.top );
|
||||||
|
insets.left = scale( menuBarItemMargins.left );
|
||||||
|
insets.bottom = scale( menuBarItemMargins.bottom + 1 );
|
||||||
|
insets.right = scale( menuBarItemMargins.right );
|
||||||
|
return insets;
|
||||||
|
} else
|
||||||
|
return super.getBorderInsets( c, insets );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -17,11 +17,17 @@
|
|||||||
package com.formdev.flatlaf.ui;
|
package com.formdev.flatlaf.ui;
|
||||||
|
|
||||||
import static com.formdev.flatlaf.util.UIScale.scale;
|
import static com.formdev.flatlaf.util.UIScale.scale;
|
||||||
|
import java.awt.Color;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
import java.awt.Rectangle;
|
import java.awt.Rectangle;
|
||||||
|
import java.awt.event.MouseEvent;
|
||||||
import java.beans.PropertyChangeListener;
|
import java.beans.PropertyChangeListener;
|
||||||
|
import javax.swing.ButtonModel;
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
|
import javax.swing.JMenu;
|
||||||
import javax.swing.JMenuItem;
|
import javax.swing.JMenuItem;
|
||||||
|
import javax.swing.UIManager;
|
||||||
|
import javax.swing.event.MouseInputListener;
|
||||||
import javax.swing.plaf.ComponentUI;
|
import javax.swing.plaf.ComponentUI;
|
||||||
import javax.swing.plaf.basic.BasicMenuUI;
|
import javax.swing.plaf.basic.BasicMenuUI;
|
||||||
|
|
||||||
@@ -51,11 +57,17 @@ import javax.swing.plaf.basic.BasicMenuUI;
|
|||||||
* @uiDefault Menu.useMenuBarBackgroundForTopLevel boolean default is false
|
* @uiDefault Menu.useMenuBarBackgroundForTopLevel boolean default is false
|
||||||
* @uiDefault MenuBar.background Color used if Menu.useMenuBarBackgroundForTopLevel is true
|
* @uiDefault MenuBar.background Color used if Menu.useMenuBarBackgroundForTopLevel is true
|
||||||
*
|
*
|
||||||
|
* <!-- FlatMenuUI -->
|
||||||
|
*
|
||||||
|
* @uiDefault MenuBar.hoverBackground Color
|
||||||
|
*
|
||||||
* @author Karl Tauber
|
* @author Karl Tauber
|
||||||
*/
|
*/
|
||||||
public class FlatMenuUI
|
public class FlatMenuUI
|
||||||
extends BasicMenuUI
|
extends BasicMenuUI
|
||||||
{
|
{
|
||||||
|
private Color hoverBackground;
|
||||||
|
|
||||||
public static ComponentUI createUI( JComponent c ) {
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
return new FlatMenuUI();
|
return new FlatMenuUI();
|
||||||
}
|
}
|
||||||
@@ -64,10 +76,21 @@ public class FlatMenuUI
|
|||||||
protected void installDefaults() {
|
protected void installDefaults() {
|
||||||
super.installDefaults();
|
super.installDefaults();
|
||||||
|
|
||||||
|
menuItem.setRolloverEnabled( true );
|
||||||
|
|
||||||
|
hoverBackground = UIManager.getColor( "MenuBar.hoverBackground" );
|
||||||
|
|
||||||
// scale
|
// scale
|
||||||
defaultTextIconGap = scale( defaultTextIconGap );
|
defaultTextIconGap = scale( defaultTextIconGap );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void uninstallDefaults() {
|
||||||
|
super.uninstallDefaults();
|
||||||
|
|
||||||
|
hoverBackground = null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Scale defaultTextIconGap again if iconTextGap property has changed.
|
* Scale defaultTextIconGap again if iconTextGap property has changed.
|
||||||
*/
|
*/
|
||||||
@@ -81,6 +104,43 @@ public class FlatMenuUI
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected MouseInputListener createMouseInputListener( JComponent c ) {
|
||||||
|
return new BasicMenuUI.MouseInputHandler() {
|
||||||
|
@Override
|
||||||
|
public void mouseEntered( MouseEvent e ) {
|
||||||
|
super.mouseEntered( e );
|
||||||
|
rollover( e, true );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void mouseExited( MouseEvent e ) {
|
||||||
|
super.mouseExited( e );
|
||||||
|
rollover( e, false );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void rollover( MouseEvent e, boolean rollover ) {
|
||||||
|
JMenu menu = (JMenu) e.getSource();
|
||||||
|
if( menu.isTopLevelMenu() && menu.isRolloverEnabled() ) {
|
||||||
|
menu.getModel().setRollover( rollover );
|
||||||
|
menu.repaint();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void paintBackground( Graphics g, JMenuItem menuItem, Color bgColor ) {
|
||||||
|
ButtonModel model = menuItem.getModel();
|
||||||
|
if( model.isArmed() || model.isSelected() ) {
|
||||||
|
super.paintBackground( g, menuItem, bgColor );
|
||||||
|
} else if( model.isRollover() && model.isEnabled() && ((JMenu)menuItem).isTopLevelMenu() ) {
|
||||||
|
FlatUIUtils.setColor( g, hoverBackground, menuItem.getBackground() );
|
||||||
|
g.fillRect( 0, 0, menuItem.getWidth(), menuItem.getHeight() );
|
||||||
|
} else
|
||||||
|
super.paintBackground( g, menuItem, bgColor );
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void paintText( Graphics g, JMenuItem menuItem, Rectangle textRect, String text ) {
|
protected void paintText( Graphics g, JMenuItem menuItem, Rectangle textRect, String text ) {
|
||||||
FlatMenuItemUI.paintText( g, menuItem, textRect, text, disabledForeground, selectionForeground );
|
FlatMenuItemUI.paintText( g, menuItem, textRect, text, disabledForeground, selectionForeground );
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import javax.swing.LookAndFeel;
|
|||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
import javax.swing.plaf.ComponentUI;
|
import javax.swing.plaf.ComponentUI;
|
||||||
import javax.swing.plaf.basic.BasicPasswordFieldUI;
|
import javax.swing.plaf.basic.BasicPasswordFieldUI;
|
||||||
|
import javax.swing.text.Caret;
|
||||||
import com.formdev.flatlaf.FlatClientProperties;
|
import com.formdev.flatlaf.FlatClientProperties;
|
||||||
import com.formdev.flatlaf.util.SystemInfo;
|
import com.formdev.flatlaf.util.SystemInfo;
|
||||||
|
|
||||||
@@ -55,6 +56,7 @@ import com.formdev.flatlaf.util.SystemInfo;
|
|||||||
* @uiDefault Component.minimumWidth int
|
* @uiDefault Component.minimumWidth int
|
||||||
* @uiDefault Component.isIntelliJTheme boolean
|
* @uiDefault Component.isIntelliJTheme boolean
|
||||||
* @uiDefault PasswordField.placeholderForeground Color
|
* @uiDefault PasswordField.placeholderForeground Color
|
||||||
|
* @uiDefault TextComponent.selectAllOnFocusPolicy String never, once (default) or always
|
||||||
*
|
*
|
||||||
* @author Karl Tauber
|
* @author Karl Tauber
|
||||||
*/
|
*/
|
||||||
@@ -116,6 +118,11 @@ public class FlatPasswordFieldUI
|
|||||||
focusListener = null;
|
focusListener = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Caret createCaret() {
|
||||||
|
return new FlatCaret( UIManager.getString( "TextComponent.selectAllOnFocusPolicy" ) );
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void propertyChange( PropertyChangeEvent e ) {
|
protected void propertyChange( PropertyChangeEvent e ) {
|
||||||
super.propertyChange( e );
|
super.propertyChange( e );
|
||||||
|
|||||||
@@ -16,7 +16,12 @@
|
|||||||
|
|
||||||
package com.formdev.flatlaf.ui;
|
package com.formdev.flatlaf.ui;
|
||||||
|
|
||||||
|
import java.awt.Component;
|
||||||
|
import java.awt.Container;
|
||||||
|
import java.awt.Insets;
|
||||||
|
import javax.swing.JScrollPane;
|
||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Border for {@link javax.swing.JPopupMenu}.
|
* Border for {@link javax.swing.JPopupMenu}.
|
||||||
@@ -33,4 +38,18 @@ public class FlatPopupMenuBorder
|
|||||||
super( UIManager.getInsets( "PopupMenu.borderInsets" ),
|
super( UIManager.getInsets( "PopupMenu.borderInsets" ),
|
||||||
UIManager.getColor( "PopupMenu.borderColor" ) );
|
UIManager.getColor( "PopupMenu.borderColor" ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Insets getBorderInsets( Component c, Insets insets ) {
|
||||||
|
if( c instanceof Container &&
|
||||||
|
((Container)c).getComponentCount() > 0 &&
|
||||||
|
((Container)c).getComponent( 0 ) instanceof JScrollPane )
|
||||||
|
{
|
||||||
|
// e.g. for combobox popups
|
||||||
|
insets.left = insets.top = insets.right = insets.bottom = UIScale.scale( 1 );
|
||||||
|
return insets;
|
||||||
|
}
|
||||||
|
|
||||||
|
return super.getBorderInsets( c, insets );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -193,4 +193,19 @@ public class FlatProgressBarUI
|
|||||||
paintString( g, x, y, width, height, amountFull, insets );
|
paintString( g, x, y, width, height, amountFull, insets );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setAnimationIndex( int newValue ) {
|
||||||
|
super.setAnimationIndex( newValue );
|
||||||
|
|
||||||
|
// On HiDPI screens at 125%, 150% and 175% scaling, it occurs that antialiased painting
|
||||||
|
// may paint one pixel outside of the clipping area. This results in visual artifacts
|
||||||
|
// in indeterminate mode when the progress moves around.
|
||||||
|
// Unfortunately it is not safe to invoke getBox() from here (may throw NPE),
|
||||||
|
// which makes it impractical to get progress box and repaint increased box.
|
||||||
|
// Only solution is to repaint whole progress bar.
|
||||||
|
double systemScaleFactor = UIScale.getSystemScaleFactor( progressBar.getGraphicsConfiguration() );
|
||||||
|
if( (int) systemScaleFactor != systemScaleFactor )
|
||||||
|
progressBar.repaint();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -118,11 +118,13 @@ public class FlatRadioButtonUI
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void paint( Graphics g, JComponent c ) {
|
public void paint( Graphics g, JComponent c ) {
|
||||||
// fill background even if opaque if
|
// fill background even if not opaque if
|
||||||
// - used as cell renderer (because of selection background)
|
// - contentAreaFilled is true and
|
||||||
// - if background was explicitly set to a non-UIResource color
|
// - used as cell renderer (because of selection background)
|
||||||
|
// - or if background was explicitly set to a non-UIResource color
|
||||||
if( !c.isOpaque() &&
|
if( !c.isOpaque() &&
|
||||||
(c.getParent() instanceof CellRendererPane || !(c.getBackground() instanceof UIResource)) )
|
((AbstractButton)c).isContentAreaFilled() &&
|
||||||
|
(c.getParent() instanceof CellRendererPane || !(c.getBackground() instanceof UIResource)))
|
||||||
{
|
{
|
||||||
g.setColor( c.getBackground() );
|
g.setColor( c.getBackground() );
|
||||||
g.fillRect( 0, 0, c.getWidth(), c.getHeight() );
|
g.fillRect( 0, 0, c.getWidth(), c.getHeight() );
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ import com.formdev.flatlaf.util.UIScale;
|
|||||||
* @uiDefault TabbedPane.tabSelectionHeight int
|
* @uiDefault TabbedPane.tabSelectionHeight int
|
||||||
* @uiDefault TabbedPane.contentSeparatorHeight int
|
* @uiDefault TabbedPane.contentSeparatorHeight int
|
||||||
* @uiDefault TabbedPane.showTabSeparators boolean
|
* @uiDefault TabbedPane.showTabSeparators boolean
|
||||||
|
* @uiDefault TabbedPane.tabSeparatorsFullHeight boolean
|
||||||
* @uiDefault TabbedPane.hasFullBorder boolean
|
* @uiDefault TabbedPane.hasFullBorder boolean
|
||||||
*
|
*
|
||||||
* @author Karl Tauber
|
* @author Karl Tauber
|
||||||
@@ -103,6 +104,7 @@ public class FlatTabbedPaneUI
|
|||||||
protected int tabSelectionHeight;
|
protected int tabSelectionHeight;
|
||||||
protected int contentSeparatorHeight;
|
protected int contentSeparatorHeight;
|
||||||
protected boolean showTabSeparators;
|
protected boolean showTabSeparators;
|
||||||
|
protected boolean tabSeparatorsFullHeight;
|
||||||
protected boolean hasFullBorder;
|
protected boolean hasFullBorder;
|
||||||
protected boolean tabsOverlapBorder;
|
protected boolean tabsOverlapBorder;
|
||||||
|
|
||||||
@@ -128,6 +130,7 @@ public class FlatTabbedPaneUI
|
|||||||
tabSelectionHeight = UIManager.getInt( "TabbedPane.tabSelectionHeight" );
|
tabSelectionHeight = UIManager.getInt( "TabbedPane.tabSelectionHeight" );
|
||||||
contentSeparatorHeight = UIManager.getInt( "TabbedPane.contentSeparatorHeight" );
|
contentSeparatorHeight = UIManager.getInt( "TabbedPane.contentSeparatorHeight" );
|
||||||
showTabSeparators = UIManager.getBoolean( "TabbedPane.showTabSeparators" );
|
showTabSeparators = UIManager.getBoolean( "TabbedPane.showTabSeparators" );
|
||||||
|
tabSeparatorsFullHeight = UIManager.getBoolean( "TabbedPane.tabSeparatorsFullHeight" );
|
||||||
hasFullBorder = UIManager.getBoolean( "TabbedPane.hasFullBorder" );
|
hasFullBorder = UIManager.getBoolean( "TabbedPane.hasFullBorder" );
|
||||||
tabsOverlapBorder = UIManager.getBoolean( "TabbedPane.tabsOverlapBorder" );
|
tabsOverlapBorder = UIManager.getBoolean( "TabbedPane.tabsOverlapBorder" );
|
||||||
|
|
||||||
@@ -307,7 +310,7 @@ public class FlatTabbedPaneUI
|
|||||||
!isLastInRun( tabIndex ) )
|
!isLastInRun( tabIndex ) )
|
||||||
{
|
{
|
||||||
float sepWidth = UIScale.scale( 1f );
|
float sepWidth = UIScale.scale( 1f );
|
||||||
float offset = UIScale.scale( 5f );
|
float offset = tabSeparatorsFullHeight ? 0 : UIScale.scale( 5f );
|
||||||
|
|
||||||
g.setColor( (tabSeparatorColor != null) ? tabSeparatorColor : contentAreaColor );
|
g.setColor( (tabSeparatorColor != null) ? tabSeparatorColor : contentAreaColor );
|
||||||
if( tabPlacement == LEFT || tabPlacement == RIGHT ) {
|
if( tabPlacement == LEFT || tabPlacement == RIGHT ) {
|
||||||
|
|||||||
@@ -22,13 +22,20 @@ import java.awt.Container;
|
|||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
|
import java.awt.Insets;
|
||||||
import java.awt.Rectangle;
|
import java.awt.Rectangle;
|
||||||
import java.awt.geom.Rectangle2D;
|
import java.awt.geom.Rectangle2D;
|
||||||
|
import java.util.Objects;
|
||||||
|
import javax.swing.Icon;
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JScrollPane;
|
import javax.swing.JScrollPane;
|
||||||
import javax.swing.JTable;
|
import javax.swing.JTable;
|
||||||
|
import javax.swing.SwingConstants;
|
||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
|
import javax.swing.border.Border;
|
||||||
import javax.swing.plaf.ComponentUI;
|
import javax.swing.plaf.ComponentUI;
|
||||||
|
import javax.swing.plaf.UIResource;
|
||||||
import javax.swing.plaf.basic.BasicTableHeaderUI;
|
import javax.swing.plaf.basic.BasicTableHeaderUI;
|
||||||
import javax.swing.table.TableCellRenderer;
|
import javax.swing.table.TableCellRenderer;
|
||||||
import javax.swing.table.TableColumn;
|
import javax.swing.table.TableColumn;
|
||||||
@@ -49,6 +56,7 @@ import com.formdev.flatlaf.util.UIScale;
|
|||||||
* @uiDefault TableHeader.separatorColor Color
|
* @uiDefault TableHeader.separatorColor Color
|
||||||
* @uiDefault TableHeader.bottomSeparatorColor Color
|
* @uiDefault TableHeader.bottomSeparatorColor Color
|
||||||
* @uiDefault TableHeader.height int
|
* @uiDefault TableHeader.height int
|
||||||
|
* @uiDefault TableHeader.sortIconPosition String right (default), left, top or bottom
|
||||||
*
|
*
|
||||||
* @author Karl Tauber
|
* @author Karl Tauber
|
||||||
*/
|
*/
|
||||||
@@ -58,6 +66,7 @@ public class FlatTableHeaderUI
|
|||||||
protected Color separatorColor;
|
protected Color separatorColor;
|
||||||
protected Color bottomSeparatorColor;
|
protected Color bottomSeparatorColor;
|
||||||
protected int height;
|
protected int height;
|
||||||
|
protected int sortIconPosition;
|
||||||
|
|
||||||
public static ComponentUI createUI( JComponent c ) {
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
return new FlatTableHeaderUI();
|
return new FlatTableHeaderUI();
|
||||||
@@ -70,12 +79,33 @@ public class FlatTableHeaderUI
|
|||||||
separatorColor = UIManager.getColor( "TableHeader.separatorColor" );
|
separatorColor = UIManager.getColor( "TableHeader.separatorColor" );
|
||||||
bottomSeparatorColor = UIManager.getColor( "TableHeader.bottomSeparatorColor" );
|
bottomSeparatorColor = UIManager.getColor( "TableHeader.bottomSeparatorColor" );
|
||||||
height = UIManager.getInt( "TableHeader.height" );
|
height = UIManager.getInt( "TableHeader.height" );
|
||||||
|
switch( Objects.toString( UIManager.getString( "TableHeader.sortIconPosition" ), "right" ) ) {
|
||||||
|
default:
|
||||||
|
case "right": sortIconPosition = SwingConstants.RIGHT; break;
|
||||||
|
case "left": sortIconPosition = SwingConstants.LEFT; break;
|
||||||
|
case "top": sortIconPosition = SwingConstants.TOP; break;
|
||||||
|
case "bottom": sortIconPosition = SwingConstants.BOTTOM; break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// use own renderer if necessary
|
||||||
|
if( sortIconPosition != SwingConstants.RIGHT ) {
|
||||||
|
TableCellRenderer defaultRenderer = header.getDefaultRenderer();
|
||||||
|
if( defaultRenderer instanceof UIResource )
|
||||||
|
header.setDefaultRenderer( new FlatTableCellHeaderRenderer( defaultRenderer ) );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void uninstallDefaults() {
|
protected void uninstallDefaults() {
|
||||||
super.uninstallDefaults();
|
super.uninstallDefaults();
|
||||||
|
|
||||||
|
// restore default renderer
|
||||||
|
TableCellRenderer defaultRenderer = header.getDefaultRenderer();
|
||||||
|
if( defaultRenderer instanceof FlatTableCellHeaderRenderer ) {
|
||||||
|
((FlatTableCellHeaderRenderer)defaultRenderer).reset();
|
||||||
|
header.setDefaultRenderer( ((FlatTableCellHeaderRenderer)defaultRenderer).delegate );
|
||||||
|
}
|
||||||
|
|
||||||
separatorColor = null;
|
separatorColor = null;
|
||||||
bottomSeparatorColor = null;
|
bottomSeparatorColor = null;
|
||||||
}
|
}
|
||||||
@@ -215,4 +245,83 @@ public class FlatTableHeaderUI
|
|||||||
parent = parent.getParent();
|
parent = parent.getParent();
|
||||||
return (parent instanceof JScrollPane) ? (JScrollPane) parent : null;
|
return (parent instanceof JScrollPane) ? (JScrollPane) parent : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---- class FlatTableCellHeaderRenderer ----------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A delegating header renderer that is only used to paint sort arrows at
|
||||||
|
* top, bottom or left position.
|
||||||
|
*/
|
||||||
|
private class FlatTableCellHeaderRenderer
|
||||||
|
implements TableCellRenderer, Border, UIResource
|
||||||
|
{
|
||||||
|
private final TableCellRenderer delegate;
|
||||||
|
|
||||||
|
private int oldHorizontalTextPosition = -1;
|
||||||
|
private Border origBorder;
|
||||||
|
private Icon sortIcon;
|
||||||
|
|
||||||
|
FlatTableCellHeaderRenderer( TableCellRenderer delegate ) {
|
||||||
|
this.delegate = delegate;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected,
|
||||||
|
boolean hasFocus, int row, int column )
|
||||||
|
{
|
||||||
|
Component c = delegate.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column );
|
||||||
|
if( !(c instanceof JLabel) )
|
||||||
|
return c;
|
||||||
|
|
||||||
|
JLabel l = (JLabel) c;
|
||||||
|
|
||||||
|
if( sortIconPosition == SwingConstants.LEFT ) {
|
||||||
|
if( oldHorizontalTextPosition < 0 )
|
||||||
|
oldHorizontalTextPosition = l.getHorizontalTextPosition();
|
||||||
|
l.setHorizontalTextPosition( SwingConstants.RIGHT );
|
||||||
|
} else {
|
||||||
|
// top or bottom
|
||||||
|
sortIcon = l.getIcon();
|
||||||
|
origBorder = l.getBorder();
|
||||||
|
l.setIcon( null );
|
||||||
|
l.setBorder( this );
|
||||||
|
}
|
||||||
|
|
||||||
|
return l;
|
||||||
|
}
|
||||||
|
|
||||||
|
void reset() {
|
||||||
|
if( sortIconPosition == SwingConstants.LEFT && oldHorizontalTextPosition >= 0 ) {
|
||||||
|
Component c = getTableCellRendererComponent( header.getTable(), "", false, false, -1, 0 );
|
||||||
|
if( c instanceof JLabel && ((JLabel)c).getHorizontalTextPosition() == SwingConstants.RIGHT )
|
||||||
|
((JLabel)c).setHorizontalTextPosition( oldHorizontalTextPosition );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void paintBorder( Component c, Graphics g, int x, int y, int width, int height ) {
|
||||||
|
if( origBorder != null )
|
||||||
|
origBorder.paintBorder( c, g, x, y, width, height );
|
||||||
|
|
||||||
|
if( sortIcon != null ) {
|
||||||
|
int xi = x + ((width - sortIcon.getIconWidth()) / 2);
|
||||||
|
int yi = (sortIconPosition == SwingConstants.TOP)
|
||||||
|
? y + UIScale.scale( 1 )
|
||||||
|
: y + height - sortIcon.getIconHeight()
|
||||||
|
- 1 // for gap
|
||||||
|
- (int) (1 * UIScale.getUserScaleFactor()); // for bottom border
|
||||||
|
sortIcon.paintIcon( c, g, xi, yi );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Insets getBorderInsets( Component c ) {
|
||||||
|
return (origBorder != null) ? origBorder.getBorderInsets( c ) : new Insets( 0, 0, 0, 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isBorderOpaque() {
|
||||||
|
return (origBorder != null) ? origBorder.isBorderOpaque() : false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ import javax.swing.UIManager;
|
|||||||
import javax.swing.plaf.ComponentUI;
|
import javax.swing.plaf.ComponentUI;
|
||||||
import javax.swing.plaf.UIResource;
|
import javax.swing.plaf.UIResource;
|
||||||
import javax.swing.plaf.basic.BasicTextFieldUI;
|
import javax.swing.plaf.basic.BasicTextFieldUI;
|
||||||
|
import javax.swing.text.Caret;
|
||||||
import javax.swing.text.JTextComponent;
|
import javax.swing.text.JTextComponent;
|
||||||
import com.formdev.flatlaf.FlatClientProperties;
|
import com.formdev.flatlaf.FlatClientProperties;
|
||||||
|
|
||||||
@@ -62,6 +63,7 @@ import com.formdev.flatlaf.FlatClientProperties;
|
|||||||
* @uiDefault Component.minimumWidth int
|
* @uiDefault Component.minimumWidth int
|
||||||
* @uiDefault Component.isIntelliJTheme boolean
|
* @uiDefault Component.isIntelliJTheme boolean
|
||||||
* @uiDefault TextField.placeholderForeground Color
|
* @uiDefault TextField.placeholderForeground Color
|
||||||
|
* @uiDefault TextComponent.selectAllOnFocusPolicy String never, once (default) or always
|
||||||
*
|
*
|
||||||
* @author Karl Tauber
|
* @author Karl Tauber
|
||||||
*/
|
*/
|
||||||
@@ -119,6 +121,11 @@ public class FlatTextFieldUI
|
|||||||
focusListener = null;
|
focusListener = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Caret createCaret() {
|
||||||
|
return new FlatCaret( UIManager.getString( "TextComponent.selectAllOnFocusPolicy" ) );
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void propertyChange( PropertyChangeEvent e ) {
|
protected void propertyChange( PropertyChangeEvent e ) {
|
||||||
super.propertyChange( e );
|
super.propertyChange( e );
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import java.awt.Color;
|
|||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.awt.Container;
|
import java.awt.Container;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
|
import java.awt.Font;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Insets;
|
import java.awt.Insets;
|
||||||
@@ -37,7 +38,7 @@ import java.util.function.Consumer;
|
|||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
import javax.swing.LookAndFeel;
|
import javax.swing.LookAndFeel;
|
||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
import javax.swing.plaf.ColorUIResource;
|
import javax.swing.plaf.UIResource;
|
||||||
import com.formdev.flatlaf.FlatClientProperties;
|
import com.formdev.flatlaf.FlatClientProperties;
|
||||||
import com.formdev.flatlaf.util.DerivedColor;
|
import com.formdev.flatlaf.util.DerivedColor;
|
||||||
import com.formdev.flatlaf.util.HiDPIUtils;
|
import com.formdev.flatlaf.util.HiDPIUtils;
|
||||||
@@ -109,7 +110,11 @@ public class FlatUIUtils
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Color nonUIResource( Color c ) {
|
public static Color nonUIResource( Color c ) {
|
||||||
return (c instanceof ColorUIResource) ? new Color( c.getRGB(), true ) : c;
|
return (c instanceof UIResource) ? new Color( c.getRGB(), true ) : c;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Font nonUIResource( Font font ) {
|
||||||
|
return (font instanceof UIResource) ? new Font( font.getName(), font.getStyle(), font.getSize() ) : font;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int minimumWidth( JComponent c, int minimumWidth ) {
|
public static int minimumWidth( JComponent c, int minimumWidth ) {
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
@selectionInactiveForeground=@foreground
|
@selectionInactiveForeground=@foreground
|
||||||
@disabledText=#777777
|
@disabledText=#777777
|
||||||
@textComponentBackground=#45494A
|
@textComponentBackground=#45494A
|
||||||
|
@menuBackground=darken(@background,5%)
|
||||||
@cellFocusColor=#000000
|
@cellFocusColor=#000000
|
||||||
@icon=#adadad
|
@icon=#adadad
|
||||||
|
|
||||||
@@ -130,6 +131,34 @@ Component.focusColor=#3d6185
|
|||||||
Component.linkColor=#589df6
|
Component.linkColor=#589df6
|
||||||
|
|
||||||
|
|
||||||
|
#---- Desktop ----
|
||||||
|
|
||||||
|
Desktop.background=#3E434C
|
||||||
|
|
||||||
|
|
||||||
|
#---- DesktopIcon ----
|
||||||
|
|
||||||
|
DesktopIcon.background=lighten($Desktop.background,10%)
|
||||||
|
|
||||||
|
|
||||||
|
#---- InternalFrame ----
|
||||||
|
|
||||||
|
InternalFrame.activeTitleBackground=darken(@background,10%)
|
||||||
|
InternalFrame.activeTitleForeground=@foreground
|
||||||
|
InternalFrame.inactiveTitleBackground=darken(@background,5%)
|
||||||
|
InternalFrame.inactiveTitleForeground=@disabledText
|
||||||
|
|
||||||
|
InternalFrame.activeBorderColor=lighten($Component.borderColor,10%)
|
||||||
|
InternalFrame.inactiveBorderColor=$Component.borderColor
|
||||||
|
|
||||||
|
InternalFrame.buttonHoverBackground=lighten(10%,autoInverse)
|
||||||
|
InternalFrame.buttonPressedBackground=lighten(20%,autoInverse)
|
||||||
|
InternalFrame.closeHoverBackground=lazy(Actions.Red)
|
||||||
|
InternalFrame.closePressedBackground=darken(Actions.Red,10%,lazy)
|
||||||
|
InternalFrame.closeHoverForeground=#fff
|
||||||
|
InternalFrame.closePressedForeground=#fff
|
||||||
|
|
||||||
|
|
||||||
#---- List ----
|
#---- List ----
|
||||||
|
|
||||||
List.background=@textComponentBackground
|
List.background=@textComponentBackground
|
||||||
@@ -144,6 +173,7 @@ Menu.icon.disabledArrowColor=#606060
|
|||||||
#---- MenuBar ----
|
#---- MenuBar ----
|
||||||
|
|
||||||
MenuBar.borderColor=#515151
|
MenuBar.borderColor=#515151
|
||||||
|
MenuBar.hoverBackground=lighten($MenuBar.background,10%)
|
||||||
|
|
||||||
|
|
||||||
#---- MenuItemCheckBox ----
|
#---- MenuItemCheckBox ----
|
||||||
|
|||||||
@@ -21,9 +21,12 @@ CheckBoxUI=com.formdev.flatlaf.ui.FlatCheckBoxUI
|
|||||||
CheckBoxMenuItemUI=com.formdev.flatlaf.ui.FlatCheckBoxMenuItemUI
|
CheckBoxMenuItemUI=com.formdev.flatlaf.ui.FlatCheckBoxMenuItemUI
|
||||||
ColorChooserUI=com.formdev.flatlaf.ui.FlatColorChooserUI
|
ColorChooserUI=com.formdev.flatlaf.ui.FlatColorChooserUI
|
||||||
ComboBoxUI=com.formdev.flatlaf.ui.FlatComboBoxUI
|
ComboBoxUI=com.formdev.flatlaf.ui.FlatComboBoxUI
|
||||||
|
DesktopIconUI=com.formdev.flatlaf.ui.FlatDesktopIconUI
|
||||||
|
DesktopPaneUI=com.formdev.flatlaf.ui.FlatDesktopPaneUI
|
||||||
EditorPaneUI=com.formdev.flatlaf.ui.FlatEditorPaneUI
|
EditorPaneUI=com.formdev.flatlaf.ui.FlatEditorPaneUI
|
||||||
FileChooserUI=com.formdev.flatlaf.ui.FlatFileChooserUI
|
FileChooserUI=com.formdev.flatlaf.ui.FlatFileChooserUI
|
||||||
FormattedTextFieldUI=com.formdev.flatlaf.ui.FlatFormattedTextFieldUI
|
FormattedTextFieldUI=com.formdev.flatlaf.ui.FlatFormattedTextFieldUI
|
||||||
|
InternalFrameUI=com.formdev.flatlaf.ui.FlatInternalFrameUI
|
||||||
LabelUI=com.formdev.flatlaf.ui.FlatLabelUI
|
LabelUI=com.formdev.flatlaf.ui.FlatLabelUI
|
||||||
ListUI=com.formdev.flatlaf.ui.FlatListUI
|
ListUI=com.formdev.flatlaf.ui.FlatListUI
|
||||||
MenuUI=com.formdev.flatlaf.ui.FlatMenuUI
|
MenuUI=com.formdev.flatlaf.ui.FlatMenuUI
|
||||||
@@ -59,6 +62,7 @@ ViewportUI=com.formdev.flatlaf.ui.FlatViewportUI
|
|||||||
#---- variables ----
|
#---- variables ----
|
||||||
|
|
||||||
@textComponentMargin=2,6,2,6
|
@textComponentMargin=2,6,2,6
|
||||||
|
@menuItemMargin=2,8,2,8
|
||||||
|
|
||||||
|
|
||||||
#---- system colors ----
|
#---- system colors ----
|
||||||
@@ -117,10 +121,12 @@ CheckBox.rollover=true
|
|||||||
|
|
||||||
#---- CheckBoxMenuItem ----
|
#---- CheckBoxMenuItem ----
|
||||||
|
|
||||||
CheckBoxMenuItem.border=com.formdev.flatlaf.ui.FlatMarginBorder
|
CheckBoxMenuItem.border=com.formdev.flatlaf.ui.FlatMenuItemBorder
|
||||||
CheckBoxMenuItem.checkIcon=com.formdev.flatlaf.icons.FlatCheckBoxMenuItemIcon
|
CheckBoxMenuItem.checkIcon=com.formdev.flatlaf.icons.FlatCheckBoxMenuItemIcon
|
||||||
CheckBoxMenuItem.arrowIcon=com.formdev.flatlaf.icons.FlatMenuItemArrowIcon
|
CheckBoxMenuItem.arrowIcon=com.formdev.flatlaf.icons.FlatMenuItemArrowIcon
|
||||||
CheckBoxMenuItem.margin=2,2,2,2
|
CheckBoxMenuItem.margin=@menuItemMargin
|
||||||
|
CheckBoxMenuItem.opaque=false
|
||||||
|
CheckBoxMenuItem.background=@menuBackground
|
||||||
|
|
||||||
|
|
||||||
#---- ColorChooser ----
|
#---- ColorChooser ----
|
||||||
@@ -145,6 +151,14 @@ Component.arrowType=chevron
|
|||||||
Component.hideMnemonics=true
|
Component.hideMnemonics=true
|
||||||
|
|
||||||
|
|
||||||
|
#---- DesktopIcon ----
|
||||||
|
|
||||||
|
DesktopIcon.border=4,4,4,4
|
||||||
|
DesktopIcon.iconSize=64,64
|
||||||
|
DesktopIcon.closeSize=20,20
|
||||||
|
DesktopIcon.closeIcon=com.formdev.flatlaf.icons.FlatInternalFrameCloseIcon
|
||||||
|
|
||||||
|
|
||||||
#---- EditorPane ----
|
#---- EditorPane ----
|
||||||
|
|
||||||
EditorPane.border=com.formdev.flatlaf.ui.FlatMarginBorder
|
EditorPane.border=com.formdev.flatlaf.ui.FlatMarginBorder
|
||||||
@@ -194,6 +208,23 @@ HelpButton.questionMarkColor=$CheckBox.icon.checkmarkColor
|
|||||||
HelpButton.disabledQuestionMarkColor=$CheckBox.icon.disabledCheckmarkColor
|
HelpButton.disabledQuestionMarkColor=$CheckBox.icon.disabledCheckmarkColor
|
||||||
|
|
||||||
|
|
||||||
|
#---- InternalFrame ----
|
||||||
|
|
||||||
|
InternalFrame.border=com.formdev.flatlaf.ui.FlatInternalFrameUI$FlatInternalFrameBorder
|
||||||
|
InternalFrame.borderLineWidth=1
|
||||||
|
InternalFrame.borderMargins=6,6,6,6
|
||||||
|
InternalFrame.buttonSize=24,24
|
||||||
|
InternalFrame.closeIcon=com.formdev.flatlaf.icons.FlatInternalFrameCloseIcon
|
||||||
|
InternalFrame.iconifyIcon=com.formdev.flatlaf.icons.FlatInternalFrameIconifyIcon
|
||||||
|
InternalFrame.maximizeIcon=com.formdev.flatlaf.icons.FlatInternalFrameMaximizeIcon
|
||||||
|
InternalFrame.minimizeIcon=com.formdev.flatlaf.icons.FlatInternalFrameMinimizeIcon
|
||||||
|
|
||||||
|
|
||||||
|
#---- InternalFrameTitlePane ----
|
||||||
|
|
||||||
|
InternalFrameTitlePane.border=0,8,0,0
|
||||||
|
|
||||||
|
|
||||||
#---- List ----
|
#---- List ----
|
||||||
|
|
||||||
List.border=1,0,1,0
|
List.border=1,0,1,0
|
||||||
@@ -212,23 +243,29 @@ List.dropLineColor=@dropLineColor
|
|||||||
|
|
||||||
#---- Menu ----
|
#---- Menu ----
|
||||||
|
|
||||||
Menu.border=com.formdev.flatlaf.ui.FlatMarginBorder
|
Menu.border=com.formdev.flatlaf.ui.FlatMenuItemBorder
|
||||||
Menu.arrowIcon=com.formdev.flatlaf.icons.FlatMenuArrowIcon
|
Menu.arrowIcon=com.formdev.flatlaf.icons.FlatMenuArrowIcon
|
||||||
Menu.margin=2,2,2,2
|
Menu.margin=@menuItemMargin
|
||||||
Menu.submenuPopupOffsetX={scaledInteger}-4
|
Menu.submenuPopupOffsetX={scaledInteger}-4
|
||||||
Menu.submenuPopupOffsetY={scaledInteger}-1
|
Menu.submenuPopupOffsetY={scaledInteger}-4
|
||||||
|
Menu.opaque=false
|
||||||
|
Menu.background=@menuBackground
|
||||||
|
|
||||||
|
|
||||||
#---- MenuBar ----
|
#---- MenuBar ----
|
||||||
|
|
||||||
MenuBar.border=com.formdev.flatlaf.ui.FlatMenuBarBorder
|
MenuBar.border=com.formdev.flatlaf.ui.FlatMenuBarBorder
|
||||||
|
MenuBar.background=@menuBackground
|
||||||
|
MenuBar.itemMargins=3,3,3,3
|
||||||
|
|
||||||
|
|
||||||
#---- MenuItem ----
|
#---- MenuItem ----
|
||||||
|
|
||||||
MenuItem.border=com.formdev.flatlaf.ui.FlatMarginBorder
|
MenuItem.border=com.formdev.flatlaf.ui.FlatMenuItemBorder
|
||||||
MenuItem.arrowIcon=com.formdev.flatlaf.icons.FlatMenuItemArrowIcon
|
MenuItem.arrowIcon=com.formdev.flatlaf.icons.FlatMenuItemArrowIcon
|
||||||
MenuItem.margin=2,2,2,2
|
MenuItem.margin=@menuItemMargin
|
||||||
|
MenuItem.opaque=false
|
||||||
|
MenuItem.background=@menuBackground
|
||||||
|
|
||||||
|
|
||||||
#---- OptionPane ----
|
#---- OptionPane ----
|
||||||
@@ -265,7 +302,8 @@ PasswordField.placeholderForeground=@disabledText
|
|||||||
#---- PopupMenu ----
|
#---- PopupMenu ----
|
||||||
|
|
||||||
PopupMenu.border=com.formdev.flatlaf.ui.FlatPopupMenuBorder
|
PopupMenu.border=com.formdev.flatlaf.ui.FlatPopupMenuBorder
|
||||||
PopupMenu.borderInsets=1,1,1,1
|
PopupMenu.borderInsets=4,1,4,1
|
||||||
|
PopupMenu.background=@menuBackground
|
||||||
|
|
||||||
|
|
||||||
#---- PopupMenuSeparator ----
|
#---- PopupMenuSeparator ----
|
||||||
@@ -281,6 +319,8 @@ ProgressBar.border=com.formdev.flatlaf.ui.FlatEmptyBorder
|
|||||||
ProgressBar.arc=4
|
ProgressBar.arc=4
|
||||||
ProgressBar.horizontalSize=146,4
|
ProgressBar.horizontalSize=146,4
|
||||||
ProgressBar.verticalSize=4,146
|
ProgressBar.verticalSize=4,146
|
||||||
|
ProgressBar.cycleTime=4000
|
||||||
|
ProgressBar.repaintInterval=15
|
||||||
|
|
||||||
|
|
||||||
#---- RadioButton ----
|
#---- RadioButton ----
|
||||||
@@ -295,10 +335,12 @@ RadioButton.rollover=true
|
|||||||
|
|
||||||
#---- RadioButtonMenuItem ----
|
#---- RadioButtonMenuItem ----
|
||||||
|
|
||||||
RadioButtonMenuItem.border=com.formdev.flatlaf.ui.FlatMarginBorder
|
RadioButtonMenuItem.border=com.formdev.flatlaf.ui.FlatMenuItemBorder
|
||||||
RadioButtonMenuItem.checkIcon=com.formdev.flatlaf.icons.FlatRadioButtonMenuItemIcon
|
RadioButtonMenuItem.checkIcon=com.formdev.flatlaf.icons.FlatRadioButtonMenuItemIcon
|
||||||
RadioButtonMenuItem.arrowIcon=com.formdev.flatlaf.icons.FlatMenuItemArrowIcon
|
RadioButtonMenuItem.arrowIcon=com.formdev.flatlaf.icons.FlatMenuItemArrowIcon
|
||||||
RadioButtonMenuItem.margin=2,2,2,2
|
RadioButtonMenuItem.margin=@menuItemMargin
|
||||||
|
RadioButtonMenuItem.opaque=false
|
||||||
|
RadioButtonMenuItem.background=@menuBackground
|
||||||
|
|
||||||
|
|
||||||
#---- ScrollBar ----
|
#---- ScrollBar ----
|
||||||
@@ -407,6 +449,12 @@ TextArea.margin=@textComponentMargin
|
|||||||
TextArea.background=@textComponentBackground
|
TextArea.background=@textComponentBackground
|
||||||
|
|
||||||
|
|
||||||
|
#---- TextComponent ----
|
||||||
|
|
||||||
|
# allowed values: "never", "once" (default) or "always"
|
||||||
|
TextComponent.selectAllOnFocusPolicy=once
|
||||||
|
|
||||||
|
|
||||||
#---- TextField ----
|
#---- TextField ----
|
||||||
|
|
||||||
TextField.border=com.formdev.flatlaf.ui.FlatBorder
|
TextField.border=com.formdev.flatlaf.ui.FlatBorder
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
@selectionInactiveForeground=@foreground
|
@selectionInactiveForeground=@foreground
|
||||||
@disabledText=#8C8C8C
|
@disabledText=#8C8C8C
|
||||||
@textComponentBackground=#ffffff
|
@textComponentBackground=#ffffff
|
||||||
|
@menuBackground=#fff
|
||||||
@cellFocusColor=#000000
|
@cellFocusColor=#000000
|
||||||
@icon=#afafaf
|
@icon=#afafaf
|
||||||
|
|
||||||
@@ -132,11 +133,39 @@ Component.focusColor=#97c3f3
|
|||||||
Component.linkColor=#2470B3
|
Component.linkColor=#2470B3
|
||||||
|
|
||||||
|
|
||||||
|
#---- Desktop ----
|
||||||
|
|
||||||
|
Desktop.background=#E6EBF0
|
||||||
|
|
||||||
|
|
||||||
|
#---- DesktopIcon ----
|
||||||
|
|
||||||
|
DesktopIcon.background=darken($Desktop.background,10%)
|
||||||
|
|
||||||
|
|
||||||
#---- HelpButton ----
|
#---- HelpButton ----
|
||||||
|
|
||||||
HelpButton.questionMarkColor=#4F9EE3
|
HelpButton.questionMarkColor=#4F9EE3
|
||||||
|
|
||||||
|
|
||||||
|
#---- InternalFrame ----
|
||||||
|
|
||||||
|
InternalFrame.activeTitleBackground=#fff
|
||||||
|
InternalFrame.activeTitleForeground=@foreground
|
||||||
|
InternalFrame.inactiveTitleBackground=#fafafa
|
||||||
|
InternalFrame.inactiveTitleForeground=@disabledText
|
||||||
|
|
||||||
|
InternalFrame.activeBorderColor=darken($Component.borderColor,20%)
|
||||||
|
InternalFrame.inactiveBorderColor=$Component.borderColor
|
||||||
|
|
||||||
|
InternalFrame.buttonHoverBackground=darken(10%,autoInverse)
|
||||||
|
InternalFrame.buttonPressedBackground=darken(20%,autoInverse)
|
||||||
|
InternalFrame.closeHoverBackground=lazy(Actions.Red)
|
||||||
|
InternalFrame.closePressedBackground=darken(Actions.Red,10%,lazy)
|
||||||
|
InternalFrame.closeHoverForeground=#fff
|
||||||
|
InternalFrame.closePressedForeground=#fff
|
||||||
|
|
||||||
|
|
||||||
#---- List ----
|
#---- List ----
|
||||||
|
|
||||||
List.background=@textComponentBackground
|
List.background=@textComponentBackground
|
||||||
@@ -151,6 +180,7 @@ Menu.icon.disabledArrowColor=#ABABAB
|
|||||||
#---- MenuBar ----
|
#---- MenuBar ----
|
||||||
|
|
||||||
MenuBar.borderColor=#cdcdcd
|
MenuBar.borderColor=#cdcdcd
|
||||||
|
MenuBar.hoverBackground=darken($MenuBar.background,10%)
|
||||||
|
|
||||||
|
|
||||||
#---- MenuItemCheckBox ----
|
#---- MenuItemCheckBox ----
|
||||||
|
|||||||
@@ -14,8 +14,6 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
version = rootProject.version
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
`java-library`
|
`java-library`
|
||||||
id( "com.jfrog.bintray" ) version "1.8.4"
|
id( "com.jfrog.bintray" ) version "1.8.4"
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package com.formdev.flatlaf.demo;
|
package com.formdev.flatlaf.demo;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
import javax.swing.text.DefaultEditorKit;
|
||||||
import net.miginfocom.swing.*;
|
import net.miginfocom.swing.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -113,6 +114,10 @@ class BasicComponentsPanel
|
|||||||
JScrollPane scrollPane12 = new JScrollPane();
|
JScrollPane scrollPane12 = new JScrollPane();
|
||||||
JTextPane textPane4 = new JTextPane();
|
JTextPane textPane4 = new JTextPane();
|
||||||
JTextPane textPane5 = new JTextPane();
|
JTextPane textPane5 = new JTextPane();
|
||||||
|
JPopupMenu popupMenu1 = new JPopupMenu();
|
||||||
|
JMenuItem cutMenuItem = new JMenuItem();
|
||||||
|
JMenuItem copyMenuItem = new JMenuItem();
|
||||||
|
JMenuItem pasteMenuItem = new JMenuItem();
|
||||||
|
|
||||||
//======== this ========
|
//======== this ========
|
||||||
setLayout(new MigLayout(
|
setLayout(new MigLayout(
|
||||||
@@ -260,6 +265,8 @@ class BasicComponentsPanel
|
|||||||
|
|
||||||
//---- comboBoxLabel ----
|
//---- comboBoxLabel ----
|
||||||
comboBoxLabel.setText("JComboBox:");
|
comboBoxLabel.setText("JComboBox:");
|
||||||
|
comboBoxLabel.setDisplayedMnemonic('C');
|
||||||
|
comboBoxLabel.setLabelFor(comboBox1);
|
||||||
add(comboBoxLabel, "cell 0 4");
|
add(comboBoxLabel, "cell 0 4");
|
||||||
|
|
||||||
//---- comboBox1 ----
|
//---- comboBox1 ----
|
||||||
@@ -314,6 +321,8 @@ class BasicComponentsPanel
|
|||||||
|
|
||||||
//---- spinnerLabel ----
|
//---- spinnerLabel ----
|
||||||
spinnerLabel.setText("JSpinner:");
|
spinnerLabel.setText("JSpinner:");
|
||||||
|
spinnerLabel.setLabelFor(spinner1);
|
||||||
|
spinnerLabel.setDisplayedMnemonic('S');
|
||||||
add(spinnerLabel, "cell 0 5");
|
add(spinnerLabel, "cell 0 5");
|
||||||
add(spinner1, "cell 1 5,growx");
|
add(spinner1, "cell 1 5,growx");
|
||||||
|
|
||||||
@@ -328,10 +337,13 @@ class BasicComponentsPanel
|
|||||||
|
|
||||||
//---- textFieldLabel ----
|
//---- textFieldLabel ----
|
||||||
textFieldLabel.setText("JTextField:");
|
textFieldLabel.setText("JTextField:");
|
||||||
|
textFieldLabel.setDisplayedMnemonic('T');
|
||||||
|
textFieldLabel.setLabelFor(textField1);
|
||||||
add(textFieldLabel, "cell 0 6");
|
add(textFieldLabel, "cell 0 6");
|
||||||
|
|
||||||
//---- textField1 ----
|
//---- textField1 ----
|
||||||
textField1.setText("editable");
|
textField1.setText("editable");
|
||||||
|
textField1.setComponentPopupMenu(popupMenu1);
|
||||||
add(textField1, "cell 1 6,growx");
|
add(textField1, "cell 1 6,growx");
|
||||||
|
|
||||||
//---- textField2 ----
|
//---- textField2 ----
|
||||||
@@ -356,10 +368,13 @@ class BasicComponentsPanel
|
|||||||
|
|
||||||
//---- formattedTextFieldLabel ----
|
//---- formattedTextFieldLabel ----
|
||||||
formattedTextFieldLabel.setText("JFormattedTextField:");
|
formattedTextFieldLabel.setText("JFormattedTextField:");
|
||||||
|
formattedTextFieldLabel.setLabelFor(formattedTextField1);
|
||||||
|
formattedTextFieldLabel.setDisplayedMnemonic('O');
|
||||||
add(formattedTextFieldLabel, "cell 0 7");
|
add(formattedTextFieldLabel, "cell 0 7");
|
||||||
|
|
||||||
//---- formattedTextField1 ----
|
//---- formattedTextField1 ----
|
||||||
formattedTextField1.setText("editable");
|
formattedTextField1.setText("editable");
|
||||||
|
formattedTextField1.setComponentPopupMenu(popupMenu1);
|
||||||
add(formattedTextField1, "cell 1 7,growx");
|
add(formattedTextField1, "cell 1 7,growx");
|
||||||
|
|
||||||
//---- formattedTextField2 ----
|
//---- formattedTextField2 ----
|
||||||
@@ -582,7 +597,27 @@ class BasicComponentsPanel
|
|||||||
//---- textPane5 ----
|
//---- textPane5 ----
|
||||||
textPane5.setText("no scroll pane");
|
textPane5.setText("no scroll pane");
|
||||||
add(textPane5, "cell 5 11,growx");
|
add(textPane5, "cell 5 11,growx");
|
||||||
|
|
||||||
|
//======== popupMenu1 ========
|
||||||
|
{
|
||||||
|
|
||||||
|
//---- cutMenuItem ----
|
||||||
|
cutMenuItem.setText("Cut");
|
||||||
|
popupMenu1.add(cutMenuItem);
|
||||||
|
|
||||||
|
//---- copyMenuItem ----
|
||||||
|
copyMenuItem.setText("Copy");
|
||||||
|
popupMenu1.add(copyMenuItem);
|
||||||
|
|
||||||
|
//---- pasteMenuItem ----
|
||||||
|
pasteMenuItem.setText("Paste");
|
||||||
|
popupMenu1.add(pasteMenuItem);
|
||||||
|
}
|
||||||
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
||||||
|
|
||||||
|
cutMenuItem.addActionListener( new DefaultEditorKit.CutAction() );
|
||||||
|
copyMenuItem.addActionListener( new DefaultEditorKit.CopyAction() );
|
||||||
|
pasteMenuItem.addActionListener( new DefaultEditorKit.PasteAction() );
|
||||||
}
|
}
|
||||||
|
|
||||||
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
|
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
|
||||||
|
|||||||
@@ -183,6 +183,8 @@ new FormModel {
|
|||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
name: "comboBoxLabel"
|
name: "comboBoxLabel"
|
||||||
"text": "JComboBox:"
|
"text": "JComboBox:"
|
||||||
|
"displayedMnemonic": 67
|
||||||
|
"labelFor": new FormReference( "comboBox1" )
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 0 4"
|
"value": "cell 0 4"
|
||||||
} )
|
} )
|
||||||
@@ -254,6 +256,8 @@ new FormModel {
|
|||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
name: "spinnerLabel"
|
name: "spinnerLabel"
|
||||||
"text": "JSpinner:"
|
"text": "JSpinner:"
|
||||||
|
"labelFor": new FormReference( "spinner1" )
|
||||||
|
"displayedMnemonic": 83
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 0 5"
|
"value": "cell 0 5"
|
||||||
} )
|
} )
|
||||||
@@ -281,12 +285,15 @@ new FormModel {
|
|||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
name: "textFieldLabel"
|
name: "textFieldLabel"
|
||||||
"text": "JTextField:"
|
"text": "JTextField:"
|
||||||
|
"displayedMnemonic": 84
|
||||||
|
"labelFor": new FormReference( "textField1" )
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 0 6"
|
"value": "cell 0 6"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JTextField" ) {
|
add( new FormComponent( "javax.swing.JTextField" ) {
|
||||||
name: "textField1"
|
name: "textField1"
|
||||||
"text": "editable"
|
"text": "editable"
|
||||||
|
"componentPopupMenu": &FormReference0 new FormReference( "popupMenu1" )
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 1 6,growx"
|
"value": "cell 1 6,growx"
|
||||||
} )
|
} )
|
||||||
@@ -321,12 +328,15 @@ new FormModel {
|
|||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
name: "formattedTextFieldLabel"
|
name: "formattedTextFieldLabel"
|
||||||
"text": "JFormattedTextField:"
|
"text": "JFormattedTextField:"
|
||||||
|
"labelFor": new FormReference( "formattedTextField1" )
|
||||||
|
"displayedMnemonic": 79
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 0 7"
|
"value": "cell 0 7"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JFormattedTextField" ) {
|
add( new FormComponent( "javax.swing.JFormattedTextField" ) {
|
||||||
name: "formattedTextField1"
|
name: "formattedTextField1"
|
||||||
"text": "editable"
|
"text": "editable"
|
||||||
|
"componentPopupMenu": #FormReference0
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 1 7,growx"
|
"value": "cell 1 7,growx"
|
||||||
} )
|
} )
|
||||||
@@ -585,7 +595,25 @@ new FormModel {
|
|||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( null ) {
|
}, new FormLayoutConstraints( null ) {
|
||||||
"location": new java.awt.Point( 0, 0 )
|
"location": new java.awt.Point( 0, 0 )
|
||||||
"size": new java.awt.Dimension( 790, 715 )
|
"size": new java.awt.Dimension( 790, 440 )
|
||||||
|
} )
|
||||||
|
add( new FormContainer( "javax.swing.JPopupMenu", new FormLayoutManager( class javax.swing.JPopupMenu ) ) {
|
||||||
|
name: "popupMenu1"
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "cutMenuItem"
|
||||||
|
"text": "Cut"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "copyMenuItem"
|
||||||
|
"text": "Copy"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "pasteMenuItem"
|
||||||
|
"text": "Paste"
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( null ) {
|
||||||
|
"location": new java.awt.Point( 0, 500 )
|
||||||
|
"size": new java.awt.Dimension( 91, 87 )
|
||||||
} )
|
} )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ package com.formdev.flatlaf.demo;
|
|||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.awt.event.*;
|
import java.awt.event.*;
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
import javax.swing.text.DefaultEditorKit;
|
||||||
import com.formdev.flatlaf.demo.intellijthemes.*;
|
import com.formdev.flatlaf.demo.intellijthemes.*;
|
||||||
import com.formdev.flatlaf.extras.FlatSVGIcon;
|
import com.formdev.flatlaf.extras.FlatSVGIcon;
|
||||||
import net.miginfocom.swing.*;
|
import net.miginfocom.swing.*;
|
||||||
@@ -175,21 +176,18 @@ class DemoFrame
|
|||||||
cutMenuItem.setText("Cut");
|
cutMenuItem.setText("Cut");
|
||||||
cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
|
cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
|
||||||
cutMenuItem.setMnemonic('C');
|
cutMenuItem.setMnemonic('C');
|
||||||
cutMenuItem.addActionListener(e -> menuItemActionPerformed(e));
|
|
||||||
editMenu.add(cutMenuItem);
|
editMenu.add(cutMenuItem);
|
||||||
|
|
||||||
//---- copyMenuItem ----
|
//---- copyMenuItem ----
|
||||||
copyMenuItem.setText("Copy");
|
copyMenuItem.setText("Copy");
|
||||||
copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
|
copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
|
||||||
copyMenuItem.setMnemonic('O');
|
copyMenuItem.setMnemonic('O');
|
||||||
copyMenuItem.addActionListener(e -> menuItemActionPerformed(e));
|
|
||||||
editMenu.add(copyMenuItem);
|
editMenu.add(copyMenuItem);
|
||||||
|
|
||||||
//---- pasteMenuItem ----
|
//---- pasteMenuItem ----
|
||||||
pasteMenuItem.setText("Paste");
|
pasteMenuItem.setText("Paste");
|
||||||
pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
|
pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
|
||||||
pasteMenuItem.setMnemonic('P');
|
pasteMenuItem.setMnemonic('P');
|
||||||
pasteMenuItem.addActionListener(e -> menuItemActionPerformed(e));
|
|
||||||
editMenu.add(pasteMenuItem);
|
editMenu.add(pasteMenuItem);
|
||||||
editMenu.addSeparator();
|
editMenu.addSeparator();
|
||||||
|
|
||||||
@@ -385,6 +383,10 @@ class DemoFrame
|
|||||||
pasteButton.setIcon( new FlatSVGIcon( "com/formdev/flatlaf/demo/icons/menu-paste.svg" ) );
|
pasteButton.setIcon( new FlatSVGIcon( "com/formdev/flatlaf/demo/icons/menu-paste.svg" ) );
|
||||||
refreshButton.setIcon( new FlatSVGIcon( "com/formdev/flatlaf/demo/icons/refresh.svg" ) );
|
refreshButton.setIcon( new FlatSVGIcon( "com/formdev/flatlaf/demo/icons/refresh.svg" ) );
|
||||||
showToggleButton.setIcon( new FlatSVGIcon( "com/formdev/flatlaf/demo/icons/show.svg" ) );
|
showToggleButton.setIcon( new FlatSVGIcon( "com/formdev/flatlaf/demo/icons/show.svg" ) );
|
||||||
|
|
||||||
|
cutMenuItem.addActionListener( new DefaultEditorKit.CutAction() );
|
||||||
|
copyMenuItem.addActionListener( new DefaultEditorKit.CopyAction() );
|
||||||
|
pasteMenuItem.addActionListener( new DefaultEditorKit.PasteAction() );
|
||||||
}
|
}
|
||||||
|
|
||||||
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
|
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
|
||||||
|
|||||||
@@ -179,21 +179,18 @@ new FormModel {
|
|||||||
"text": "Cut"
|
"text": "Cut"
|
||||||
"accelerator": static javax.swing.KeyStroke getKeyStroke( 88, 4226, false )
|
"accelerator": static javax.swing.KeyStroke getKeyStroke( 88, 4226, false )
|
||||||
"mnemonic": 67
|
"mnemonic": 67
|
||||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "menuItemActionPerformed", true ) )
|
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
name: "copyMenuItem"
|
name: "copyMenuItem"
|
||||||
"text": "Copy"
|
"text": "Copy"
|
||||||
"accelerator": static javax.swing.KeyStroke getKeyStroke( 67, 4226, false )
|
"accelerator": static javax.swing.KeyStroke getKeyStroke( 67, 4226, false )
|
||||||
"mnemonic": 79
|
"mnemonic": 79
|
||||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "menuItemActionPerformed", true ) )
|
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
name: "pasteMenuItem"
|
name: "pasteMenuItem"
|
||||||
"text": "Paste"
|
"text": "Paste"
|
||||||
"accelerator": static javax.swing.KeyStroke getKeyStroke( 86, 4226, false )
|
"accelerator": static javax.swing.KeyStroke getKeyStroke( 86, 4226, false )
|
||||||
"mnemonic": 80
|
"mnemonic": 80
|
||||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "menuItemActionPerformed", true ) )
|
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JPopupMenu$Separator" ) {
|
add( new FormComponent( "javax.swing.JPopupMenu$Separator" ) {
|
||||||
name: "separator3"
|
name: "separator3"
|
||||||
|
|||||||
@@ -10,7 +10,8 @@
|
|||||||
"selectionForeground": "#ffffff",
|
"selectionForeground": "#ffffff",
|
||||||
"selectionInactiveBackground": "#C36200",
|
"selectionInactiveBackground": "#C36200",
|
||||||
"selectionBackgroundInactive": "#c36200",
|
"selectionBackgroundInactive": "#c36200",
|
||||||
"background" : "#F5F5F5"
|
"background" : "#FFFFFF",
|
||||||
|
"focusColor" : "#f57900"
|
||||||
},
|
},
|
||||||
|
|
||||||
"Borders": {
|
"Borders": {
|
||||||
@@ -23,6 +24,7 @@
|
|||||||
"startBorderColor": "#C4C4C4",
|
"startBorderColor": "#C4C4C4",
|
||||||
"endBorderColor": "#C4C4C4",
|
"endBorderColor": "#C4C4C4",
|
||||||
"focusedBorderColor" : "#f57900",
|
"focusedBorderColor" : "#f57900",
|
||||||
|
"background" : "#F5F5F5",
|
||||||
"default": {
|
"default": {
|
||||||
"foreground": "#FFFFFF",
|
"foreground": "#FFFFFF",
|
||||||
"startBackground": "#f57900",
|
"startBackground": "#f57900",
|
||||||
@@ -40,8 +42,6 @@
|
|||||||
"WelcomeScreen.background" : "#F5F5F5",
|
"WelcomeScreen.background" : "#F5F5F5",
|
||||||
"WelcomeScreen.Projects.background" : "#ffffff",
|
"WelcomeScreen.Projects.background" : "#ffffff",
|
||||||
|
|
||||||
"List.background" : "#ffffff",
|
|
||||||
|
|
||||||
"MenuBar.foreground" : "#5c616c",
|
"MenuBar.foreground" : "#5c616c",
|
||||||
"Menu.background" : "#ffffff",
|
"Menu.background" : "#ffffff",
|
||||||
"Menu.separatorColor" : "#F5F5F5",
|
"Menu.separatorColor" : "#F5F5F5",
|
||||||
@@ -49,8 +49,10 @@
|
|||||||
"MenuItem.foreground" : "#5c616c",
|
"MenuItem.foreground" : "#5c616c",
|
||||||
"MenuItem.background" : "#ffffff",
|
"MenuItem.background" : "#ffffff",
|
||||||
"PopupMenuSeparator.height" : "1",
|
"PopupMenuSeparator.height" : "1",
|
||||||
|
"Separator.separatorColor" : "#9ba2ab",
|
||||||
|
|
||||||
"Tree.background" : "#ffffff",
|
"Tree.background" : "#ffffff",
|
||||||
|
"Tree.rowHeight": "23",
|
||||||
|
|
||||||
"ProgressBar.background" : "#f57900",
|
"ProgressBar.background" : "#f57900",
|
||||||
"ProgressBar.foreground" : "#f57900",
|
"ProgressBar.foreground" : "#f57900",
|
||||||
@@ -69,9 +71,11 @@
|
|||||||
"ParameterInfo.background" : "#fffae3",
|
"ParameterInfo.background" : "#fffae3",
|
||||||
"ParameterInfo.currentOverloadBackground" : "#fffae3",
|
"ParameterInfo.currentOverloadBackground" : "#fffae3",
|
||||||
|
|
||||||
|
"List.background" : "#ffffff",
|
||||||
"List.dropLineColor" : "#f57900",
|
"List.dropLineColor" : "#f57900",
|
||||||
"List.selectionBackground": "#f57900",
|
"List.selectionBackground": "#f57900",
|
||||||
"List.selectionForeground": "#ffffff",
|
"List.selectionForeground": "#ffffff",
|
||||||
|
"List.selectionInactiveBackground": "#C36200",
|
||||||
|
|
||||||
"Table.background" : "#ffffff",
|
"Table.background" : "#ffffff",
|
||||||
"Table.selectionBackground" : "#f57900",
|
"Table.selectionBackground" : "#f57900",
|
||||||
@@ -83,6 +87,7 @@
|
|||||||
|
|
||||||
"TabbedPane.underlineColor" : "#f57900",
|
"TabbedPane.underlineColor" : "#f57900",
|
||||||
"TabbedPane.tabSelectionHeight" : 2,
|
"TabbedPane.tabSelectionHeight" : 2,
|
||||||
|
"TabbedPane.background" : "#F5F5F5",
|
||||||
|
|
||||||
"Link.hoverForeground" : "#f57900",
|
"Link.hoverForeground" : "#f57900",
|
||||||
"Link.activeForeground" : "#f57900",
|
"Link.activeForeground" : "#f57900",
|
||||||
@@ -98,8 +103,22 @@
|
|||||||
"TextArea.background" : "#ffffff",
|
"TextArea.background" : "#ffffff",
|
||||||
"TextPane.background" : "#ffffff",
|
"TextPane.background" : "#ffffff",
|
||||||
"PasswordField.background" : "#ffffff",
|
"PasswordField.background" : "#ffffff",
|
||||||
|
"FormattedTextField.background" : "#ffffff",
|
||||||
|
"Editor.background" : "#f5f5f5",
|
||||||
|
"EditorPane.background" : "#ffffff",
|
||||||
|
|
||||||
"CompletionPopup.background" : "#ffffff",
|
"CheckBox.background" : "#F5F5F5",
|
||||||
|
"RadioButton.background" : "#F5F5F5",
|
||||||
|
"Slider.background" : "#F5F5F5",
|
||||||
|
"Spinner.background" : "#F5F5F5",
|
||||||
|
"OptionPane.background" : "#F5F5F5",
|
||||||
|
|
||||||
|
"CompletionPopup": {
|
||||||
|
"selectionBackground" : "#F5790055",
|
||||||
|
"nonFocusedMask": false,
|
||||||
|
"matchForeground": "#F57900",
|
||||||
|
"selectionInactiveBackground": "#C36200"
|
||||||
|
},
|
||||||
|
|
||||||
"Plugins.lightSelectionBackground" : "#dddee1",
|
"Plugins.lightSelectionBackground" : "#dddee1",
|
||||||
"Plugins.SearchField.background" : "#ffffff",
|
"Plugins.SearchField.background" : "#ffffff",
|
||||||
@@ -116,8 +135,10 @@
|
|||||||
"Counter.foreground" : "#ffffff",
|
"Counter.foreground" : "#ffffff",
|
||||||
|
|
||||||
"SearchEverywhere.SearchField.background" : "#ffffff",
|
"SearchEverywhere.SearchField.background" : "#ffffff",
|
||||||
|
"SearchEverywhere.Header.background" : "#F5F5F5",
|
||||||
|
|
||||||
"ToolTip.background" : "#fffae3",
|
"ToolTip.background" : "#F5F5F5",
|
||||||
|
"ToolTip.Actions.background" : "#F5F5F5",
|
||||||
|
|
||||||
"ToolWindow.Header.background" : "#e7e8eb",
|
"ToolWindow.Header.background" : "#e7e8eb",
|
||||||
"ToolWindow.HeaderTab.selectedBackground" : "#dddee1",
|
"ToolWindow.HeaderTab.selectedBackground" : "#dddee1",
|
||||||
@@ -128,8 +149,12 @@
|
|||||||
"ToolWindow.HeaderTab.underlineColor" : "#f57900",
|
"ToolWindow.HeaderTab.underlineColor" : "#f57900",
|
||||||
"DefaultTabs.underlineHeight" : 2,
|
"DefaultTabs.underlineHeight" : 2,
|
||||||
"DefaultTabs.underlineColor" : "#f57900",
|
"DefaultTabs.underlineColor" : "#f57900",
|
||||||
|
"DefaultTabs.background" : "#F5F5F5",
|
||||||
"EditorTabs.underlineHeight" : 2,
|
"EditorTabs.underlineHeight" : 2,
|
||||||
"EditorTabs.underlineColor" : "#f57900"
|
"EditorTabs.underlineColor" : "#f57900",
|
||||||
|
"EditorTabs.background" : "#F5F5F5",
|
||||||
|
|
||||||
|
"Notification.background" : "#F5F5F5"
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,8 @@
|
|||||||
"selectionForeground": "#ffffff",
|
"selectionForeground": "#ffffff",
|
||||||
"selectionInactiveBackground": "#1e61b0",
|
"selectionInactiveBackground": "#1e61b0",
|
||||||
"selectionBackgroundInactive": "#1e61b0",
|
"selectionBackgroundInactive": "#1e61b0",
|
||||||
"background" : "#F5F5F5"
|
"background" : "#FFFFFF",
|
||||||
|
"focusColor" : "#2679db"
|
||||||
},
|
},
|
||||||
|
|
||||||
"Borders": {
|
"Borders": {
|
||||||
@@ -23,6 +24,7 @@
|
|||||||
"startBorderColor": "#C4C4C4",
|
"startBorderColor": "#C4C4C4",
|
||||||
"endBorderColor": "#C4C4C4",
|
"endBorderColor": "#C4C4C4",
|
||||||
"focusedBorderColor" : "#2679db",
|
"focusedBorderColor" : "#2679db",
|
||||||
|
"background" : "#F5F5F5",
|
||||||
"default": {
|
"default": {
|
||||||
"foreground": "#FFFFFF",
|
"foreground": "#FFFFFF",
|
||||||
"startBackground": "#2679db",
|
"startBackground": "#2679db",
|
||||||
@@ -40,8 +42,6 @@
|
|||||||
"WelcomeScreen.background" : "#F5F5F5",
|
"WelcomeScreen.background" : "#F5F5F5",
|
||||||
"WelcomeScreen.Projects.background" : "#ffffff",
|
"WelcomeScreen.Projects.background" : "#ffffff",
|
||||||
|
|
||||||
"List.background" : "#ffffff",
|
|
||||||
|
|
||||||
"MenuBar.foreground" : "#5c616c",
|
"MenuBar.foreground" : "#5c616c",
|
||||||
"Menu.background" : "#ffffff",
|
"Menu.background" : "#ffffff",
|
||||||
"Menu.separatorColor" : "#F5F5F5",
|
"Menu.separatorColor" : "#F5F5F5",
|
||||||
@@ -49,8 +49,10 @@
|
|||||||
"MenuItem.foreground" : "#5c616c",
|
"MenuItem.foreground" : "#5c616c",
|
||||||
"MenuItem.background" : "#ffffff",
|
"MenuItem.background" : "#ffffff",
|
||||||
"PopupMenuSeparator.height" : "1",
|
"PopupMenuSeparator.height" : "1",
|
||||||
|
"Separator.separatorColor" : "#9ba2ab",
|
||||||
|
|
||||||
"Tree.background" : "#ffffff",
|
"Tree.background" : "#ffffff",
|
||||||
|
"Tree.rowHeight": "23",
|
||||||
|
|
||||||
"ProgressBar.background" : "#2679db",
|
"ProgressBar.background" : "#2679db",
|
||||||
"ProgressBar.foreground" : "#2679db",
|
"ProgressBar.foreground" : "#2679db",
|
||||||
@@ -69,9 +71,11 @@
|
|||||||
"ParameterInfo.background" : "#fffae3",
|
"ParameterInfo.background" : "#fffae3",
|
||||||
"ParameterInfo.currentOverloadBackground" : "#fffae3",
|
"ParameterInfo.currentOverloadBackground" : "#fffae3",
|
||||||
|
|
||||||
|
"List.background" : "#ffffff",
|
||||||
"List.dropLineColor" : "#2679db",
|
"List.dropLineColor" : "#2679db",
|
||||||
"List.selectionBackground": "#2679db",
|
"List.selectionBackground": "#2679db",
|
||||||
"List.selectionForeground": "#ffffff",
|
"List.selectionForeground": "#ffffff",
|
||||||
|
"List.selectionInactiveBackground": "#1e61b0",
|
||||||
|
|
||||||
"Table.background" : "#ffffff",
|
"Table.background" : "#ffffff",
|
||||||
"Table.selectionBackground" : "#2679db",
|
"Table.selectionBackground" : "#2679db",
|
||||||
@@ -83,6 +87,7 @@
|
|||||||
|
|
||||||
"TabbedPane.underlineColor" : "#2679db",
|
"TabbedPane.underlineColor" : "#2679db",
|
||||||
"TabbedPane.tabSelectionHeight" : 2,
|
"TabbedPane.tabSelectionHeight" : 2,
|
||||||
|
"TabbedPane.background" : "#F5F5F5",
|
||||||
|
|
||||||
"Link.hoverForeground" : "#2679db",
|
"Link.hoverForeground" : "#2679db",
|
||||||
"Link.activeForeground" : "#2679db",
|
"Link.activeForeground" : "#2679db",
|
||||||
@@ -98,8 +103,22 @@
|
|||||||
"TextArea.background" : "#ffffff",
|
"TextArea.background" : "#ffffff",
|
||||||
"TextPane.background" : "#ffffff",
|
"TextPane.background" : "#ffffff",
|
||||||
"PasswordField.background" : "#ffffff",
|
"PasswordField.background" : "#ffffff",
|
||||||
|
"FormattedTextField.background" : "#ffffff",
|
||||||
|
"Editor.background" : "#f5f5f5",
|
||||||
|
"EditorPane.background" : "#ffffff",
|
||||||
|
|
||||||
"CompletionPopup.background" : "#ffffff",
|
"CheckBox.background" : "#F5F5F5",
|
||||||
|
"RadioButton.background" : "#F5F5F5",
|
||||||
|
"Slider.background" : "#F5F5F5",
|
||||||
|
"Spinner.background" : "#F5F5F5",
|
||||||
|
"OptionPane.background" : "#F5F5F5",
|
||||||
|
|
||||||
|
"CompletionPopup": {
|
||||||
|
"selectionBackground" : "#2679db55",
|
||||||
|
"nonFocusedMask": false,
|
||||||
|
"matchForeground": "#2679db",
|
||||||
|
"selectionInactiveBackground": "#1e61b0"
|
||||||
|
},
|
||||||
|
|
||||||
"Plugins.lightSelectionBackground" : "#dddee1",
|
"Plugins.lightSelectionBackground" : "#dddee1",
|
||||||
"Plugins.SearchField.background" : "#ffffff",
|
"Plugins.SearchField.background" : "#ffffff",
|
||||||
@@ -116,8 +135,10 @@
|
|||||||
"Counter.foreground" : "#ffffff",
|
"Counter.foreground" : "#ffffff",
|
||||||
|
|
||||||
"SearchEverywhere.SearchField.background" : "#ffffff",
|
"SearchEverywhere.SearchField.background" : "#ffffff",
|
||||||
|
"SearchEverywhere.Header.background" : "#F5F5F5",
|
||||||
|
|
||||||
"ToolTip.background" : "#fffae3",
|
"ToolTip.background" : "#F5F5F5",
|
||||||
|
"ToolTip.Actions.background" : "#F5F5F5",
|
||||||
|
|
||||||
"ToolWindow.Header.background" : "#e7e8eb",
|
"ToolWindow.Header.background" : "#e7e8eb",
|
||||||
"ToolWindow.HeaderTab.selectedBackground" : "#dddee1",
|
"ToolWindow.HeaderTab.selectedBackground" : "#dddee1",
|
||||||
@@ -128,8 +149,12 @@
|
|||||||
"ToolWindow.HeaderTab.underlineColor" : "#2679db",
|
"ToolWindow.HeaderTab.underlineColor" : "#2679db",
|
||||||
"DefaultTabs.underlineHeight" : 2,
|
"DefaultTabs.underlineHeight" : 2,
|
||||||
"DefaultTabs.underlineColor" : "#2679db",
|
"DefaultTabs.underlineColor" : "#2679db",
|
||||||
|
"DefaultTabs.background" : "#F5F5F5",
|
||||||
"EditorTabs.underlineHeight" : 2,
|
"EditorTabs.underlineHeight" : 2,
|
||||||
"EditorTabs.underlineColor" : "#2679db"
|
"EditorTabs.underlineColor" : "#2679db",
|
||||||
|
"EditorTabs.background" : "#F5F5F5",
|
||||||
|
|
||||||
|
"Notification.background" : "#F5F5F5"
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#42A5F5",
|
"Checkbox.Focus.Wide.Dark": "#42A5F5",
|
||||||
"Checkbox.Foreground.Disabled": "#D3DAE3",
|
"Checkbox.Foreground.Disabled": "#D3DAE3",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#D3DAE3",
|
"Checkbox.Foreground.Disabled.Dark": "#D3DAE3",
|
||||||
"Checkbox.Background.Selected": "#2f343f",
|
"Checkbox.Background.Selected": "#42A5F5",
|
||||||
"Checkbox.Background.Selected.Dark": "#2f343f",
|
"Checkbox.Background.Selected.Dark": "#2f343f",
|
||||||
"Checkbox.Border.Selected": "#42A5F5",
|
"Checkbox.Border.Selected": "#42A5F5",
|
||||||
"Checkbox.Border.Selected.Dark": "#42A5F5",
|
"Checkbox.Border.Selected.Dark": "#42A5F5",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#42A5F5",
|
"Checkbox.Focus.Wide.Dark": "#42A5F5",
|
||||||
"Checkbox.Foreground.Disabled": "#D3DAE3",
|
"Checkbox.Foreground.Disabled": "#D3DAE3",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#D3DAE3",
|
"Checkbox.Foreground.Disabled.Dark": "#D3DAE3",
|
||||||
"Checkbox.Background.Selected": "#2f343f",
|
"Checkbox.Background.Selected": "#42A5F5",
|
||||||
"Checkbox.Background.Selected.Dark": "#2f343f",
|
"Checkbox.Background.Selected.Dark": "#2f343f",
|
||||||
"Checkbox.Border.Selected": "#42A5F5",
|
"Checkbox.Border.Selected": "#42A5F5",
|
||||||
"Checkbox.Border.Selected.Dark": "#42A5F5",
|
"Checkbox.Border.Selected.Dark": "#42A5F5",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#2979ff",
|
"Checkbox.Focus.Wide.Dark": "#2979ff",
|
||||||
"Checkbox.Foreground.Disabled": "#6B727D",
|
"Checkbox.Foreground.Disabled": "#6B727D",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#6B727D",
|
"Checkbox.Foreground.Disabled.Dark": "#6B727D",
|
||||||
"Checkbox.Background.Selected": "#282C34",
|
"Checkbox.Background.Selected": "#2979ff",
|
||||||
"Checkbox.Background.Selected.Dark": "#282C34",
|
"Checkbox.Background.Selected.Dark": "#282C34",
|
||||||
"Checkbox.Border.Selected": "#2979ff",
|
"Checkbox.Border.Selected": "#2979ff",
|
||||||
"Checkbox.Border.Selected.Dark": "#2979ff",
|
"Checkbox.Border.Selected.Dark": "#2979ff",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#2979ff",
|
"Checkbox.Focus.Wide.Dark": "#2979ff",
|
||||||
"Checkbox.Foreground.Disabled": "#6B727D",
|
"Checkbox.Foreground.Disabled": "#6B727D",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#6B727D",
|
"Checkbox.Foreground.Disabled.Dark": "#6B727D",
|
||||||
"Checkbox.Background.Selected": "#282C34",
|
"Checkbox.Background.Selected": "#2979ff",
|
||||||
"Checkbox.Background.Selected.Dark": "#282C34",
|
"Checkbox.Background.Selected.Dark": "#282C34",
|
||||||
"Checkbox.Border.Selected": "#2979ff",
|
"Checkbox.Border.Selected": "#2979ff",
|
||||||
"Checkbox.Border.Selected.Dark": "#2979ff",
|
"Checkbox.Border.Selected.Dark": "#2979ff",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#2979ff",
|
"Checkbox.Focus.Wide.Dark": "#2979ff",
|
||||||
"Checkbox.Foreground.Disabled": "#b8b8b9",
|
"Checkbox.Foreground.Disabled": "#b8b8b9",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#b8b8b9",
|
"Checkbox.Foreground.Disabled.Dark": "#b8b8b9",
|
||||||
"Checkbox.Background.Selected": "#F4F4F4",
|
"Checkbox.Background.Selected": "#2979ff",
|
||||||
"Checkbox.Background.Selected.Dark": "#F4F4F4",
|
"Checkbox.Background.Selected.Dark": "#F4F4F4",
|
||||||
"Checkbox.Border.Selected": "#2979ff",
|
"Checkbox.Border.Selected": "#2979ff",
|
||||||
"Checkbox.Border.Selected.Dark": "#2979ff",
|
"Checkbox.Border.Selected.Dark": "#2979ff",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#2979ff",
|
"Checkbox.Focus.Wide.Dark": "#2979ff",
|
||||||
"Checkbox.Foreground.Disabled": "#b8b8b9",
|
"Checkbox.Foreground.Disabled": "#b8b8b9",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#b8b8b9",
|
"Checkbox.Foreground.Disabled.Dark": "#b8b8b9",
|
||||||
"Checkbox.Background.Selected": "#F4F4F4",
|
"Checkbox.Background.Selected": "#2979ff",
|
||||||
"Checkbox.Background.Selected.Dark": "#F4F4F4",
|
"Checkbox.Background.Selected.Dark": "#F4F4F4",
|
||||||
"Checkbox.Border.Selected": "#2979ff",
|
"Checkbox.Border.Selected": "#2979ff",
|
||||||
"Checkbox.Border.Selected.Dark": "#2979ff",
|
"Checkbox.Border.Selected.Dark": "#2979ff",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#FF79C5",
|
"Checkbox.Focus.Wide.Dark": "#FF79C5",
|
||||||
"Checkbox.Foreground.Disabled": "#6272A4",
|
"Checkbox.Foreground.Disabled": "#6272A4",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#6272A4",
|
"Checkbox.Foreground.Disabled.Dark": "#6272A4",
|
||||||
"Checkbox.Background.Selected": "#282A36",
|
"Checkbox.Background.Selected": "#FF79C5",
|
||||||
"Checkbox.Background.Selected.Dark": "#282A36",
|
"Checkbox.Background.Selected.Dark": "#282A36",
|
||||||
"Checkbox.Border.Selected": "#FF79C5",
|
"Checkbox.Border.Selected": "#FF79C5",
|
||||||
"Checkbox.Border.Selected.Dark": "#FF79C5",
|
"Checkbox.Border.Selected.Dark": "#FF79C5",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#FF79C5",
|
"Checkbox.Focus.Wide.Dark": "#FF79C5",
|
||||||
"Checkbox.Foreground.Disabled": "#6272A4",
|
"Checkbox.Foreground.Disabled": "#6272A4",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#6272A4",
|
"Checkbox.Foreground.Disabled.Dark": "#6272A4",
|
||||||
"Checkbox.Background.Selected": "#282A36",
|
"Checkbox.Background.Selected": "#FF79C5",
|
||||||
"Checkbox.Background.Selected.Dark": "#282A36",
|
"Checkbox.Background.Selected.Dark": "#282A36",
|
||||||
"Checkbox.Border.Selected": "#FF79C5",
|
"Checkbox.Border.Selected": "#FF79C5",
|
||||||
"Checkbox.Border.Selected.Dark": "#FF79C5",
|
"Checkbox.Border.Selected.Dark": "#FF79C5",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#79CB60",
|
"Checkbox.Focus.Wide.Dark": "#79CB60",
|
||||||
"Checkbox.Foreground.Disabled": "#9ba0a3",
|
"Checkbox.Foreground.Disabled": "#9ba0a3",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#9ba0a3",
|
"Checkbox.Foreground.Disabled.Dark": "#9ba0a3",
|
||||||
"Checkbox.Background.Selected": "#F7F8FA",
|
"Checkbox.Background.Selected": "#79CB60",
|
||||||
"Checkbox.Background.Selected.Dark": "#F7F8FA",
|
"Checkbox.Background.Selected.Dark": "#F7F8FA",
|
||||||
"Checkbox.Border.Selected": "#79CB60",
|
"Checkbox.Border.Selected": "#79CB60",
|
||||||
"Checkbox.Border.Selected.Dark": "#79CB60",
|
"Checkbox.Border.Selected.Dark": "#79CB60",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#79CB60",
|
"Checkbox.Focus.Wide.Dark": "#79CB60",
|
||||||
"Checkbox.Foreground.Disabled": "#9ba0a3",
|
"Checkbox.Foreground.Disabled": "#9ba0a3",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#9ba0a3",
|
"Checkbox.Foreground.Disabled.Dark": "#9ba0a3",
|
||||||
"Checkbox.Background.Selected": "#F7F8FA",
|
"Checkbox.Background.Selected": "#79CB60",
|
||||||
"Checkbox.Background.Selected.Dark": "#F7F8FA",
|
"Checkbox.Background.Selected.Dark": "#F7F8FA",
|
||||||
"Checkbox.Border.Selected": "#79CB60",
|
"Checkbox.Border.Selected": "#79CB60",
|
||||||
"Checkbox.Border.Selected.Dark": "#79CB60",
|
"Checkbox.Border.Selected.Dark": "#79CB60",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#2AA298",
|
"Checkbox.Focus.Wide.Dark": "#2AA298",
|
||||||
"Checkbox.Foreground.Disabled": "#93A1A1",
|
"Checkbox.Foreground.Disabled": "#93A1A1",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#93A1A1",
|
"Checkbox.Foreground.Disabled.Dark": "#93A1A1",
|
||||||
"Checkbox.Background.Selected": "#F0F0F0",
|
"Checkbox.Background.Selected": "#2AA298",
|
||||||
"Checkbox.Background.Selected.Dark": "#F0F0F0",
|
"Checkbox.Background.Selected.Dark": "#F0F0F0",
|
||||||
"Checkbox.Border.Selected": "#2AA298",
|
"Checkbox.Border.Selected": "#2AA298",
|
||||||
"Checkbox.Border.Selected.Dark": "#2AA298",
|
"Checkbox.Border.Selected.Dark": "#2AA298",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#2AA298",
|
"Checkbox.Focus.Wide.Dark": "#2AA298",
|
||||||
"Checkbox.Foreground.Disabled": "#93A1A1",
|
"Checkbox.Foreground.Disabled": "#93A1A1",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#93A1A1",
|
"Checkbox.Foreground.Disabled.Dark": "#93A1A1",
|
||||||
"Checkbox.Background.Selected": "#F0F0F0",
|
"Checkbox.Background.Selected": "#2AA298",
|
||||||
"Checkbox.Background.Selected.Dark": "#F0F0F0",
|
"Checkbox.Background.Selected.Dark": "#F0F0F0",
|
||||||
"Checkbox.Border.Selected": "#2AA298",
|
"Checkbox.Border.Selected": "#2AA298",
|
||||||
"Checkbox.Border.Selected.Dark": "#2AA298",
|
"Checkbox.Border.Selected.Dark": "#2AA298",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#FF9800",
|
"Checkbox.Focus.Wide.Dark": "#FF9800",
|
||||||
"Checkbox.Foreground.Disabled": "#474747",
|
"Checkbox.Foreground.Disabled": "#474747",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#474747",
|
"Checkbox.Foreground.Disabled.Dark": "#474747",
|
||||||
"Checkbox.Background.Selected": "#212121",
|
"Checkbox.Background.Selected": "#FF9800",
|
||||||
"Checkbox.Background.Selected.Dark": "#212121",
|
"Checkbox.Background.Selected.Dark": "#212121",
|
||||||
"Checkbox.Border.Selected": "#FF9800",
|
"Checkbox.Border.Selected": "#FF9800",
|
||||||
"Checkbox.Border.Selected.Dark": "#FF9800",
|
"Checkbox.Border.Selected.Dark": "#FF9800",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#FF9800",
|
"Checkbox.Focus.Wide.Dark": "#FF9800",
|
||||||
"Checkbox.Foreground.Disabled": "#474747",
|
"Checkbox.Foreground.Disabled": "#474747",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#474747",
|
"Checkbox.Foreground.Disabled.Dark": "#474747",
|
||||||
"Checkbox.Background.Selected": "#212121",
|
"Checkbox.Background.Selected": "#FF9800",
|
||||||
"Checkbox.Background.Selected.Dark": "#212121",
|
"Checkbox.Background.Selected.Dark": "#212121",
|
||||||
"Checkbox.Border.Selected": "#FF9800",
|
"Checkbox.Border.Selected": "#FF9800",
|
||||||
"Checkbox.Border.Selected.Dark": "#FF9800",
|
"Checkbox.Border.Selected.Dark": "#FF9800",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#84ffff",
|
"Checkbox.Focus.Wide.Dark": "#84ffff",
|
||||||
"Checkbox.Foreground.Disabled": "#464B5D",
|
"Checkbox.Foreground.Disabled": "#464B5D",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#464B5D",
|
"Checkbox.Foreground.Disabled.Dark": "#464B5D",
|
||||||
"Checkbox.Background.Selected": "#0F111A",
|
"Checkbox.Background.Selected": "#84ffff",
|
||||||
"Checkbox.Background.Selected.Dark": "#0F111A",
|
"Checkbox.Background.Selected.Dark": "#0F111A",
|
||||||
"Checkbox.Border.Selected": "#84ffff",
|
"Checkbox.Border.Selected": "#84ffff",
|
||||||
"Checkbox.Border.Selected.Dark": "#84ffff",
|
"Checkbox.Border.Selected.Dark": "#84ffff",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#84ffff",
|
"Checkbox.Focus.Wide.Dark": "#84ffff",
|
||||||
"Checkbox.Foreground.Disabled": "#464B5D",
|
"Checkbox.Foreground.Disabled": "#464B5D",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#464B5D",
|
"Checkbox.Foreground.Disabled.Dark": "#464B5D",
|
||||||
"Checkbox.Background.Selected": "#0F111A",
|
"Checkbox.Background.Selected": "#84ffff",
|
||||||
"Checkbox.Background.Selected.Dark": "#0F111A",
|
"Checkbox.Background.Selected.Dark": "#0F111A",
|
||||||
"Checkbox.Border.Selected": "#84ffff",
|
"Checkbox.Border.Selected": "#84ffff",
|
||||||
"Checkbox.Border.Selected.Dark": "#84ffff",
|
"Checkbox.Border.Selected.Dark": "#84ffff",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#00BCD4",
|
"Checkbox.Focus.Wide.Dark": "#00BCD4",
|
||||||
"Checkbox.Foreground.Disabled": "#D2D4D5",
|
"Checkbox.Foreground.Disabled": "#D2D4D5",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#D2D4D5",
|
"Checkbox.Foreground.Disabled.Dark": "#D2D4D5",
|
||||||
"Checkbox.Background.Selected": "#FAFAFA",
|
"Checkbox.Background.Selected": "#00BCD4",
|
||||||
"Checkbox.Background.Selected.Dark": "#FAFAFA",
|
"Checkbox.Background.Selected.Dark": "#FAFAFA",
|
||||||
"Checkbox.Border.Selected": "#00BCD4",
|
"Checkbox.Border.Selected": "#00BCD4",
|
||||||
"Checkbox.Border.Selected.Dark": "#00BCD4",
|
"Checkbox.Border.Selected.Dark": "#00BCD4",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#00BCD4",
|
"Checkbox.Focus.Wide.Dark": "#00BCD4",
|
||||||
"Checkbox.Foreground.Disabled": "#D2D4D5",
|
"Checkbox.Foreground.Disabled": "#D2D4D5",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#D2D4D5",
|
"Checkbox.Foreground.Disabled.Dark": "#D2D4D5",
|
||||||
"Checkbox.Background.Selected": "#FAFAFA",
|
"Checkbox.Background.Selected": "#00BCD4",
|
||||||
"Checkbox.Background.Selected.Dark": "#FAFAFA",
|
"Checkbox.Background.Selected.Dark": "#FAFAFA",
|
||||||
"Checkbox.Border.Selected": "#00BCD4",
|
"Checkbox.Border.Selected": "#00BCD4",
|
||||||
"Checkbox.Border.Selected.Dark": "#00BCD4",
|
"Checkbox.Border.Selected.Dark": "#00BCD4",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#009688",
|
"Checkbox.Focus.Wide.Dark": "#009688",
|
||||||
"Checkbox.Foreground.Disabled": "#415967",
|
"Checkbox.Foreground.Disabled": "#415967",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#415967",
|
"Checkbox.Foreground.Disabled.Dark": "#415967",
|
||||||
"Checkbox.Background.Selected": "#263238",
|
"Checkbox.Background.Selected": "#009688",
|
||||||
"Checkbox.Background.Selected.Dark": "#263238",
|
"Checkbox.Background.Selected.Dark": "#263238",
|
||||||
"Checkbox.Border.Selected": "#009688",
|
"Checkbox.Border.Selected": "#009688",
|
||||||
"Checkbox.Border.Selected.Dark": "#009688",
|
"Checkbox.Border.Selected.Dark": "#009688",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#009688",
|
"Checkbox.Focus.Wide.Dark": "#009688",
|
||||||
"Checkbox.Foreground.Disabled": "#415967",
|
"Checkbox.Foreground.Disabled": "#415967",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#415967",
|
"Checkbox.Foreground.Disabled.Dark": "#415967",
|
||||||
"Checkbox.Background.Selected": "#263238",
|
"Checkbox.Background.Selected": "#009688",
|
||||||
"Checkbox.Background.Selected.Dark": "#263238",
|
"Checkbox.Background.Selected.Dark": "#263238",
|
||||||
"Checkbox.Border.Selected": "#009688",
|
"Checkbox.Border.Selected": "#009688",
|
||||||
"Checkbox.Border.Selected.Dark": "#009688",
|
"Checkbox.Border.Selected.Dark": "#009688",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#ab47bc",
|
"Checkbox.Focus.Wide.Dark": "#ab47bc",
|
||||||
"Checkbox.Foreground.Disabled": "#515772",
|
"Checkbox.Foreground.Disabled": "#515772",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#515772",
|
"Checkbox.Foreground.Disabled.Dark": "#515772",
|
||||||
"Checkbox.Background.Selected": "#292D3E",
|
"Checkbox.Background.Selected": "#ab47bc",
|
||||||
"Checkbox.Background.Selected.Dark": "#292D3E",
|
"Checkbox.Background.Selected.Dark": "#292D3E",
|
||||||
"Checkbox.Border.Selected": "#ab47bc",
|
"Checkbox.Border.Selected": "#ab47bc",
|
||||||
"Checkbox.Border.Selected.Dark": "#ab47bc",
|
"Checkbox.Border.Selected.Dark": "#ab47bc",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#ab47bc",
|
"Checkbox.Focus.Wide.Dark": "#ab47bc",
|
||||||
"Checkbox.Foreground.Disabled": "#515772",
|
"Checkbox.Foreground.Disabled": "#515772",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#515772",
|
"Checkbox.Foreground.Disabled.Dark": "#515772",
|
||||||
"Checkbox.Background.Selected": "#292D3E",
|
"Checkbox.Background.Selected": "#ab47bc",
|
||||||
"Checkbox.Background.Selected.Dark": "#292D3E",
|
"Checkbox.Background.Selected.Dark": "#292D3E",
|
||||||
"Checkbox.Border.Selected": "#ab47bc",
|
"Checkbox.Border.Selected": "#ab47bc",
|
||||||
"Checkbox.Border.Selected.Dark": "#ab47bc",
|
"Checkbox.Border.Selected.Dark": "#ab47bc",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#ffd866",
|
"Checkbox.Focus.Wide.Dark": "#ffd866",
|
||||||
"Checkbox.Foreground.Disabled": "#5b595c",
|
"Checkbox.Foreground.Disabled": "#5b595c",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#5b595c",
|
"Checkbox.Foreground.Disabled.Dark": "#5b595c",
|
||||||
"Checkbox.Background.Selected": "#2D2A2E",
|
"Checkbox.Background.Selected": "#ffd866",
|
||||||
"Checkbox.Background.Selected.Dark": "#2D2A2E",
|
"Checkbox.Background.Selected.Dark": "#2D2A2E",
|
||||||
"Checkbox.Border.Selected": "#ffd866",
|
"Checkbox.Border.Selected": "#ffd866",
|
||||||
"Checkbox.Border.Selected.Dark": "#ffd866",
|
"Checkbox.Border.Selected.Dark": "#ffd866",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#ffd866",
|
"Checkbox.Focus.Wide.Dark": "#ffd866",
|
||||||
"Checkbox.Foreground.Disabled": "#5b595c",
|
"Checkbox.Foreground.Disabled": "#5b595c",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#5b595c",
|
"Checkbox.Foreground.Disabled.Dark": "#5b595c",
|
||||||
"Checkbox.Background.Selected": "#2D2A2E",
|
"Checkbox.Background.Selected": "#ffd866",
|
||||||
"Checkbox.Background.Selected.Dark": "#2D2A2E",
|
"Checkbox.Background.Selected.Dark": "#2D2A2E",
|
||||||
"Checkbox.Border.Selected": "#ffd866",
|
"Checkbox.Border.Selected": "#ffd866",
|
||||||
"Checkbox.Border.Selected.Dark": "#ffd866",
|
"Checkbox.Border.Selected.Dark": "#ffd866",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#7e57c2",
|
"Checkbox.Focus.Wide.Dark": "#7e57c2",
|
||||||
"Checkbox.Foreground.Disabled": "#697098",
|
"Checkbox.Foreground.Disabled": "#697098",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#697098",
|
"Checkbox.Foreground.Disabled.Dark": "#697098",
|
||||||
"Checkbox.Background.Selected": "#011627",
|
"Checkbox.Background.Selected": "#7e57c2",
|
||||||
"Checkbox.Background.Selected.Dark": "#011627",
|
"Checkbox.Background.Selected.Dark": "#011627",
|
||||||
"Checkbox.Border.Selected": "#7e57c2",
|
"Checkbox.Border.Selected": "#7e57c2",
|
||||||
"Checkbox.Border.Selected.Dark": "#7e57c2",
|
"Checkbox.Border.Selected.Dark": "#7e57c2",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#7e57c2",
|
"Checkbox.Focus.Wide.Dark": "#7e57c2",
|
||||||
"Checkbox.Foreground.Disabled": "#697098",
|
"Checkbox.Foreground.Disabled": "#697098",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#697098",
|
"Checkbox.Foreground.Disabled.Dark": "#697098",
|
||||||
"Checkbox.Background.Selected": "#011627",
|
"Checkbox.Background.Selected": "#7e57c2",
|
||||||
"Checkbox.Background.Selected.Dark": "#011627",
|
"Checkbox.Background.Selected.Dark": "#011627",
|
||||||
"Checkbox.Border.Selected": "#7e57c2",
|
"Checkbox.Border.Selected": "#7e57c2",
|
||||||
"Checkbox.Border.Selected.Dark": "#7e57c2",
|
"Checkbox.Border.Selected.Dark": "#7e57c2",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#d33682",
|
"Checkbox.Focus.Wide.Dark": "#d33682",
|
||||||
"Checkbox.Foreground.Disabled": "#2E5861",
|
"Checkbox.Foreground.Disabled": "#2E5861",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#2E5861",
|
"Checkbox.Foreground.Disabled.Dark": "#2E5861",
|
||||||
"Checkbox.Background.Selected": "#002B36",
|
"Checkbox.Background.Selected": "#d33682",
|
||||||
"Checkbox.Background.Selected.Dark": "#002B36",
|
"Checkbox.Background.Selected.Dark": "#002B36",
|
||||||
"Checkbox.Border.Selected": "#d33682",
|
"Checkbox.Border.Selected": "#d33682",
|
||||||
"Checkbox.Border.Selected.Dark": "#d33682",
|
"Checkbox.Border.Selected.Dark": "#d33682",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#d33682",
|
"Checkbox.Focus.Wide.Dark": "#d33682",
|
||||||
"Checkbox.Foreground.Disabled": "#2E5861",
|
"Checkbox.Foreground.Disabled": "#2E5861",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#2E5861",
|
"Checkbox.Foreground.Disabled.Dark": "#2E5861",
|
||||||
"Checkbox.Background.Selected": "#002B36",
|
"Checkbox.Background.Selected": "#d33682",
|
||||||
"Checkbox.Background.Selected.Dark": "#002B36",
|
"Checkbox.Background.Selected.Dark": "#002B36",
|
||||||
"Checkbox.Border.Selected": "#d33682",
|
"Checkbox.Border.Selected": "#d33682",
|
||||||
"Checkbox.Border.Selected.Dark": "#d33682",
|
"Checkbox.Border.Selected.Dark": "#d33682",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#d33682",
|
"Checkbox.Focus.Wide.Dark": "#d33682",
|
||||||
"Checkbox.Foreground.Disabled": "#C9CCC3",
|
"Checkbox.Foreground.Disabled": "#C9CCC3",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#C9CCC3",
|
"Checkbox.Foreground.Disabled.Dark": "#C9CCC3",
|
||||||
"Checkbox.Background.Selected": "#fdf6e3",
|
"Checkbox.Background.Selected": "#d33682",
|
||||||
"Checkbox.Background.Selected.Dark": "#fdf6e3",
|
"Checkbox.Background.Selected.Dark": "#fdf6e3",
|
||||||
"Checkbox.Border.Selected": "#d33682",
|
"Checkbox.Border.Selected": "#d33682",
|
||||||
"Checkbox.Border.Selected.Dark": "#d33682",
|
"Checkbox.Border.Selected.Dark": "#d33682",
|
||||||
|
|||||||
@@ -850,7 +850,7 @@
|
|||||||
"Checkbox.Focus.Wide.Dark": "#d33682",
|
"Checkbox.Focus.Wide.Dark": "#d33682",
|
||||||
"Checkbox.Foreground.Disabled": "#C9CCC3",
|
"Checkbox.Foreground.Disabled": "#C9CCC3",
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#C9CCC3",
|
"Checkbox.Foreground.Disabled.Dark": "#C9CCC3",
|
||||||
"Checkbox.Background.Selected": "#fdf6e3",
|
"Checkbox.Background.Selected": "#d33682",
|
||||||
"Checkbox.Background.Selected.Dark": "#fdf6e3",
|
"Checkbox.Background.Selected.Dark": "#fdf6e3",
|
||||||
"Checkbox.Border.Selected": "#d33682",
|
"Checkbox.Border.Selected": "#d33682",
|
||||||
"Checkbox.Border.Selected.Dark": "#d33682",
|
"Checkbox.Border.Selected.Dark": "#d33682",
|
||||||
|
|||||||
@@ -14,8 +14,6 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
version = rootProject.version
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
`java-library`
|
`java-library`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ build script:
|
|||||||
|
|
||||||
groupId: com.formdev
|
groupId: com.formdev
|
||||||
artifactId: flatlaf-jide-oss
|
artifactId: flatlaf-jide-oss
|
||||||
version: 0.25.1
|
version: (see button below)
|
||||||
|
|
||||||
Otherwise download `flatlaf-jide-oss-<version>.jar` here:
|
Otherwise download `flatlaf-jide-oss-<version>.jar` here:
|
||||||
|
|
||||||
|
|||||||
@@ -14,12 +14,11 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
version = rootProject.version
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
`java-library`
|
`java-library`
|
||||||
`maven-publish`
|
`maven-publish`
|
||||||
id( "com.jfrog.bintray" ) version "1.8.4"
|
id( "com.jfrog.bintray" ) version "1.8.4"
|
||||||
|
id( "com.jfrog.artifactory" ) version "4.13.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
@@ -119,3 +118,25 @@ bintray {
|
|||||||
publish = true
|
publish = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
artifactory {
|
||||||
|
setContextUrl( "https://oss.jfrog.org" )
|
||||||
|
|
||||||
|
publish( closureOf<org.jfrog.gradle.plugin.artifactory.dsl.PublisherConfig> {
|
||||||
|
repository( delegateClosureOf<groovy.lang.GroovyObject> {
|
||||||
|
setProperty( "repoKey", "oss-snapshot-local" )
|
||||||
|
setProperty( "username", System.getenv( "BINTRAY_USER" ) ?: System.getProperty( "bintray.user" ) )
|
||||||
|
setProperty( "password", System.getenv( "BINTRAY_KEY" ) ?: System.getProperty( "bintray.key" ) )
|
||||||
|
} )
|
||||||
|
|
||||||
|
defaults( delegateClosureOf<groovy.lang.GroovyObject> {
|
||||||
|
invokeMethod( "publications", "maven" )
|
||||||
|
setProperty( "publishArtifacts", true )
|
||||||
|
setProperty( "publishPom", true )
|
||||||
|
} )
|
||||||
|
} )
|
||||||
|
|
||||||
|
resolve( delegateClosureOf<org.jfrog.gradle.plugin.artifactory.dsl.ResolverConfig> {
|
||||||
|
setProperty( "repoKey", "jcenter" )
|
||||||
|
} )
|
||||||
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ build script:
|
|||||||
|
|
||||||
groupId: com.formdev
|
groupId: com.formdev
|
||||||
artifactId: flatlaf-swingx
|
artifactId: flatlaf-swingx
|
||||||
version: 0.25.1
|
version: (see button below)
|
||||||
|
|
||||||
Otherwise download `flatlaf-swingx-<version>.jar` here:
|
Otherwise download `flatlaf-swingx-<version>.jar` here:
|
||||||
|
|
||||||
|
|||||||
@@ -14,12 +14,11 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
version = rootProject.version
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
`java-library`
|
`java-library`
|
||||||
`maven-publish`
|
`maven-publish`
|
||||||
id( "com.jfrog.bintray" ) version "1.8.4"
|
id( "com.jfrog.bintray" ) version "1.8.4"
|
||||||
|
id( "com.jfrog.artifactory" ) version "4.13.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
@@ -119,3 +118,25 @@ bintray {
|
|||||||
publish = true
|
publish = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
artifactory {
|
||||||
|
setContextUrl( "https://oss.jfrog.org" )
|
||||||
|
|
||||||
|
publish( closureOf<org.jfrog.gradle.plugin.artifactory.dsl.PublisherConfig> {
|
||||||
|
repository( delegateClosureOf<groovy.lang.GroovyObject> {
|
||||||
|
setProperty( "repoKey", "oss-snapshot-local" )
|
||||||
|
setProperty( "username", System.getenv( "BINTRAY_USER" ) ?: System.getProperty( "bintray.user" ) )
|
||||||
|
setProperty( "password", System.getenv( "BINTRAY_KEY" ) ?: System.getProperty( "bintray.key" ) )
|
||||||
|
} )
|
||||||
|
|
||||||
|
defaults( delegateClosureOf<groovy.lang.GroovyObject> {
|
||||||
|
invokeMethod( "publications", "maven" )
|
||||||
|
setProperty( "publishArtifacts", true )
|
||||||
|
setProperty( "publishPom", true )
|
||||||
|
} )
|
||||||
|
} )
|
||||||
|
|
||||||
|
resolve( delegateClosureOf<org.jfrog.gradle.plugin.artifactory.dsl.ResolverConfig> {
|
||||||
|
setProperty( "repoKey", "jcenter" )
|
||||||
|
} )
|
||||||
|
}
|
||||||
|
|||||||
@@ -14,8 +14,6 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
version = rootProject.version
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
`java-library`
|
`java-library`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,6 +54,15 @@ public class FlatComponentsTest
|
|||||||
progressBar4.setIndeterminate( indeterminate );
|
progressBar4.setIndeterminate( indeterminate );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void contentAreaFilledChanged() {
|
||||||
|
boolean contentAreaFilled = contentAreaFilledCheckBox.isSelected();
|
||||||
|
|
||||||
|
for( Component c : getComponents() ) {
|
||||||
|
if( c instanceof AbstractButton )
|
||||||
|
((AbstractButton)c).setContentAreaFilled( contentAreaFilled );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void initComponents() {
|
private void initComponents() {
|
||||||
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
|
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
|
||||||
JLabel labelLabel = new JLabel();
|
JLabel labelLabel = new JLabel();
|
||||||
@@ -90,6 +99,7 @@ public class FlatComponentsTest
|
|||||||
JRadioButton radioButton2 = new JRadioButton();
|
JRadioButton radioButton2 = new JRadioButton();
|
||||||
JRadioButton radioButton3 = new JRadioButton();
|
JRadioButton radioButton3 = new JRadioButton();
|
||||||
JRadioButton radioButton4 = new JRadioButton();
|
JRadioButton radioButton4 = new JRadioButton();
|
||||||
|
contentAreaFilledCheckBox = new JCheckBox();
|
||||||
JLabel comboBoxLabel = new JLabel();
|
JLabel comboBoxLabel = new JLabel();
|
||||||
JComboBox<String> comboBox1 = new JComboBox<>();
|
JComboBox<String> comboBox1 = new JComboBox<>();
|
||||||
JComboBox<String> comboBox2 = new JComboBox<>();
|
JComboBox<String> comboBox2 = new JComboBox<>();
|
||||||
@@ -408,6 +418,12 @@ public class FlatComponentsTest
|
|||||||
radioButton4.setEnabled(false);
|
radioButton4.setEnabled(false);
|
||||||
add(radioButton4, "cell 4 4");
|
add(radioButton4, "cell 4 4");
|
||||||
|
|
||||||
|
//---- contentAreaFilledCheckBox ----
|
||||||
|
contentAreaFilledCheckBox.setText("contentAreaFilled");
|
||||||
|
contentAreaFilledCheckBox.setSelected(true);
|
||||||
|
contentAreaFilledCheckBox.addActionListener(e -> contentAreaFilledChanged());
|
||||||
|
add(contentAreaFilledCheckBox, "cell 5 4");
|
||||||
|
|
||||||
//---- comboBoxLabel ----
|
//---- comboBoxLabel ----
|
||||||
comboBoxLabel.setText("JComboBox:");
|
comboBoxLabel.setText("JComboBox:");
|
||||||
add(comboBoxLabel, "cell 0 5");
|
add(comboBoxLabel, "cell 0 5");
|
||||||
@@ -974,6 +990,7 @@ public class FlatComponentsTest
|
|||||||
}
|
}
|
||||||
|
|
||||||
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
|
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
|
||||||
|
private JCheckBox contentAreaFilledCheckBox;
|
||||||
private JProgressBar progressBar3;
|
private JProgressBar progressBar3;
|
||||||
private JProgressBar progressBar4;
|
private JProgressBar progressBar4;
|
||||||
private JSlider slider3;
|
private JSlider slider3;
|
||||||
|
|||||||
@@ -258,6 +258,17 @@ new FormModel {
|
|||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 4 4"
|
"value": "cell 4 4"
|
||||||
} )
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||||
|
name: "contentAreaFilledCheckBox"
|
||||||
|
"text": "contentAreaFilled"
|
||||||
|
"selected": true
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.variableLocal": false
|
||||||
|
}
|
||||||
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "contentAreaFilledChanged", false ) )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 5 4"
|
||||||
|
} )
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
name: "comboBoxLabel"
|
name: "comboBoxLabel"
|
||||||
"text": "JComboBox:"
|
"text": "JComboBox:"
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ package com.formdev.flatlaf.testing;
|
|||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.beans.PropertyVetoException;
|
import java.beans.PropertyVetoException;
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
import com.formdev.flatlaf.icons.FlatFileViewFloppyDriveIcon;
|
||||||
import com.formdev.flatlaf.util.UIScale;
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
import net.miginfocom.swing.*;
|
import net.miginfocom.swing.*;
|
||||||
|
|
||||||
@@ -49,10 +50,25 @@ public class FlatInternalFrameTest
|
|||||||
maximizableCheckBox.isSelected(),
|
maximizableCheckBox.isSelected(),
|
||||||
iconifiableCheckBox.isSelected() );
|
iconifiableCheckBox.isSelected() );
|
||||||
|
|
||||||
JPanel panel = new JPanel();
|
if( iconCheckBox.isSelected() )
|
||||||
panel.setBackground( new Color( (int) (Math.random() * 0xffffff) ) );
|
internalFrame.setFrameIcon( new FlatFileViewFloppyDriveIcon() );
|
||||||
|
|
||||||
|
JPanel panel = new JPanel() {
|
||||||
|
private final Color color = new Color( (int) (Math.random() * 0xffffff) | 0x20000000, true );
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void paintComponent( Graphics g ) {
|
||||||
|
super.paintComponent( g );
|
||||||
|
|
||||||
|
g.setColor( color );
|
||||||
|
g.fillRect( 20, 20, getWidth() - 40, getHeight() - 40 );
|
||||||
|
}
|
||||||
|
};
|
||||||
internalFrame.setContentPane( panel );
|
internalFrame.setContentPane( panel );
|
||||||
|
|
||||||
|
if( !palette.getComponentOrientation().isLeftToRight() )
|
||||||
|
internalFrame.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT );
|
||||||
|
|
||||||
internalFrame.setBounds( frameX + UIScale.scale( GAP ) * (frameCount % 10),
|
internalFrame.setBounds( frameX + UIScale.scale( GAP ) * (frameCount % 10),
|
||||||
frameY + UIScale.scale( GAP ) * (frameCount % 10), UIScale.scale( 200 ), UIScale.scale( 200 ) );
|
frameY + UIScale.scale( GAP ) * (frameCount % 10), UIScale.scale( 200 ), UIScale.scale( 200 ) );
|
||||||
desktopPane.add( internalFrame, JLayeredPane.DEFAULT_LAYER );
|
desktopPane.add( internalFrame, JLayeredPane.DEFAULT_LAYER );
|
||||||
@@ -76,6 +92,7 @@ public class FlatInternalFrameTest
|
|||||||
closableCheckBox = new JCheckBox();
|
closableCheckBox = new JCheckBox();
|
||||||
iconifiableCheckBox = new JCheckBox();
|
iconifiableCheckBox = new JCheckBox();
|
||||||
maximizableCheckBox = new JCheckBox();
|
maximizableCheckBox = new JCheckBox();
|
||||||
|
iconCheckBox = new JCheckBox();
|
||||||
titleLabel = new JLabel();
|
titleLabel = new JLabel();
|
||||||
titleField = new JTextField();
|
titleField = new JTextField();
|
||||||
createFrameButton = new JButton();
|
createFrameButton = new JButton();
|
||||||
@@ -107,6 +124,7 @@ public class FlatInternalFrameTest
|
|||||||
// rows
|
// rows
|
||||||
"[fill]0" +
|
"[fill]0" +
|
||||||
"[]0" +
|
"[]0" +
|
||||||
|
"[]0" +
|
||||||
"[]unrel" +
|
"[]unrel" +
|
||||||
"[]unrel"));
|
"[]unrel"));
|
||||||
|
|
||||||
@@ -130,18 +148,22 @@ public class FlatInternalFrameTest
|
|||||||
maximizableCheckBox.setSelected(true);
|
maximizableCheckBox.setSelected(true);
|
||||||
paletteContentPane.add(maximizableCheckBox, "cell 1 1,alignx left,growx 0");
|
paletteContentPane.add(maximizableCheckBox, "cell 1 1,alignx left,growx 0");
|
||||||
|
|
||||||
|
//---- iconCheckBox ----
|
||||||
|
iconCheckBox.setText("Frame icon");
|
||||||
|
paletteContentPane.add(iconCheckBox, "cell 0 2");
|
||||||
|
|
||||||
//---- titleLabel ----
|
//---- titleLabel ----
|
||||||
titleLabel.setText("Frame title:");
|
titleLabel.setText("Frame title:");
|
||||||
paletteContentPane.add(titleLabel, "cell 0 2");
|
paletteContentPane.add(titleLabel, "cell 0 3");
|
||||||
paletteContentPane.add(titleField, "cell 1 2");
|
paletteContentPane.add(titleField, "cell 1 3");
|
||||||
|
|
||||||
//---- createFrameButton ----
|
//---- createFrameButton ----
|
||||||
createFrameButton.setText("Create Frame");
|
createFrameButton.setText("Create Frame");
|
||||||
createFrameButton.addActionListener(e -> createInternalFrame());
|
createFrameButton.addActionListener(e -> createInternalFrame());
|
||||||
paletteContentPane.add(createFrameButton, "cell 1 3,alignx right,growx 0");
|
paletteContentPane.add(createFrameButton, "cell 1 4,alignx right,growx 0");
|
||||||
}
|
}
|
||||||
desktopPane.add(palette, JLayeredPane.PALETTE_LAYER);
|
desktopPane.add(palette, JLayeredPane.PALETTE_LAYER);
|
||||||
palette.setBounds(15, 25, 220, 160);
|
palette.setBounds(15, 25, 220, 185);
|
||||||
}
|
}
|
||||||
add(desktopPane, "cell 0 0,width 600,height 600");
|
add(desktopPane, "cell 0 0,width 600,height 600");
|
||||||
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
||||||
@@ -157,6 +179,7 @@ public class FlatInternalFrameTest
|
|||||||
private JCheckBox closableCheckBox;
|
private JCheckBox closableCheckBox;
|
||||||
private JCheckBox iconifiableCheckBox;
|
private JCheckBox iconifiableCheckBox;
|
||||||
private JCheckBox maximizableCheckBox;
|
private JCheckBox maximizableCheckBox;
|
||||||
|
private JCheckBox iconCheckBox;
|
||||||
private JLabel titleLabel;
|
private JLabel titleLabel;
|
||||||
private JTextField titleField;
|
private JTextField titleField;
|
||||||
private JButton createFrameButton;
|
private JButton createFrameButton;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
JFDML JFormDesigner: "7.0.0.0.194" Java: "11.0.2" encoding: "UTF-8"
|
JFDML JFormDesigner: "7.0.0.0.194" Java: "13.0.1" encoding: "UTF-8"
|
||||||
|
|
||||||
new FormModel {
|
new FormModel {
|
||||||
contentType: "form/swing"
|
contentType: "form/swing"
|
||||||
@@ -14,7 +14,7 @@ new FormModel {
|
|||||||
add( new FormContainer( "javax.swing.JInternalFrame", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
add( new FormContainer( "javax.swing.JInternalFrame", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
||||||
"$layoutConstraints": "hidemode 3"
|
"$layoutConstraints": "hidemode 3"
|
||||||
"$columnConstraints": "[fill][fill]"
|
"$columnConstraints": "[fill][fill]"
|
||||||
"$rowConstraints": "[fill]0[]0[]unrel[]unrel"
|
"$rowConstraints": "[fill]0[]0[]0[]unrel[]unrel"
|
||||||
} ) {
|
} ) {
|
||||||
name: "palette"
|
name: "palette"
|
||||||
"visible": true
|
"visible": true
|
||||||
@@ -50,29 +50,35 @@ new FormModel {
|
|||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 1 1,alignx left,growx 0"
|
"value": "cell 1 1,alignx left,growx 0"
|
||||||
} )
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||||
|
name: "iconCheckBox"
|
||||||
|
"text": "Frame icon"
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 2"
|
||||||
|
} )
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
name: "titleLabel"
|
name: "titleLabel"
|
||||||
"text": "Frame title:"
|
"text": "Frame title:"
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 0 2"
|
"value": "cell 0 3"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JTextField" ) {
|
add( new FormComponent( "javax.swing.JTextField" ) {
|
||||||
name: "titleField"
|
name: "titleField"
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 1 2"
|
"value": "cell 1 3"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JButton" ) {
|
add( new FormComponent( "javax.swing.JButton" ) {
|
||||||
name: "createFrameButton"
|
name: "createFrameButton"
|
||||||
"text": "Create Frame"
|
"text": "Create Frame"
|
||||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "createInternalFrame", false ) )
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "createInternalFrame", false ) )
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 1 3,alignx right,growx 0"
|
"value": "cell 1 4,alignx right,growx 0"
|
||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( null ) {
|
}, new FormLayoutConstraints( null ) {
|
||||||
"x": 15
|
"x": 15
|
||||||
"y": 25
|
"y": 25
|
||||||
"width": 220
|
"width": 220
|
||||||
"height": 160
|
"height": 185
|
||||||
"layer": 100
|
"layer": 100
|
||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
|||||||
@@ -403,8 +403,8 @@ public class FlatTestFrame
|
|||||||
|
|
||||||
private void updateComponentsRecur( Container container, BiConsumer<Component, String> action ) {
|
private void updateComponentsRecur( Container container, BiConsumer<Component, String> action ) {
|
||||||
for( Component c : container.getComponents() ) {
|
for( Component c : container.getComponents() ) {
|
||||||
if( c instanceof JPanel ) {
|
if( c instanceof JPanel || c instanceof JDesktopPane ) {
|
||||||
updateComponentsRecur( (JPanel) c, action );
|
updateComponentsRecur( (Container) c, action );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,339 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.testing;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import javax.swing.text.DefaultEditorKit;
|
||||||
|
import net.miginfocom.swing.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatTextComponentsTest
|
||||||
|
extends FlatTestPanel
|
||||||
|
{
|
||||||
|
public static void main( String[] args ) {
|
||||||
|
SwingUtilities.invokeLater( () -> {
|
||||||
|
FlatTestFrame frame = FlatTestFrame.create( args, "FlatTextComponentsTest" );
|
||||||
|
frame.showFrame( FlatTextComponentsTest::new );
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
|
||||||
|
FlatTextComponentsTest() {
|
||||||
|
initComponents();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void changeText() {
|
||||||
|
textField1.setText( "new text" );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initComponents() {
|
||||||
|
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
|
||||||
|
JLabel textFieldLabel = new JLabel();
|
||||||
|
textField1 = new JTextField();
|
||||||
|
JTextField textField3 = new JTextField();
|
||||||
|
JTextField textField2 = new JTextField();
|
||||||
|
JButton button1 = new JButton();
|
||||||
|
JLabel formattedTextFieldLabel = new JLabel();
|
||||||
|
JFormattedTextField formattedTextField1 = new JFormattedTextField();
|
||||||
|
JFormattedTextField formattedTextField3 = new JFormattedTextField();
|
||||||
|
JLabel passwordFieldLabel = new JLabel();
|
||||||
|
JPasswordField passwordField1 = new JPasswordField();
|
||||||
|
JPasswordField passwordField3 = new JPasswordField();
|
||||||
|
JLabel textAreaLabel = new JLabel();
|
||||||
|
JScrollPane scrollPane1 = new JScrollPane();
|
||||||
|
JTextArea textArea1 = new JTextArea();
|
||||||
|
JScrollPane scrollPane3 = new JScrollPane();
|
||||||
|
JTextArea textArea3 = new JTextArea();
|
||||||
|
JLabel editorPaneLabel = new JLabel();
|
||||||
|
JScrollPane scrollPane5 = new JScrollPane();
|
||||||
|
JEditorPane editorPane1 = new JEditorPane();
|
||||||
|
JScrollPane scrollPane7 = new JScrollPane();
|
||||||
|
JEditorPane editorPane3 = new JEditorPane();
|
||||||
|
JLabel textPaneLabel = new JLabel();
|
||||||
|
JScrollPane scrollPane9 = new JScrollPane();
|
||||||
|
JTextPane textPane1 = new JTextPane();
|
||||||
|
JScrollPane scrollPane11 = new JScrollPane();
|
||||||
|
JTextPane textPane3 = new JTextPane();
|
||||||
|
JLabel comboBoxLabel = new JLabel();
|
||||||
|
JComboBox<String> comboBox1 = new JComboBox<>();
|
||||||
|
JComboBox<String> comboBox3 = new JComboBox<>();
|
||||||
|
JLabel spinnerLabel = new JLabel();
|
||||||
|
JSpinner spinner1 = new JSpinner();
|
||||||
|
JPopupMenu popupMenu1 = new JPopupMenu();
|
||||||
|
JMenuItem cutMenuItem = new JMenuItem();
|
||||||
|
JMenuItem copyMenuItem = new JMenuItem();
|
||||||
|
JMenuItem pasteMenuItem = new JMenuItem();
|
||||||
|
|
||||||
|
//======== this ========
|
||||||
|
setName("this");
|
||||||
|
setLayout(new MigLayout(
|
||||||
|
"ltr,insets dialog,hidemode 3",
|
||||||
|
// columns
|
||||||
|
"[]" +
|
||||||
|
"[]" +
|
||||||
|
"[::100]" +
|
||||||
|
"[100,fill]" +
|
||||||
|
"[fill]",
|
||||||
|
// rows
|
||||||
|
"[]" +
|
||||||
|
"[]" +
|
||||||
|
"[]" +
|
||||||
|
"[50,fill]" +
|
||||||
|
"[50,fill]" +
|
||||||
|
"[50,fill]" +
|
||||||
|
"[]" +
|
||||||
|
"[]"));
|
||||||
|
|
||||||
|
//---- textFieldLabel ----
|
||||||
|
textFieldLabel.setText("JTextField:");
|
||||||
|
textFieldLabel.setDisplayedMnemonic('T');
|
||||||
|
textFieldLabel.setLabelFor(textField1);
|
||||||
|
textFieldLabel.setName("textFieldLabel");
|
||||||
|
add(textFieldLabel, "cell 0 0");
|
||||||
|
|
||||||
|
//---- textField1 ----
|
||||||
|
textField1.setText("editable");
|
||||||
|
textField1.setComponentPopupMenu(popupMenu1);
|
||||||
|
textField1.setName("textField1");
|
||||||
|
add(textField1, "cell 1 0,growx");
|
||||||
|
|
||||||
|
//---- textField3 ----
|
||||||
|
textField3.setText("longer text for testing horizontal scrolling");
|
||||||
|
textField3.setComponentPopupMenu(popupMenu1);
|
||||||
|
textField3.setName("textField3");
|
||||||
|
add(textField3, "cell 2 0,growx");
|
||||||
|
|
||||||
|
//---- textField2 ----
|
||||||
|
textField2.setText("partly selected");
|
||||||
|
textField2.setSelectionStart(1);
|
||||||
|
textField2.setSelectionEnd(4);
|
||||||
|
textField2.setComponentPopupMenu(popupMenu1);
|
||||||
|
textField2.setName("textField2");
|
||||||
|
add(textField2, "cell 3 0");
|
||||||
|
|
||||||
|
//---- button1 ----
|
||||||
|
button1.setText("change text");
|
||||||
|
button1.setName("button1");
|
||||||
|
button1.addActionListener(e -> changeText());
|
||||||
|
add(button1, "cell 4 0");
|
||||||
|
|
||||||
|
//---- formattedTextFieldLabel ----
|
||||||
|
formattedTextFieldLabel.setText("JFormattedTextField:");
|
||||||
|
formattedTextFieldLabel.setDisplayedMnemonic('F');
|
||||||
|
formattedTextFieldLabel.setLabelFor(formattedTextField1);
|
||||||
|
formattedTextFieldLabel.setName("formattedTextFieldLabel");
|
||||||
|
add(formattedTextFieldLabel, "cell 0 1");
|
||||||
|
|
||||||
|
//---- formattedTextField1 ----
|
||||||
|
formattedTextField1.setText("editable");
|
||||||
|
formattedTextField1.setComponentPopupMenu(popupMenu1);
|
||||||
|
formattedTextField1.setName("formattedTextField1");
|
||||||
|
add(formattedTextField1, "cell 1 1,growx");
|
||||||
|
|
||||||
|
//---- formattedTextField3 ----
|
||||||
|
formattedTextField3.setText("longer text for testing horizontal scrolling");
|
||||||
|
formattedTextField3.setComponentPopupMenu(popupMenu1);
|
||||||
|
formattedTextField3.setName("formattedTextField3");
|
||||||
|
add(formattedTextField3, "cell 2 1,growx");
|
||||||
|
|
||||||
|
//---- passwordFieldLabel ----
|
||||||
|
passwordFieldLabel.setText("JPasswordField:");
|
||||||
|
passwordFieldLabel.setDisplayedMnemonic('P');
|
||||||
|
passwordFieldLabel.setLabelFor(passwordField1);
|
||||||
|
passwordFieldLabel.setName("passwordFieldLabel");
|
||||||
|
add(passwordFieldLabel, "cell 0 2");
|
||||||
|
|
||||||
|
//---- passwordField1 ----
|
||||||
|
passwordField1.setText("editable");
|
||||||
|
passwordField1.setComponentPopupMenu(popupMenu1);
|
||||||
|
passwordField1.setName("passwordField1");
|
||||||
|
add(passwordField1, "cell 1 2,growx");
|
||||||
|
|
||||||
|
//---- passwordField3 ----
|
||||||
|
passwordField3.setText("longer text for testing horizontal scrolling");
|
||||||
|
passwordField3.setComponentPopupMenu(popupMenu1);
|
||||||
|
passwordField3.setName("passwordField3");
|
||||||
|
add(passwordField3, "cell 2 2,growx");
|
||||||
|
|
||||||
|
//---- textAreaLabel ----
|
||||||
|
textAreaLabel.setText("JTextArea:");
|
||||||
|
textAreaLabel.setDisplayedMnemonic('A');
|
||||||
|
textAreaLabel.setLabelFor(textArea1);
|
||||||
|
textAreaLabel.setName("textAreaLabel");
|
||||||
|
add(textAreaLabel, "cell 0 3");
|
||||||
|
|
||||||
|
//======== scrollPane1 ========
|
||||||
|
{
|
||||||
|
scrollPane1.setName("scrollPane1");
|
||||||
|
|
||||||
|
//---- textArea1 ----
|
||||||
|
textArea1.setText("editable");
|
||||||
|
textArea1.setComponentPopupMenu(popupMenu1);
|
||||||
|
textArea1.setName("textArea1");
|
||||||
|
scrollPane1.setViewportView(textArea1);
|
||||||
|
}
|
||||||
|
add(scrollPane1, "cell 1 3,growx");
|
||||||
|
|
||||||
|
//======== scrollPane3 ========
|
||||||
|
{
|
||||||
|
scrollPane3.setName("scrollPane3");
|
||||||
|
|
||||||
|
//---- textArea3 ----
|
||||||
|
textArea3.setText("longer text for testing horizontal scrolling");
|
||||||
|
textArea3.setComponentPopupMenu(popupMenu1);
|
||||||
|
textArea3.setName("textArea3");
|
||||||
|
scrollPane3.setViewportView(textArea3);
|
||||||
|
}
|
||||||
|
add(scrollPane3, "cell 2 3,growx");
|
||||||
|
|
||||||
|
//---- editorPaneLabel ----
|
||||||
|
editorPaneLabel.setText("JEditorPane");
|
||||||
|
editorPaneLabel.setDisplayedMnemonic('J');
|
||||||
|
editorPaneLabel.setLabelFor(editorPane1);
|
||||||
|
editorPaneLabel.setName("editorPaneLabel");
|
||||||
|
add(editorPaneLabel, "cell 0 4");
|
||||||
|
|
||||||
|
//======== scrollPane5 ========
|
||||||
|
{
|
||||||
|
scrollPane5.setName("scrollPane5");
|
||||||
|
|
||||||
|
//---- editorPane1 ----
|
||||||
|
editorPane1.setText("editable");
|
||||||
|
editorPane1.setComponentPopupMenu(popupMenu1);
|
||||||
|
editorPane1.setName("editorPane1");
|
||||||
|
scrollPane5.setViewportView(editorPane1);
|
||||||
|
}
|
||||||
|
add(scrollPane5, "cell 1 4,growx");
|
||||||
|
|
||||||
|
//======== scrollPane7 ========
|
||||||
|
{
|
||||||
|
scrollPane7.setName("scrollPane7");
|
||||||
|
|
||||||
|
//---- editorPane3 ----
|
||||||
|
editorPane3.setText("longer text for testing horizontal scrolling");
|
||||||
|
editorPane3.setComponentPopupMenu(popupMenu1);
|
||||||
|
editorPane3.setName("editorPane3");
|
||||||
|
scrollPane7.setViewportView(editorPane3);
|
||||||
|
}
|
||||||
|
add(scrollPane7, "cell 2 4,growx");
|
||||||
|
|
||||||
|
//---- textPaneLabel ----
|
||||||
|
textPaneLabel.setText("JTextPane:");
|
||||||
|
textPaneLabel.setDisplayedMnemonic('N');
|
||||||
|
textPaneLabel.setLabelFor(textPane1);
|
||||||
|
textPaneLabel.setName("textPaneLabel");
|
||||||
|
add(textPaneLabel, "cell 0 5");
|
||||||
|
|
||||||
|
//======== scrollPane9 ========
|
||||||
|
{
|
||||||
|
scrollPane9.setName("scrollPane9");
|
||||||
|
|
||||||
|
//---- textPane1 ----
|
||||||
|
textPane1.setText("editable");
|
||||||
|
textPane1.setComponentPopupMenu(popupMenu1);
|
||||||
|
textPane1.setName("textPane1");
|
||||||
|
scrollPane9.setViewportView(textPane1);
|
||||||
|
}
|
||||||
|
add(scrollPane9, "cell 1 5,growx");
|
||||||
|
|
||||||
|
//======== scrollPane11 ========
|
||||||
|
{
|
||||||
|
scrollPane11.setName("scrollPane11");
|
||||||
|
|
||||||
|
//---- textPane3 ----
|
||||||
|
textPane3.setText("longer text for testing horizontal scrolling");
|
||||||
|
textPane3.setComponentPopupMenu(popupMenu1);
|
||||||
|
textPane3.setName("textPane3");
|
||||||
|
scrollPane11.setViewportView(textPane3);
|
||||||
|
}
|
||||||
|
add(scrollPane11, "cell 2 5,growx");
|
||||||
|
|
||||||
|
//---- comboBoxLabel ----
|
||||||
|
comboBoxLabel.setText("JComboBox:");
|
||||||
|
comboBoxLabel.setDisplayedMnemonic('C');
|
||||||
|
comboBoxLabel.setLabelFor(comboBox1);
|
||||||
|
comboBoxLabel.setName("comboBoxLabel");
|
||||||
|
add(comboBoxLabel, "cell 0 6");
|
||||||
|
|
||||||
|
//---- comboBox1 ----
|
||||||
|
comboBox1.setEditable(true);
|
||||||
|
comboBox1.setModel(new DefaultComboBoxModel<>(new String[] {
|
||||||
|
"editable",
|
||||||
|
"a",
|
||||||
|
"bb",
|
||||||
|
"ccc"
|
||||||
|
}));
|
||||||
|
comboBox1.setComponentPopupMenu(popupMenu1);
|
||||||
|
comboBox1.setName("comboBox1");
|
||||||
|
add(comboBox1, "cell 1 6,growx");
|
||||||
|
|
||||||
|
//---- comboBox3 ----
|
||||||
|
comboBox3.setModel(new DefaultComboBoxModel<>(new String[] {
|
||||||
|
"longer text for testing horizontal scrolling",
|
||||||
|
"a",
|
||||||
|
"bb",
|
||||||
|
"ccc"
|
||||||
|
}));
|
||||||
|
comboBox3.setEditable(true);
|
||||||
|
comboBox3.setPrototypeDisplayValue("12345");
|
||||||
|
comboBox3.setComponentPopupMenu(popupMenu1);
|
||||||
|
comboBox3.setName("comboBox3");
|
||||||
|
add(comboBox3, "cell 2 6,growx");
|
||||||
|
|
||||||
|
//---- spinnerLabel ----
|
||||||
|
spinnerLabel.setText("JSpinner:");
|
||||||
|
spinnerLabel.setDisplayedMnemonic('S');
|
||||||
|
spinnerLabel.setLabelFor(spinner1);
|
||||||
|
spinnerLabel.setName("spinnerLabel");
|
||||||
|
add(spinnerLabel, "cell 0 7");
|
||||||
|
|
||||||
|
//---- spinner1 ----
|
||||||
|
spinner1.setComponentPopupMenu(popupMenu1);
|
||||||
|
spinner1.setName("spinner1");
|
||||||
|
add(spinner1, "cell 1 7,growx");
|
||||||
|
|
||||||
|
//======== popupMenu1 ========
|
||||||
|
{
|
||||||
|
popupMenu1.setName("popupMenu1");
|
||||||
|
|
||||||
|
//---- cutMenuItem ----
|
||||||
|
cutMenuItem.setText("Cut");
|
||||||
|
cutMenuItem.setName("cutMenuItem");
|
||||||
|
popupMenu1.add(cutMenuItem);
|
||||||
|
|
||||||
|
//---- copyMenuItem ----
|
||||||
|
copyMenuItem.setText("Copy");
|
||||||
|
copyMenuItem.setName("copyMenuItem");
|
||||||
|
popupMenu1.add(copyMenuItem);
|
||||||
|
|
||||||
|
//---- pasteMenuItem ----
|
||||||
|
pasteMenuItem.setText("Paste");
|
||||||
|
pasteMenuItem.setName("pasteMenuItem");
|
||||||
|
popupMenu1.add(pasteMenuItem);
|
||||||
|
}
|
||||||
|
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
||||||
|
|
||||||
|
cutMenuItem.addActionListener( new DefaultEditorKit.CutAction() );
|
||||||
|
copyMenuItem.addActionListener( new DefaultEditorKit.CopyAction() );
|
||||||
|
pasteMenuItem.addActionListener( new DefaultEditorKit.PasteAction() );
|
||||||
|
}
|
||||||
|
|
||||||
|
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
|
||||||
|
private JTextField textField1;
|
||||||
|
// JFormDesigner - End of variables declaration //GEN-END:variables
|
||||||
|
}
|
||||||
@@ -0,0 +1,259 @@
|
|||||||
|
JFDML JFormDesigner: "7.0.0.0.194" Java: "13.0.1" encoding: "UTF-8"
|
||||||
|
|
||||||
|
new FormModel {
|
||||||
|
contentType: "form/swing"
|
||||||
|
root: new FormRoot {
|
||||||
|
"$setComponentNames": true
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.defaultVariableLocal": true
|
||||||
|
}
|
||||||
|
add( new FormContainer( "com.formdev.flatlaf.testing.FlatTestPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
||||||
|
"$layoutConstraints": "ltr,insets dialog,hidemode 3"
|
||||||
|
"$columnConstraints": "[][][::100][100,fill][fill]"
|
||||||
|
"$rowConstraints": "[][][][50,fill][50,fill][50,fill][][]"
|
||||||
|
} ) {
|
||||||
|
name: "this"
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "textFieldLabel"
|
||||||
|
"text": "JTextField:"
|
||||||
|
"displayedMnemonic": 84
|
||||||
|
"labelFor": new FormReference( "textField1" )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 0"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JTextField" ) {
|
||||||
|
name: "textField1"
|
||||||
|
"text": "editable"
|
||||||
|
"componentPopupMenu": &FormReference0 new FormReference( "popupMenu1" )
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.variableLocal": false
|
||||||
|
}
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 1 0,growx"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JTextField" ) {
|
||||||
|
name: "textField3"
|
||||||
|
"text": "longer text for testing horizontal scrolling"
|
||||||
|
"componentPopupMenu": #FormReference0
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 2 0,growx"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JTextField" ) {
|
||||||
|
name: "textField2"
|
||||||
|
"text": "partly selected"
|
||||||
|
"selectionStart": 1
|
||||||
|
"selectionEnd": 4
|
||||||
|
"componentPopupMenu": #FormReference0
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 3 0"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JButton" ) {
|
||||||
|
name: "button1"
|
||||||
|
"text": "change text"
|
||||||
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "changeText", false ) )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 4 0"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "formattedTextFieldLabel"
|
||||||
|
"text": "JFormattedTextField:"
|
||||||
|
"displayedMnemonic": 70
|
||||||
|
"labelFor": new FormReference( "formattedTextField1" )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 1"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JFormattedTextField" ) {
|
||||||
|
name: "formattedTextField1"
|
||||||
|
"text": "editable"
|
||||||
|
"componentPopupMenu": #FormReference0
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 1 1,growx"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JFormattedTextField" ) {
|
||||||
|
name: "formattedTextField3"
|
||||||
|
"text": "longer text for testing horizontal scrolling"
|
||||||
|
"componentPopupMenu": #FormReference0
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 2 1,growx"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "passwordFieldLabel"
|
||||||
|
"text": "JPasswordField:"
|
||||||
|
"displayedMnemonic": 80
|
||||||
|
"labelFor": new FormReference( "passwordField1" )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 2"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JPasswordField" ) {
|
||||||
|
name: "passwordField1"
|
||||||
|
"text": "editable"
|
||||||
|
"componentPopupMenu": #FormReference0
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 1 2,growx"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JPasswordField" ) {
|
||||||
|
name: "passwordField3"
|
||||||
|
"text": "longer text for testing horizontal scrolling"
|
||||||
|
"componentPopupMenu": #FormReference0
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 2 2,growx"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "textAreaLabel"
|
||||||
|
"text": "JTextArea:"
|
||||||
|
"displayedMnemonic": 65
|
||||||
|
"labelFor": new FormReference( "textArea1" )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 3"
|
||||||
|
} )
|
||||||
|
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
||||||
|
name: "scrollPane1"
|
||||||
|
add( new FormComponent( "javax.swing.JTextArea" ) {
|
||||||
|
name: "textArea1"
|
||||||
|
"text": "editable"
|
||||||
|
"componentPopupMenu": #FormReference0
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 1 3,growx"
|
||||||
|
} )
|
||||||
|
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
||||||
|
name: "scrollPane3"
|
||||||
|
add( new FormComponent( "javax.swing.JTextArea" ) {
|
||||||
|
name: "textArea3"
|
||||||
|
"text": "longer text for testing horizontal scrolling"
|
||||||
|
"componentPopupMenu": #FormReference0
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 2 3,growx"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "editorPaneLabel"
|
||||||
|
"text": "JEditorPane"
|
||||||
|
"displayedMnemonic": 74
|
||||||
|
"labelFor": new FormReference( "editorPane1" )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 4"
|
||||||
|
} )
|
||||||
|
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
||||||
|
name: "scrollPane5"
|
||||||
|
add( new FormComponent( "javax.swing.JEditorPane" ) {
|
||||||
|
name: "editorPane1"
|
||||||
|
"text": "editable"
|
||||||
|
"componentPopupMenu": #FormReference0
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 1 4,growx"
|
||||||
|
} )
|
||||||
|
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
||||||
|
name: "scrollPane7"
|
||||||
|
add( new FormComponent( "javax.swing.JEditorPane" ) {
|
||||||
|
name: "editorPane3"
|
||||||
|
"text": "longer text for testing horizontal scrolling"
|
||||||
|
"componentPopupMenu": #FormReference0
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 2 4,growx"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "textPaneLabel"
|
||||||
|
"text": "JTextPane:"
|
||||||
|
"displayedMnemonic": 78
|
||||||
|
"labelFor": new FormReference( "textPane1" )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 5"
|
||||||
|
} )
|
||||||
|
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
||||||
|
name: "scrollPane9"
|
||||||
|
add( new FormComponent( "javax.swing.JTextPane" ) {
|
||||||
|
name: "textPane1"
|
||||||
|
"text": "editable"
|
||||||
|
"componentPopupMenu": #FormReference0
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 1 5,growx"
|
||||||
|
} )
|
||||||
|
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
||||||
|
name: "scrollPane11"
|
||||||
|
add( new FormComponent( "javax.swing.JTextPane" ) {
|
||||||
|
name: "textPane3"
|
||||||
|
"text": "longer text for testing horizontal scrolling"
|
||||||
|
"componentPopupMenu": #FormReference0
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 2 5,growx"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "comboBoxLabel"
|
||||||
|
"text": "JComboBox:"
|
||||||
|
"displayedMnemonic": 67
|
||||||
|
"labelFor": new FormReference( "comboBox1" )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 6"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JComboBox" ) {
|
||||||
|
name: "comboBox1"
|
||||||
|
"editable": true
|
||||||
|
"model": new javax.swing.DefaultComboBoxModel {
|
||||||
|
selectedItem: "editable"
|
||||||
|
addElement( "editable" )
|
||||||
|
addElement( "a" )
|
||||||
|
addElement( "bb" )
|
||||||
|
addElement( "ccc" )
|
||||||
|
}
|
||||||
|
"componentPopupMenu": #FormReference0
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 1 6,growx"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JComboBox" ) {
|
||||||
|
name: "comboBox3"
|
||||||
|
"model": new javax.swing.DefaultComboBoxModel {
|
||||||
|
selectedItem: "longer text for testing horizontal scrolling"
|
||||||
|
addElement( "longer text for testing horizontal scrolling" )
|
||||||
|
addElement( "a" )
|
||||||
|
addElement( "bb" )
|
||||||
|
addElement( "ccc" )
|
||||||
|
}
|
||||||
|
"editable": true
|
||||||
|
"prototypeDisplayValue": "12345"
|
||||||
|
"componentPopupMenu": #FormReference0
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 2 6,growx"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "spinnerLabel"
|
||||||
|
"text": "JSpinner:"
|
||||||
|
"displayedMnemonic": 83
|
||||||
|
"labelFor": new FormReference( "spinner1" )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 7"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JSpinner" ) {
|
||||||
|
name: "spinner1"
|
||||||
|
"componentPopupMenu": #FormReference0
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 1 7,growx"
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( null ) {
|
||||||
|
"location": new java.awt.Point( 0, 0 )
|
||||||
|
"size": new java.awt.Dimension( 530, 340 )
|
||||||
|
} )
|
||||||
|
add( new FormContainer( "javax.swing.JPopupMenu", new FormLayoutManager( class javax.swing.JPopupMenu ) ) {
|
||||||
|
name: "popupMenu1"
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "cutMenuItem"
|
||||||
|
"text": "Cut"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "copyMenuItem"
|
||||||
|
"text": "Copy"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "pasteMenuItem"
|
||||||
|
"text": "Paste"
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( null ) {
|
||||||
|
"location": new java.awt.Point( 0, 390 )
|
||||||
|
"size": new java.awt.Dimension( 91, 87 )
|
||||||
|
} )
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -24,6 +24,7 @@
|
|||||||
@selectionInactiveForeground=#ffffff
|
@selectionInactiveForeground=#ffffff
|
||||||
@disabledText=#000088
|
@disabledText=#000088
|
||||||
@textComponentBackground=#ffffff
|
@textComponentBackground=#ffffff
|
||||||
|
@menuBackground=#fff
|
||||||
@cellFocusColor=#ff0000
|
@cellFocusColor=#ff0000
|
||||||
@icon=#afafaf
|
@icon=#afafaf
|
||||||
|
|
||||||
@@ -129,11 +130,39 @@ Component.focusColor=#97c3f3
|
|||||||
#Component.arc=8
|
#Component.arc=8
|
||||||
|
|
||||||
|
|
||||||
|
#---- Desktop ----
|
||||||
|
|
||||||
|
Desktop.background=#afe
|
||||||
|
|
||||||
|
|
||||||
|
#---- DesktopIcon ----
|
||||||
|
|
||||||
|
DesktopIcon.background=darken($Desktop.background,20%)
|
||||||
|
|
||||||
|
|
||||||
#---- HelpButton ----
|
#---- HelpButton ----
|
||||||
|
|
||||||
HelpButton.questionMarkColor=#0000ff
|
HelpButton.questionMarkColor=#0000ff
|
||||||
|
|
||||||
|
|
||||||
|
#---- InternalFrame ----
|
||||||
|
|
||||||
|
InternalFrame.activeTitleBackground=#800
|
||||||
|
InternalFrame.activeTitleForeground=#faa
|
||||||
|
InternalFrame.inactiveTitleBackground=#080
|
||||||
|
InternalFrame.inactiveTitleForeground=#afa
|
||||||
|
|
||||||
|
InternalFrame.activeBorderColor=#f00
|
||||||
|
InternalFrame.inactiveBorderColor=#0f0
|
||||||
|
|
||||||
|
InternalFrame.buttonHoverBackground=#060
|
||||||
|
InternalFrame.buttonPressedBackground=#0a0
|
||||||
|
InternalFrame.closeHoverBackground=#008
|
||||||
|
InternalFrame.closePressedBackground=#00f
|
||||||
|
InternalFrame.closeHoverForeground=#fff
|
||||||
|
InternalFrame.closePressedForeground=#fff
|
||||||
|
|
||||||
|
|
||||||
#---- Label ----
|
#---- Label ----
|
||||||
|
|
||||||
Label.foreground=#008800
|
Label.foreground=#008800
|
||||||
@@ -157,6 +186,7 @@ Menu.icon.disabledArrowColor=#ABABAB
|
|||||||
#---- MenuBar ----
|
#---- MenuBar ----
|
||||||
|
|
||||||
MenuBar.borderColor=#4444ff
|
MenuBar.borderColor=#4444ff
|
||||||
|
MenuBar.hoverBackground=#fdd
|
||||||
|
|
||||||
|
|
||||||
#---- MenuItemCheckBox ----
|
#---- MenuItemCheckBox ----
|
||||||
|
|||||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,5 +1,5 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-bin.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
|||||||
Reference in New Issue
Block a user