11package yagura .model ;
22
3- import burp .IParameter ;
4- import extend .model .base .ObjectTableModel ;
3+ import extend .model .base .DefaultObjectTableModel ;
54import extend .util .Util ;
6- import java .util . List ;
5+ import java .nio . charset . StandardCharsets ;
76import java .util .logging .Level ;
87import java .util .logging .Logger ;
98import javax .swing .table .TableModel ;
1312 *
1413 * @author raise.isayan
1514 */
16- public class ParamsViewModel extends ObjectTableModel < Parameter > {
15+ public class ParamsViewModel extends DefaultObjectTableModel < ParamsView > {
1716
1817 public ParamsViewModel (TableModel model ) {
1918 super (model );
2019 }
2120
22- public ParamsViewModel (TableModel model , List <Parameter > d ) {
23- super (model , d );
24- }
25-
2621 private boolean editable = false ;
22+
2723 public void setCellEditable (boolean enable ) {
2824 this .editable = enable ;
2925 }
30-
26+
27+ public boolean getCellEditable () {
28+ return this .editable ;
29+ }
30+
3131 @ Override
3232 public boolean isCellEditable (int rowIndex , int columnIndex ) {
3333 return this .editable ;
3434 }
3535
3636 @ Override
37- public Object getValueAt (int row , int col ) {
37+ public Object getValueAt (int rowIndex , int columnIndex ) {
3838 Object value = null ;
3939 try {
40- if (row < 0 || row >= this .getRowCount ()) {
41- return value ;
42- }
43- IParameter param = this .getData (row );
44- switch (col ) {
40+ ParamsView param = super .getData (rowIndex );
41+ switch (columnIndex ) {
4542 case 0 : //
4643 {
4744 value = param ;
4845 break ;
4946 }
5047 case 1 : // Type
5148 {
52- value = getType (param .getType ());
49+ value = ParamsView . getType (param .getType ());
5350 break ;
5451 }
5552 case 2 : // Name
@@ -84,53 +81,45 @@ public Object getValueAt(int row, int col) {
8481 }
8582
8683 @ Override
87- public void setValueAt (Object value , int row , int col ) {
84+ public void setValueAt (Object value , int rowIndex , int columnIndex ) {
8885 try {
89- Parameter param = this . getData ( row );
90- switch (col ) {
86+ ParamsView param = new ParamsView ( );
87+ switch (columnIndex ) {
9188 case 0 : // Data
9289 break ;
9390 case 1 : // Type
94- param .setType ((parseType ((String )value )));
91+ param .setType ((ParamsView . parseType ((String )value )));
9592 break ;
9693 case 2 : // Name
97- param .setName ((String )value );
94+ if (this .urldecode ) {
95+ String raw = Util .getRawStr (Util .encodeMessage ((String )value , encoding ));
96+ raw = TransUtil .encodeUrl (raw , encoding , true );
97+ param .setName (raw );
98+ }
99+ else {
100+ String rowMessage = Util .getRawStr (Util .encodeMessage ((String )value , encoding ));
101+ param .setName (rowMessage );
102+ }
98103 break ;
99104 case 3 : // Value
100- param .setValue ((String )value );
105+ if (this .urldecode ) {
106+ String raw = Util .getRawStr (Util .encodeMessage ((String )value , encoding ));
107+ raw = TransUtil .encodeUrl (raw , encoding , true );
108+ param .setValue (raw );
109+ }
110+ else {
111+ String raw = Util .getRawStr (Util .encodeMessage ((String )value , encoding ));
112+ param .setValue (raw );
113+ }
101114 break ;
102115 }
103- this . fireTableDataChanged ();
116+ super . setData ( rowIndex , param );
104117 } catch (Exception ex ) {
105- Logger .getLogger (ParamsViewModel .class .getName ()).log (Level .SEVERE , null , ex );
118+ Logger .getLogger (ParamsView .class .getName ()).log (Level .SEVERE , null , ex );
106119 }
107120 }
108121
109- private final static String [] TYPES = {"URL" , "Body" , "Cookie" , "XML" , "-" , "(file)" , "JSON" };
110-
111- public static String getType (byte type ) {
112- return TYPES [type ];
113- }
114-
115- public static byte parseType (String type ) {
116- for (int i = 0 ; i < TYPES .length ; i ++) {
117- if (TYPES [i ].equals (type )) return (byte )i ;
118- }
119- return (byte )-1 ;
120- }
121-
122- @ Override
123- public Object [] getRows (int row ) {
124- try {
125- IParameter msg = this .getData (row );
126- return new Object []{row , msg .getType (), msg .getName (), msg .getValue ()};
127- } catch (Exception ex ) {
128- Logger .getLogger (ParamsViewModel .class .getName ()).log (Level .SEVERE , null , ex );
129- }
130- return null ;
131- }
132-
133- private String encoding = "8859_1" ;
122+ private String encoding = StandardCharsets .ISO_8859_1 .name ();
134123
135124 public String getEncoding () {
136125 return this .encoding ;
@@ -139,7 +128,7 @@ public String getEncoding() {
139128 public void setEncoding (String encoding ) {
140129 this .encoding = encoding ;
141130 }
142-
131+
143132 private boolean urldecode = false ;
144133
145134 public boolean getUrlDecode () {
0 commit comments