This commit is contained in:
RafayAhmad7548 2024-06-16 18:53:25 +05:00
parent 37776af5db
commit ab03d5f10c
4045 changed files with 286212 additions and 3 deletions

View file

@ -0,0 +1,86 @@
package com.jb;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getNodes().get(0));
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
pt.getChildren().add(tt);
tab.shrink();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,70 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(JBrowse.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(JBrowse.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
int index = JBrowse.getTabs().indexOf(tab);
JBrowse.getTabs().remove(tab);
if(index<JBrowse.getNoOfTabs()) JBrowse.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else JBrowse.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), JBrowse.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<JBrowse.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), JBrowse.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tab.shrink();
tt.play();
pt.play();
}
});
}
}

View file

@ -0,0 +1,88 @@
package com.jb;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
tt.play();
tab.shrink();
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getNodes().get(0));
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,75 @@
package com.jb;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
AtomicInteger index = new AtomicInteger(Main.getTabs().indexOf(tab));
Main.getTabs().remove(tab);
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
tt.play();
tab.shrink();
if(index.get()<Main.getNoOfTabs()){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
ttTabs.setByX(-155);
ttTabs.play();
ttTabs.setOnFinished(ev -> {
index.incrementAndGet();
if(index.get()<Main.getNoOfTabs()){
ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
ttTabs.play();
}
});
}
}
});
}
}

View file

@ -0,0 +1,87 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getTabButton(), tab.getStackPane());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
if(index<Main.getNoOfTabs()) Main.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else Main.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tt.play();
tab.shrink();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,86 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getNodes().get(0));
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
pt.getChildren().add(tt);
tab.shrink();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,70 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(JBrowse.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(JBrowse.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
int index = JBrowse.getTabs().indexOf(tab);
JBrowse.getTabs().remove(tab);
if(index<JBrowse.getNoOfTabs()) JBrowse.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else JBrowse.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), JBrowse.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<JBrowse.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), JBrowse.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tab.shrink();
tt.play();
pt.play();
}
});
}
}

View file

@ -0,0 +1,86 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getTabButton(), tab.getStackPane());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
Main.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tt.play();
tab.shrink();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,70 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(JBrowse.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(JBrowse.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
int index = JBrowse.getTabs().indexOf(tab);
JBrowse.getTabs().remove(tab);
if(index<JBrowse.getNoOfTabs()) JBrowse.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else JBrowse.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), JBrowse.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<JBrowse.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), JBrowse.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tab.shrink();
tt.play();
pt.play();
}
});
}
}

View file

@ -0,0 +1,79 @@
package com.jb;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
AtomicInteger index = new AtomicInteger(Main.getTabs().indexOf(tab));
Main.getTabs().remove(tab);
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
tt.play();
tab.shrink();
if(index.get()<Main.getNoOfTabs()){
ParallelTransition pt = new ParallelTransition();
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
ttTabs.setByX(-155);
ttTabs.play();
ttTabs.setOnFinished(ev -> {
index.incrementAndGet();
if(index.get()<Main.getNoOfTabs()){
ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
ttTabs.play();
}
});
}
}
});
}
}

View file

@ -0,0 +1,70 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
if(index<Main.getNoOfTabs()) Main.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else Main.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tab.shrink();
tt.play();
pt.play();
}
});
}
}

View file

@ -0,0 +1,70 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(JBrowse.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(JBrowse.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
int index = JBrowse.getTabs().indexOf(tab);
JBrowse.getTabs().remove(tab);
if(index<JBrowse.getNoOfTabs()) JBrowse.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else JBrowse.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), JBrowse.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<JBrowse.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), JBrowse.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tab.shrink();
tt.play();
pt.play();
}
});
}
}

View file

@ -0,0 +1,80 @@
package com.jb;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
AtomicInteger index = new AtomicInteger(Main.getTabs().indexOf(tab));
Main.getTabs().remove(tab);
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
tt.play();
tab.shrink();
ParallelTransition pt = new ParallelTransition();
if(index.get()<Main.getNoOfTabs()){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
ttTabs.setByX(-155);
ttTabs.play();
ttTabs.setOnFinished(ev -> {
index.incrementAndGet();
if(index.get()<Main.getNoOfTabs()){
ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
ttTabs.setByX(-155);
ttTabs.play();
}
});
}
}
});
}
}

View file

