Skip to content

Commit 2c3e31d

Browse files
committed
Anime Episodes, Unsharp, Perspective
+fixed JSlider and JSpinner cast errors +JTree refresh names +JTree remembers nodes open
1 parent 327ed28 commit 2c3e31d

File tree

10 files changed

+434
-58
lines changed

10 files changed

+434
-58
lines changed

src/com/inverseinnovations/VisualMALSignatureDesigner/BlockWindow.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ public void actionPerformed(ActionEvent e){
9090
if(blocks.getCurrentNode() != null){
9191
if(blocks.getCurrentNode() != blocks.getRootNode()){
9292
confirmDeleteBlockDialog();
93+
Main.ImageWindow.update();
9394
}
9495
}
9596
}
@@ -144,7 +145,7 @@ public JDialog createBlockSelectionDialog(){
144145
String longestBlockName = " Anime Thumbnail ";
145146

146147
//show block selection panel
147-
String[] blockTypes = {"Background","Text","Image","Anime Thumbnail","Anime Title","Anime Status"};
148+
String[] blockTypes = {"Background","Text","Anime Title","Anime Status","Anime Episodes","Image","Anime Thumbnail"};
148149
final JList<String> blockList = new JList<String>(blockTypes); //data has type Object[]
149150
blockList.setPrototypeCellValue(longestBlockName);
150151
blockList.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
@@ -161,7 +162,7 @@ public JDialog createBlockSelectionDialog(){
161162
blockListPane.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
162163

163164
//show filter selection panel
164-
String[] filterTypes = {"Rotate"};
165+
String[] filterTypes = {"Perspective","Rotate","Unsharp"};
165166
final JList<String> filterList = new JList<String>(filterTypes); //data has type Object[]
166167
filterList.setPrototypeCellValue(longestBlockName);
167168
filterList.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
@@ -233,11 +234,24 @@ public void actionPerformed(ActionEvent e){
233234
d.dispose();
234235
child = new AddStatus(Main);
235236
break;
237+
case "Anime Episodes":
238+
d.dispose();
239+
child = new AddEpisodes(Main);
240+
break;
241+
case "Perspective":
242+
d.dispose();
243+
child = new FilterPerspective(Main);
244+
break;
236245
case "Rotate":
237246
d.dispose();
238247
child = new FilterRotate(Main);
239248
break;
249+
case "Unsharp":
250+
d.dispose();
251+
child = new FilterUnsharp(Main);
252+
break;
240253
}
254+
241255
blocks.addObject(child);
242256
child.settingsDialog(blockFrame);
243257
}

src/com/inverseinnovations/VisualMALSignatureDesigner/BuildingBlock/AddBackground.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ public void actionPerformed(ActionEvent e){
101101
setRgb(Main.toHexString(cc.getColor()));
102102
saveObject();
103103
Main.ImageWindow.update();
104+
Main.BlockWindow.blocks.reload();
104105
d.dispose();
105106
}
106107
});
@@ -137,7 +138,6 @@ public void actionPerformed(ActionEvent e){
137138
@Override
138139
public BufferedImage display(BufferedImage image){
139140
image = Main.sig.makeBackground(getRgb());
140-
if(image == null){System.out.println("for some reason its null..");}else{System.out.println("is not null! image size is "+image.getWidth()+" by "+image.getHeight());}
141141
if(getChildCount() > 0){
142142
//send this to each child to rerender(filter)
143143
for(int i = 0; i< getChildCount(); i++){
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
package com.inverseinnovations.VisualMALSignatureDesigner.BuildingBlock;
2+
3+
import java.awt.Dimension;
4+
import java.awt.event.ItemEvent;
5+
import java.awt.event.ItemListener;
6+
import java.awt.image.BufferedImage;
7+
8+
import javax.swing.BorderFactory;
9+
import javax.swing.Box;
10+
import javax.swing.BoxLayout;
11+
import javax.swing.JComboBox;
12+
import javax.swing.JLabel;
13+
import javax.swing.JPanel;
14+
import com.inverseinnovations.VisualMALSignatureDesigner.Main;
15+
16+
public class AddEpisodes extends AddText {
17+
private static final long serialVersionUID = 1L;
18+
private int id = 1;//12 titles
19+
private int style = 1;
20+
21+
public AddEpisodes(Main Main){
22+
super("Anime Episodes", Main);
23+
}
24+
25+
/**
26+
* @return the id
27+
*/
28+
public int getId() {
29+
return id;
30+
}
31+
32+
/**
33+
* @return the style
34+
*/
35+
public int getStyle() {
36+
return style;
37+
}
38+
39+
/**
40+
* @param id the id to set
41+
*/
42+
public void setId(int id) {
43+
this.id = id;
44+
}
45+
46+
/**
47+
* @param style the style to set
48+
*/
49+
public void setStyle(int style) {
50+
this.style = style;
51+
}
52+
53+
@Override
54+
public JPanel settingsText(){
55+
JLabel idLab = new JLabel("Anime #:");
56+
Integer[] idStrings = new Integer[12];
57+
for(int i = 1;i <= 12;i++){
58+
idStrings[i-1] = i;
59+
}
60+
final JComboBox<Integer> idBox = new JComboBox<Integer>(idStrings);
61+
idBox.setSelectedIndex(getId()-1);
62+
idBox.addItemListener(new ItemListener(){
63+
public void itemStateChanged(ItemEvent e){
64+
setId(idBox.getSelectedIndex()+1);
65+
saveObject();
66+
Main.ImageWindow.update();
67+
}
68+
});
69+
70+
JLabel styleLab = new JLabel("Style:");
71+
String[] styleStrings = { "3/54", "3 of 54","3 - 54","3","54"};
72+
final JComboBox<String> styleBox = new JComboBox<String>(styleStrings);styleBox.setEditable(false);
73+
styleBox.setSelectedIndex(getStyle()-1);
74+
75+
styleBox.addItemListener(new ItemListener(){
76+
public void itemStateChanged(ItemEvent e){
77+
setStyle(styleBox.getSelectedIndex()+1);
78+
saveObject();
79+
Main.ImageWindow.update();
80+
}
81+
});
82+
83+
JPanel textPane = new JPanel();
84+
textPane.setLayout(new BoxLayout(textPane, BoxLayout.LINE_AXIS));
85+
textPane.setBorder(BorderFactory.createEmptyBorder(15, 25, 3, 25));
86+
textPane.add(Box.createHorizontalGlue());
87+
textPane.add(idLab);
88+
textPane.add(Box.createRigidArea(new Dimension(10, 0)));
89+
textPane.add(idBox);
90+
textPane.add(Box.createRigidArea(new Dimension(10, 0)));
91+
textPane.add(styleLab);
92+
textPane.add(Box.createRigidArea(new Dimension(10, 0)));
93+
textPane.add(styleBox);
94+
textPane.add(Box.createHorizontalGlue());
95+
96+
return textPane;
97+
}
98+
99+
@Override
100+
public BufferedImage generateImage(){
101+
return Main.sig.makeEpisodes(getId(), getX(), getY(), getTextFont(), getAlign(), getAngdeg(), getStyle());
102+
}
103+
}

src/com/inverseinnovations/VisualMALSignatureDesigner/BuildingBlock/AddImage.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ public void actionPerformed(ActionEvent e){
239239
setY((int) ySpinner.getValue());
240240
saveObject();
241241
Main.ImageWindow.update();
242+
Main.BlockWindow.blocks.reload();
242243
d.dispose();
243244
}
244245
});

src/com/inverseinnovations/VisualMALSignatureDesigner/BuildingBlock/AddText.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,7 @@ public void actionPerformed(ActionEvent e){
552552
setAngdeg((int) angleSpinner.getValue());
553553
saveObject();
554554
Main.ImageWindow.update();
555+
Main.BlockWindow.blocks.reload();
555556
d.dispose();
556557
}
557558
});

