Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Bug fix and minimize functionality #22

Open
wants to merge 58 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
5369a9c
WIP
hkmoon Jan 13, 2016
d0c6a8f
Support multi tab in DockFX
hkmoon Jan 19, 2016
fd2a7b1
Use simpler way to add a component
hkmoon Jan 19, 2016
e548167
Fix the bug that TabPane confuses orientation during docking behavior
hkmoon Jan 20, 2016
b6cffbf
Merge pull request #1 from hkmoon/multitab
hkmoon Jan 20, 2016
6608dba
Fix to get the title string rather than textProperty
hkmoon Jan 20, 2016
31e39fb
Merge pull request #2 from hkmoon/customTabPaneSkin
hkmoon Jan 20, 2016
0bac703
Change the header comment to contain the reference and modification d…
hkmoon Jan 21, 2016
19f96c2
Fix the bug of the dockpane is not responding when the node is detach…
hkmoon Jan 22, 2016
e7a8fc9
Add bintray distribution
hkmoon Jan 27, 2016
2890457
Add a tab and select it
hkmoon Mar 15, 2016
a42d457
Add a tab and select it
hkmoon Mar 15, 2016
3ffdebc
Update to 0.1.2
hkmoon Mar 16, 2016
ec05663
Newly added tab is focused
hkmoon Apr 19, 2016
42a80dc
The split size is preserved when changed to ContentTabPane
hkmoon Apr 19, 2016
2d24ea5
When only one tab is left, convert to SplitContentPane
hkmoon Apr 19, 2016
757638f
It is more stable for splitContentPane conversion
hkmoon Apr 19, 2016
2146558
Hide DockPane.dock()/DockPane.undock() from outside access
hkmoon Apr 19, 2016
59799b8
Fixes the splitContentPane conversion
hkmoon Apr 20, 2016
22bc024
Correct isTabbed value
hkmoon Apr 20, 2016
75ffa77
Handle cases when all the sibling nodes are closed
hkmoon Apr 20, 2016
3aa7a50
Double click focuses the tab
hkmoon Apr 20, 2016
f32b386
Version 0.1.3
hkmoon Apr 20, 2016
d2df940
Focus login moved into DockNodeTab
hkmoon Apr 21, 2016
1eb3daf
added gradle build
royerloic Apr 30, 2016
860c967
Merge pull request #1 from hkmoon/hkmoon
hkmoon May 2, 2016
05c886d
new version number
royerloic May 2, 2016
d7dcd77
Change the default position of dock RIGHT when there is no sibling
hkmoon May 9, 2016
e17e61e
Enable Closable Property changed with nice layout of TitleBar
hkmoon May 9, 2016
2cb0210
Version 0.1.5 with some changes
hkmoon May 9, 2016
ec52a4b
Merge pull request #2 from hkmoon/hkmoon
hkmoon May 9, 2016
fd78dff
Upgrade to 0.1.5 version
hkmoon May 9, 2016
1677db2
Update pom.xml according to version 0.1.5
hkmoon May 10, 2016
8c12834
Fixed the wrong positioned dockIndicatorOverlay in some case
hkmoon May 12, 2016
157cddb
Apply @clumsy's fix for "Create a new undocked DockNode"
hkmoon May 18, 2016
3fc4689
Remove unused imports
hkmoon May 18, 2016
8b732de
Add null check for dockAreaDrag
hkmoon May 18, 2016
e5e596f
v0.1.6
hkmoon May 19, 2016
07f3c7d
update build.gradle for publishing
hkmoon May 19, 2016
5e09c12
Use git tag version number for release in build.gradle
hkmoon May 19, 2016
63b0d8d
Include .gradle in .gitignore
hkmoon May 19, 2016
1580438
Add a usecase of using closedProperty() of DockNode
hkmoon May 19, 2016
e4b68e8
Merged FXML support from https://github.com/Kladimir/DockFX
Jul 14, 2016
86729b5
Fix for incorrect calculation of max width of split/tab panes.
Jul 21, 2016
1ebfcc8
Merge pull request #8 from SamCooper/master
hkmoon Aug 16, 2016
712a4ed
Add preference management for dock position/size
hkmoon Aug 18, 2016
993f307
Merge pull request #10 from ClearControl/savePref
hkmoon Aug 18, 2016
cabdf0f
Store/restore the selected tab index
hkmoon Aug 24, 2016
c212b1e
Support delayed opening process for some specific applications
hkmoon Aug 25, 2016
30101af
Fix the bug of not handling undockedNodes properly
hkmoon Aug 29, 2016
cd218e5
Revert the fix of handling undockedNodes properly
hkmoon Aug 29, 2016
5386d94
Should have checked the closedProperty for undockedNodes
hkmoon Aug 30, 2016
125686f
v0.1.7
hkmoon Sep 2, 2016
17f46bd
minor
adibrov Sep 5, 2016
92583e9
Extend demo to show dock pane can be a sub pane of the application.
Oct 12, 2016
bdb1159
Fix overlay not being offset to the correct location when dock pane i…
Oct 12, 2016
35f75d1
Merge pull request #11 from SamCooper/master
hkmoon Oct 13, 2016
ce40509
-Add minimize functionality
MilWolf Oct 17, 2016
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@ dockfxdemo.jar
*.db
.git/modules
/bin
target
target
.gradle
/build/
179 changes: 179 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
plugins { id "com.jfrog.bintray" version "1.2" }

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'maven'
apply plugin: 'maven-publish'


//***********************************************************************************
// JAVA CODE BUILDING

sourceSets
{
main
{
java
{ srcDir 'src/main/java' }
resources
{ srcDir 'src/main/resources' }
}
test
{
java
{ srcDir 'src/test/java' }
resources
{ srcDir 'src/test/resources' }
}
}