@ -0,0 +1,86 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getTabButton(), tab.getStackPane());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
pt.getChildren().add(tt);
tab.shrink();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,89 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getTabButton(), tab.getStackPane());
int index = Main.getTabs().indexOf(tab);
tab.shrink();
Main.getTabs().remove(tab);
if(index<Main.getNoOfTabs()) Main.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else Main.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
// TODO: fix the animation for right most tab closing
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tt.play();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,86 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getTabButton(), tab.getStackPane());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
pt.getChildren().add(tt);
tab.shrink();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,89 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getTabButton(), tab.getStackPane());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
if(index<Main.getNoOfTabs()) Main.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else Main.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
// TODO: fix the animation for right most tab closing
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tt.play();
tab.shrink();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,89 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getTabButton(), tab.getStackPane());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
if(index<Main.getNoOfTabs()) Main.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else Main.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
// TODO: fix the animation for right most tab closing
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tab.shrink();
tt.play();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,86 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getTabButton(), tab.getStackPane());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getNodes().get(0));
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
pt.getChildren().add(tt);
tab.shrink();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,86 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
if(index<Main.getNoOfTabs()) Main.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else Main.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tab.shrink();
tt.play();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,83 @@
package com.jb;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
AtomicInteger index = new AtomicInteger(Main.getTabs().indexOf(tab));
Main.getTabs().remove(tab);
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
tt.play();
tab.shrink();
ParallelTransition pt = new ParallelTransition();
for(int i=index.get();i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getNodes().get(0));
}
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,70 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(JBrowse.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(JBrowse.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
int index = JBrowse.getTabs().indexOf(tab);
JBrowse.getTabs().remove(tab);
if(index<JBrowse.getNoOfTabs()) JBrowse.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else JBrowse.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), JBrowse.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<JBrowse.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), JBrowse.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tab.shrink();
tt.play();
pt.play();
}
});
}
}

View file

@ -0,0 +1,70 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(JBrowse.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(JBrowse.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
int index = JBrowse.getTabs().indexOf(tab);
JBrowse.getTabs().remove(tab);
if(index<JBrowse.getNoOfTabs()) JBrowse.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else JBrowse.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), JBrowse.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<JBrowse.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), JBrowse.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tab.shrink();
tt.play();
pt.play();
}
});
}
}

View file

@ -0,0 +1,84 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getNodes().get(0));
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
pt.getChildren().add(tt);
tab.shrink();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,76 @@
package com.jb;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
AtomicInteger index = new AtomicInteger(Main.getTabs().indexOf(tab));
Main.getTabs().remove(tab);
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
tt.play();
tab.shrink();
// ParallelTransition pt = new ParallelTransition();
if(index.get()<Main.getNoOfTabs()){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
ttTabs.setByX(-155);
ttTabs.play();
ttTabs.setOnFinished(ev -> {
index.incrementAndGet();
if(index.get()<Main.getNoOfTabs()){
ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
ttTabs.play();
// pt.getChildren().add(ttTabs);
}
});
}
}
});
}
}

View file

@ -0,0 +1,70 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(JBrowse.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(JBrowse.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
int index = JBrowse.getTabs().indexOf(tab);
JBrowse.getTabs().remove(tab);
if(index<JBrowse.getNoOfTabs()) JBrowse.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else JBrowse.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), JBrowse.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<JBrowse.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), JBrowse.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tab.shrink();
tt.play();
pt.play();
}
});
}
}

View file

@ -0,0 +1,79 @@
package com.jb;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
AtomicInteger index = new AtomicInteger(Main.getTabs().indexOf(tab));
Main.getTabs().remove(tab);
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
tt.play();
tab.shrink();
ParallelTransition pt = new ParallelTransition();
if(index.get()<Main.getNoOfTabs()){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
ttTabs.setByX(-155);
ttTabs.play();
ttTabs.setOnFinished(ev -> {
index.incrementAndGet();
if(index.get()<Main.getNoOfTabs()){
ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
ttTabs.play();
}
});
}
}
});
}
}

View file

@ -0,0 +1,80 @@
package com.jb;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
AtomicInteger index = new AtomicInteger(Main.getTabs().indexOf(tab));
Main.getTabs().remove(tab);
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
tt.play();
tab.shrink();
ParallelTransition pt = new ParallelTransition();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,70 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(JBrowse.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(JBrowse.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
int index = JBrowse.getTabs().indexOf(tab);
JBrowse.getTabs().remove(tab);
if(index<JBrowse.getNoOfTabs()) JBrowse.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else JBrowse.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), JBrowse.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<JBrowse.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), JBrowse.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tab.shrink();
tt.play();
pt.play();
}
});
}
}