src/com/inverseinnovations/VisualMALSignatureDesigner/BuildingBlock/Filter/Filter.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
package com.inverseinnovations.VisualMALSignatureDesigner.BuildingBlock.Filter;
22

3+
import java.awt.image.BufferedImage;
4+
5+
import javax.swing.tree.DefaultMutableTreeNode;
6+
37
import com.inverseinnovations.VisualMALSignatureDesigner.Main;
48
import com.inverseinnovations.VisualMALSignatureDesigner.BuildingBlock.BuildingBlock;
59

@@ -13,4 +17,24 @@ public Filter(String name,Main Main){
1317
public boolean isFilter(){
1418
return true;
1519
}
20+
21+
@Override
22+
public BufferedImage display(BufferedImage image){
23+
image = generateImage(image);
24+
if(getChildCount() > 0){
25+
//send this to each child to rerender(filter)
26+
for(int i = 0; i< getChildCount(); i++){
27+
if(!((BuildingBlock) ((DefaultMutableTreeNode) getChildAt(i)).getUserObject()).isFilter()){
28+
image = Main.sig.filter.composite(image, ((BuildingBlock) ((DefaultMutableTreeNode) getChildAt(i)).getUserObject()).display(image), 0, 0);
29+
}
30+
else{//if filter
31+
image = ((BuildingBlock) ((DefaultMutableTreeNode) getChildAt(i)).getUserObject()).display(image);
32+
}
33+
}
34+
}
35+
return image;
36+
}
37+
protected BufferedImage generateImage(BufferedImage image){
38+
return image;
39+
}
1640
}

0 commit comments

Comments
 (0)