sourceCompatibility = 1.8

test
{
testLogging.showStandardStreams = true
testLogging
{ events "passed", "skipped", "failed" }

exclude '**/demo/**'
exclude '**/run/**'

maxHeapSize = "4G"
}

dependencies
{


}

repositories
{
mavenCentral()
maven { url "http://oss.sonatype.org/content/groups/public" }
maven {url "http://dl.bintray.com/clearcontrol/ClearControl" }
}


task sourcesJar(type: Jar, dependsOn:classes) {
classifier = 'sources'
from sourceSets.main.allSource
}

task javadocJar(type: Jar, dependsOn:javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}

if (JavaVersion.current().isJava8Compatible()) {
allprojects {
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
}
}
}

//***********************************************************************************
// PUBLISHING


/*
* Gets the version name from the latest Git tag
*/
def getVersionName = {
->
try
{
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'describe', '--tags'
standardOutput = stdout
}
return stdout.toString().trim()
}
catch(Throwable e)
{
println e
}
}

group = 'org.dockfx'
version = getVersionName()


artifacts
{
archives sourcesJar
archives javadocJar
}

publishing {
publications {
maven(MavenPublication) {
from components.java
artifact sourcesJar { classifier "sources" }
}
}
}

if(hasProperty('bintray_user') && hasProperty('bintray_key') )
{
bintray {

// property must be set in ~/.gradle/gradle.properties
user = bintray_user
key = bintray_key

publications = [
'maven'] //When uploading configuration files
dryRun = false //Whether to run this as dry-run, without deploying
publish = true //If version should be auto published after an upload
pkg {
repo = 'ClearControl'
userOrg = 'clearcontrol' //An optional organization name when the repo belongs to one of the user's orgs
name = 'DockFX'
desc = 'DockFX'
websiteUrl = 'https://github.com/ClearControl/DockFX'
issueTrackerUrl = 'https://github.com/ClearControl/DockFX/issues'
vcsUrl = 'https://github.com/ClearControl/DockFX.git'
licenses = ['GPL-3.0']
labels = [
'DockFX',
'GUI'
]
publicDownloadNumbers = true
//attributes= ['a': ['ay1', 'ay2'], 'b': ['bee'], c: 'cee'] //Optional package-level attributes
//Optional version descriptor
version {
name = project.version //Bintray logical version name
desc = '.'
released = new java.util.Date()
vcsTag = 'v' + project.version
/*attributes = ['gradle-plugin': 'com.use.less:com.use.less.gradle:gradle-useless-plugin'] //Optional version-level attributes
gpg {
sign = false //Determines whether to GPG sign the files. The default is false
passphrase = 'passphrase' //Optional. The passphrase for GPG signing'
}
mavenCentralSync {
sync = false //Optional (true by default). Determines whether to sync the version to Maven Central.
user = 'userToken' //OSS user token
password = 'paasword' //OSS user password
close = '1' //Optional property. By default the staging repository is closed and artifacts are released to Maven Central. You can optionally turn this behaviour off (by puting 0 as value) and release the version manually.
} /**/
}
}
/**/
}
}











6 changes: 6 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#Tue Apr 05 15:27:24 CEST 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-bin.zip
14 changes: 11 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.dockfx</groupId>
<artifactId>dockfx</artifactId>
<artifactId>DockFX</artifactId>
<packaging>jar</packaging>
<version>0.1-SNAPSHOT</version>
<version>0.1.7</version>
<name>DockFX</name>
<url>https://github.com/RobertBColton/DockFX.git</url>
<url>https://github.com/ClearControl/DockFX.git</url>

<properties>
<maven.compiler.source>1.8</maven.compiler.source>
Expand Down Expand Up @@ -73,6 +73,14 @@
</plugins>
</build>

<distributionManagement>
<repository>
<id>bintray-clearcontrol-ClearControl</id>
<name>clearcontrol-ClearControl</name>
<url>https://api.bintray.com/maven/clearcontrol/ClearControl/DockFX/;publish=1</url>
</repository>
</distributionManagement>

<reporting>
<plugins>
<plugin>
Expand Down
106 changes: 106 additions & 0 deletions src/main/java/org/dockfx/ContentHolder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
package org.dockfx;

import java.util.LinkedList;
import java.util.Properties;

/**
* ContentHolder has common functions for storing persistent object for node
*
* @author HongKee Moon
*/
public class ContentHolder
{
/**
* The enum ContentHolder Type.
*/
public enum Type {
/**
* The SplitPane.
*/
SplitPane,
/**
* The TabPane.
*/
TabPane,
/**
* The Collection.
*/
Collection,
/**
* The FloatingNode.
*/
FloatingNode,
/**
* The DockNode.
*/
DockNode
}

String name;
Properties properties;
LinkedList children;
Type type;

public ContentHolder()
{

}

public ContentHolder( String name, Type type )
{
this.name = name;
this.properties = new Properties();
this.children = new LinkedList();
this.type = type;
}

public void addProperty( Object key, Object value )
{
properties.put( key, value );
}

public void addChild( Object child )
{
children.add( child );
}

public String getName()
{
return name;
}

public void setName( String name )
{
this.name = name;
}

public Properties getProperties()
{
return properties;
}

public void setProperties( Properties properties )
{
this.properties = properties;
}

public LinkedList getChildren()
{
return children;
}

public void setChildren( LinkedList children )
{
this.children = children;
}

public Type getType()
{
return type;
}

public void setType( Type type )
{
this.type = type;
}
}
8 changes: 8 additions & 0 deletions src/main/java/org/dockfx/DelayOpenHandler.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package org.dockfx;

/**
* To support the delayed open process for some specific applications, this interface implementation is used.
*/
public interface DelayOpenHandler {
public DockNode open(String nodeName);
}