View file

@ -0,0 +1,89 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
tab.shrink();
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getTabButton(), tab.getStackPane());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
if(index<Main.getNoOfTabs()) Main.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else Main.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
// TODO: fix the animation for right most tab closing
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tt.play();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,86 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getTabButton(), tab.getStackPane());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
Main.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
pt.getChildren().add(tt);
tab.shrink();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,89 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getTabButton(), tab.getStackPane());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
if(index<Main.getNoOfTabs()) Main.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else Main.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
// TODO: fix the animation for right most tab closing
// ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
// tt.setByX(-155);
// for(int i=index;i<Main.getNoOfTabs();i++){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getTabButton());
// ttTabs.setByX(-155);
// pt.getChildren().add(ttTabs);
// }
tt.play();
tab.shrink();
// pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,89 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
// ((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getTabButton(), tab.getStackPane());
int index = Main.getTabs().indexOf(tab);
tab.shrink();
Main.getTabs().remove(tab);
if(index<Main.getNoOfTabs()) Main.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else Main.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
// TODO: fix the animation for right most tab closing
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tt.play();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,83 @@
package com.jb;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
AtomicInteger index = new AtomicInteger(Main.getTabs().indexOf(tab));
Main.getTabs().remove(tab);
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
tt.play();
tab.shrink();
ParallelTransition pt = new ParallelTransition();
for(int i=index.get();i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
}
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,76 @@
package com.jb;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
AtomicInteger index = new AtomicInteger(Main.getTabs().indexOf(tab));
Main.getTabs().remove(tab);
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
tt.play();
tab.shrink();
if(index<Main.getNoOfTabs()){
}
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
ttTabs.setByX(-155);
ttTabs.play();
ttTabs.setOnFinished(ev -> {
index.incrementAndGet();
if(index.get()<Main.getNoOfTabs()){
ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
ttTabs.play();
}
});
}
});
}
}

View file

@ -0,0 +1,79 @@
package com.jb;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
AtomicInteger index = new AtomicInteger(Main.getTabs().indexOf(tab));
Main.getTabs().remove(tab);
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
tt.play();
tab.shrink();
ParallelTransition pt = new ParallelTransition();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,89 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
// ((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getTabButton(), tab.getStackPane());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
if(index<Main.getNoOfTabs()) Main.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else Main.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
// TODO: fix the animation for right most tab closing
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tab.shrink();
tt.play();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,70 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(JBrowse.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(JBrowse.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
int index = JBrowse.getTabs().indexOf(tab);
JBrowse.getTabs().remove(tab);
if(index<JBrowse.getNoOfTabs()) JBrowse.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else JBrowse.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), JBrowse.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<JBrowse.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), JBrowse.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tab.shrink();
tt.play();
pt.play();
}
});
}
}

View file

@ -0,0 +1 @@
{"version":1,"resource":"file:///home/rafayahmad/Stuff/JBrowse/jbrowse/src/main/java/com/jb/TabButton.java","entries":[{"id":"cEog.java","timestamp":1713589737414},{"id":"3Dy7.java","timestamp":1713589751217},{"id":"5MgE.java","timestamp":1713589847691},{"id":"9UzD.java","timestamp":1713589945458},{"id":"VM8K.java","timestamp":1713589959418},{"id":"yPmE.java","timestamp":1713590061249},{"id":"fl24.java","timestamp":1713591913239},{"id":"RMfP.java","timestamp":1713592001222},{"id":"nf2J.java","timestamp":1713781581300},{"id":"cWkE.java","timestamp":1713781602354},{"id":"VRWR.java","source":"Import 'ParallelTransition' (javafx.animation)","timestamp":1713781607847},{"id":"c7F9.java","timestamp":1713781649038},{"id":"JRQb.java","timestamp":1713781666909},{"id":"sKrq.java","timestamp":1713781684869},{"id":"jeRu.java","timestamp":1713781696553},{"id":"0mRF.java","timestamp":1713782010233},{"id":"004C.java","timestamp":1713782977838},{"id":"ODPd.java","timestamp":1713783039422},{"id":"3v5W.java","timestamp":1713783144182},{"id":"IFxT.java","timestamp":1713783320466},{"id":"DY10.java","timestamp":1713783331853},{"id":"EOJH.java","timestamp":1713783372560},{"id":"Zwza.java","timestamp":1713783421333},{"id":"4fVm.java","timestamp":1713783451470},{"id":"xUYa.java","timestamp":1713783523337},{"id":"3Gha.java","timestamp":1713783550391},{"id":"Eg02.java","timestamp":1713783632838},{"id":"FtFe.java","timestamp":1713789651042},{"id":"gXId.java","timestamp":1713789674861},{"id":"gAaY.java","timestamp":1713789688441},{"id":"pAn4.java","timestamp":1713789740113},{"id":"bQe8.java","timestamp":1713789761655},{"id":"ZO5D.java","timestamp":1713789873687},{"id":"E4xn.java","timestamp":1713789888551},{"id":"bhTm.java","timestamp":1713790139862},{"id":"dpGI.java","timestamp":1713790181619},{"id":"JDH2.java","timestamp":1713790215438},{"id":"5PTH.java","timestamp":1713790248319},{"id":"q5gM.java","source":"Workspace Edit","timestamp":1713790432851},{"id":"jC5p.java","timestamp":1713834289919},{"id":"KZQp.java","timestamp":1713834308931},{"id":"4DaJ.java","timestamp":1713834320908},{"id":"eRrv.java","timestamp":1713834350590},{"id":"KVIZ.java","timestamp":1713834394746},{"id":"ThiM.java","timestamp":1713953194310},{"id":"0KG0.java","timestamp":1713955804099},{"id":"YMpI.java","timestamp":1713956236909},{"id":"qK5q.java","timestamp":1713956252241},{"id":"4tD7.java","timestamp":1713957991559},{"id":"8M4F.java","timestamp":1713958014969}]}

View file

@ -0,0 +1,77 @@
package com.jb;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
AtomicInteger index = new AtomicInteger(Main.getTabs().indexOf(tab));
Main.getTabs().remove(tab);
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
tt.play();
tab.shrink();
// ParallelTransition pt = new ParallelTransition();
if(index.get()<Main.getNoOfTabs()){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
ttTabs.setByX(-155);
ttTabs.play();
ttTabs.setOnFinished(ev -> {
index.incrementAndGet();
if(index.get()<Main.getNoOfTabs()){
ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
ttTabs.play();
// pt.getChildren().add(ttTabs);
}
});
}
}
});
}
}

View file

@ -0,0 +1,89 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getTabButton(), tab.getStackPane());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
tab.shrink();
if(index<Main.getNoOfTabs()) Main.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else Main.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
// TODO: fix the animation for right most tab closing
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tt.play();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,89 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getTabButton(), tab.getStackPane());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
if(index<Main.getNoOfTabs()) Main.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else Main.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
tab.shrink();
// TODO: fix the animation for right most tab closing
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tt.play();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,70 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
// @SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(JBrowse.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(JBrowse.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
int index = JBrowse.getTabs().indexOf(tab);
JBrowse.getTabs().remove(tab);
if(index<JBrowse.getNoOfTabs()) JBrowse.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else JBrowse.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), JBrowse.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<JBrowse.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), JBrowse.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tab.shrink();
tt.play();
pt.play();
}
});
}
}

View file

@ -0,0 +1,86 @@
package com.jb;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
AtomicInteger index = new AtomicInteger(Main.getTabs().indexOf(tab));
Main.getTabs().remove(tab);
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
tt.play();
tab.shrink();
ParallelTransition pt = new ParallelTransition();
for(int i=index.get();i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getNodes().get(0));
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,79 @@
package com.jb;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
AtomicInteger index = new AtomicInteger(Main.getTabs().indexOf(tab));
Main.getTabs().remove(tab);
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
tt.play();
tab.shrink();
// ParallelTransition pt = new ParallelTransition();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,89 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getTabButton(), tab.getStackPane());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
tab.shrink();
if(index<Main.getNoOfTabs()) Main.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else Main.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
// TODO: fix the animation for right most tab closing
// ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
// tt.setByX(-155);
// for(int i=index;i<Main.getNoOfTabs();i++){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getTabButton());
// ttTabs.setByX(-155);
// pt.getChildren().add(ttTabs);
// }
tt.play();
// pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,70 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(JBrowse.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(JBrowse.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
int index = JBrowse.getTabs().indexOf(tab);
JBrowse.getTabs().remove(tab);
if(index<JBrowse.getNoOfTabs()) JBrowse.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else JBrowse.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), JBrowse.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<JBrowse.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), JBrowse.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tab.shrink();
tt.play();
pt.play();
}
});
}
}

View file

@ -0,0 +1,70 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(JBrowse.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(JBrowse.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
int index = JBrowse.getTabs().indexOf(tab);
JBrowse.getTabs().remove(tab);
if(index<JBrowse.getNoOfTabs()) JBrowse.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
else JBrowse.getTabs().get(index-1).getTabButton().toggleButton.setSelected(true);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), JBrowse.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<JBrowse.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), JBrowse.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tab.shrink();
tt.play();
pt.play();
}
});
}
}

View file

@ -0,0 +1,85 @@
package com.jb;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
AtomicInteger index = new AtomicInteger(Main.getTabs().indexOf(tab));
Main.getTabs().remove(tab);
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
tt.play();
tab.shrink();
ParallelTransition pt = new ParallelTransition();
for(int i=index.get();i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getNodes().get(0));
pt.getChildren().add(ttTabs);
}
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,86 @@
package com.jb;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getTabButton(), tab.getStackPane());
int index = Main.getTabs().indexOf(tab);
Main.getTabs().remove(tab);
if(index<Main.getNoOfTabs()) Main.getTabs().get(index).getTabButton().toggleButton.setSelected(true);
ParallelTransition pt = new ParallelTransition();
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
for(int i=index;i<Main.getNoOfTabs();i++){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(i).getTabButton());
ttTabs.setByX(-155);
pt.getChildren().add(ttTabs);
}
tt.play();
tab.shrink();
pt.play();
// if(index.get()<Main.getNoOfTabs()){
// TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.setByX(-155);
// ttTabs.play();
// ttTabs.setOnFinished(ev -> {
// index.incrementAndGet();
// if(index.get()<Main.getNoOfTabs()){
// ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
// ttTabs.play();
// // pt.getChildren().add(ttTabs);
// }
// });
// }
}
});
}
}

View file

@ -0,0 +1,80 @@
package com.jb;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TabButton extends StackPane{
private ToggleButton toggleButton;
private Button closeBtn;
@SuppressWarnings("unused")
private BrowserTab tab;
public TabButton(BrowserTab tab){
toggleButton = new ToggleButton("Home");
closeBtn = new Button("");
this.tab = tab;
this.setId("tab-button-container");
toggleButton.setId("tab-button");
closeBtn.setId("tab-close-button");
toggleButton.setSelected(true);
toggleButton.setToggleGroup(Main.getToggleGroup());
closeBtn.setTranslateX(120);
StackPane.setAlignment(toggleButton, Pos.TOP_LEFT);
StackPane.setAlignment(closeBtn, Pos.TOP_LEFT);
this.getChildren().addAll(toggleButton, closeBtn);
toggleButton.setOnAction(e -> {
if(!toggleButton.isSelected()) toggleButton.setSelected(true);
tab.bringToFront();
});
closeBtn.setOnAction(e -> {
if(Main.getNoOfTabs() == 1) ((Stage)this.getScene().getWindow()).close();
else{
((StackPane)(this.getScene().getRoot())).getChildren().removeAll(tab.getNodes());
AtomicInteger index = new AtomicInteger(Main.getTabs().indexOf(tab));
Main.getTabs().remove(tab);
TranslateTransition tt = new TranslateTransition(new Duration(250), Main.getNewTabBtn());
tt.setByX(-155);
tt.play();
tab.shrink();
ParallelTransition pt = new ParallelTransition();
if(index.get()<Main.getNoOfTabs()){
TranslateTransition ttTabs = new TranslateTransition(new Duration(250), Main.getTabs().get(index.get()).getNodes().get(0));
ttTabs.setByX(-155);
ttTabs.play();
ttTabs.setOnFinished(ev -> {
index.incrementAndGet();
if(index.get()<Main.getNoOfTabs()){
ttTabs.setNode(Main.getTabs().get(index.get()).getNodes().get(0));
ttTabs.play();
pt.getChildren().add(ttTabs);
}
});
}
}
});
}
}