Compare commits

..

No commits in common. "bb3bbc2efc60889448d8882583ce49f856243e56" and "ce4c5d98705ad3a8a4582f0d2eac6caa7ce63be6" have entirely different histories.

5 changed files with 57 additions and 54 deletions

View file

@ -21,19 +21,6 @@ Deep WIP multi-tool to work with NS-specific files / filesystem images.
JRE/JDK 8u60 or higher. JRE/JDK 8u60 or higher.
### Notes about usage
1. Start from clicking on 'settings' and importing keys. Use import. Don't waste your time.
2. To open sub-file from the file use right mouse click and select 'Open'. Supported formats listed below.
### Build this
1. Install JDK
2. Install Maven
3. $ git clone https://github.com/developersu/konogonka.git
4. $ mvn -B -DskipTests clean package
5. $ java -jar target/konogonka-0.x.x-jar-with-dependencies.jar
### Checklist ### Checklist
* [x] NSP (PFS0) * [x] NSP (PFS0)

View file

@ -8,7 +8,7 @@
<name>konogonka</name> <name>konogonka</name>
<artifactId>konogonka</artifactId> <artifactId>konogonka</artifactId>
<version>0.0.2-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<url>https://github.com/developersu/${project.name}}/</url> <url>https://github.com/developersu/${project.name}}/</url>
<description> <description>

View file

@ -117,21 +117,34 @@ public class Pfs0TableViewController implements Initializable {
fileSizeColumn.setCellValueFactory(new PropertyValueFactory<>("fileSize")); fileSizeColumn.setCellValueFactory(new PropertyValueFactory<>("fileSize"));
fileOffsetColumn.setCellValueFactory(new PropertyValueFactory<>("fileOffset")); fileOffsetColumn.setCellValueFactory(new PropertyValueFactory<>("fileOffset"));
// >< // ><
uploadColumn.setCellValueFactory(paramFeatures -> { uploadColumn.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Pfs0RowModel, Boolean>, ObservableValue<Boolean>>() {
@Override
public ObservableValue<Boolean> call(TableColumn.CellDataFeatures<Pfs0RowModel, Boolean> paramFeatures) {
Pfs0RowModel model = paramFeatures.getValue(); Pfs0RowModel model = paramFeatures.getValue();
SimpleBooleanProperty booleanProperty = new SimpleBooleanProperty(model.isMarkSelected()); SimpleBooleanProperty booleanProperty = new SimpleBooleanProperty(model.isMarkSelected());
booleanProperty.addListener((observableValue, oldValue, newValue) -> { booleanProperty.addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observableValue, Boolean oldValue, Boolean newValue) {
model.setMarkSelected(newValue); model.setMarkSelected(newValue);
table.refresh(); table.refresh();
}
}); });
return booleanProperty; return booleanProperty;
}
}); });
uploadColumn.setCellFactory(paramFeatures -> new CheckBoxTableCell<>()); uploadColumn.setCellFactory(new Callback<TableColumn<Pfs0RowModel, Boolean>, TableCell<Pfs0RowModel, Boolean>>() {
@Override
public TableCell<Pfs0RowModel, Boolean> call(TableColumn<Pfs0RowModel, Boolean> paramFeatures) {
return new CheckBoxTableCell<>();
}
});
table.setRowFactory( // this shit is made to implement context menu. It's such a pain.. table.setRowFactory( // this shit is made to implement context menu. It's such a pain..
Pfs0RowModelTableView -> { new Callback<TableView<Pfs0RowModel>, TableRow<Pfs0RowModel>>() {
@Override
public TableRow<Pfs0RowModel> call(TableView<Pfs0RowModel> Pfs0RowModelTableView) {
final TableRow<Pfs0RowModel> row = new TableRow<>(); final TableRow<Pfs0RowModel> row = new TableRow<>();
ContextMenu contextMenu = new ContextMenu(); ContextMenu contextMenu = new ContextMenu();
@ -149,17 +162,20 @@ public class Pfs0TableViewController implements Initializable {
row.contextMenuProperty().bind( row.contextMenuProperty().bind(
Bindings.when(Bindings.isNotNull(row.itemProperty())).then(contextMenu).otherwise((ContextMenu)null) Bindings.when(Bindings.isNotNull(row.itemProperty())).then(contextMenu).otherwise((ContextMenu)null)
); );
// Just.. don't ask.. row.setOnMouseClicked(new EventHandler<MouseEvent>() { // Just.. don't ask..
row.setOnMouseClicked(mouseEvent -> { @Override
public void handle(MouseEvent mouseEvent) {
if (!row.isEmpty() && mouseEvent.getButton() == MouseButton.PRIMARY){ if (!row.isEmpty() && mouseEvent.getButton() == MouseButton.PRIMARY){
Pfs0RowModel thisItem = row.getItem(); Pfs0RowModel thisItem = row.getItem();
thisItem.setMarkSelected(!thisItem.isMarkSelected()); thisItem.setMarkSelected(!thisItem.isMarkSelected());
table.refresh(); table.refresh();
} }
mouseEvent.consume(); mouseEvent.consume();
}
}); });
return row; return row;
} }
}
); );
table.setItems(rowsObsLst); table.setItems(rowsObsLst);
table.getColumns().addAll(numberColumn, fileNameColumn, fileOffsetColumn, fileSizeColumn, uploadColumn); table.getColumns().addAll(numberColumn, fileNameColumn, fileOffsetColumn, fileSizeColumn, uploadColumn);

View file

@ -30,7 +30,7 @@ import java.util.Locale;
import java.util.ResourceBundle; import java.util.ResourceBundle;
public class MainFx extends Application { public class MainFx extends Application {
public static final String appVersion = "v0.0.2"; public static final String appVersion = "v0.0-SNAPSHOT";
@Override @Override
public void start(Stage primaryStage) throws Exception{ public void start(Stage primaryStage) throws Exception{

View file

@ -420,9 +420,9 @@
<Insets left="5.0" right="5.0" /> <Insets left="5.0" right="5.0" />
</padding> </padding>
</Label> </Label>
<TextField fx:id="titleNameTf" editable="false" GridPane.columnIndex="3" GridPane.rowIndex="11" /> <TextField fx:id="titleNameTf" GridPane.columnIndex="3" GridPane.rowIndex="11" />
<TextField fx:id="productCodeTf" editable="false" GridPane.columnIndex="3" GridPane.rowIndex="12" /> <TextField fx:id="productCodeTf" GridPane.columnIndex="3" GridPane.rowIndex="12" />
<TextField fx:id="reserved4Tf" editable="false" GridPane.columnIndex="3" GridPane.rowIndex="13" /> <TextField fx:id="reserved4Tf" GridPane.columnIndex="3" GridPane.rowIndex="13" />
</children> </children>
</GridPane> </GridPane>
<Label text="* bit0 = use 64-bit instructions, bit1 = use 64-bit address space, bit2 = use 32-bit address space, bit3 = use 32-bit address space without reserved region, bit4 = optimize memory allocation?" /> <Label text="* bit0 = use 64-bit instructions, bit1 = use 64-bit address space, bit2 = use 32-bit address space, bit3 = use 32-bit address space without reserved region, bit4 = optimize memory allocation?" />
@ -1138,8 +1138,8 @@
<Insets left="5.0" right="5.0" /> <Insets left="5.0" right="5.0" />
</padding> </padding>
</Label> </Label>
<TextField fx:id="acidRsa2048publicKeyTf" editable="false" GridPane.columnIndex="3" GridPane.rowIndex="2" /> <TextField fx:id="acidRsa2048publicKeyTf" GridPane.columnIndex="3" GridPane.rowIndex="2" />
<TextField fx:id="acidRsa2048signatureTf" editable="false" GridPane.columnIndex="3" GridPane.rowIndex="1" /> <TextField fx:id="acidRsa2048signatureTf" GridPane.columnIndex="3" GridPane.rowIndex="1" />
<Label text="0x238" GridPane.rowIndex="18"> <Label text="0x238" GridPane.rowIndex="18">
<padding> <padding>
<Insets left="5.0" right="5.0" /> <Insets left="5.0" right="5.0" />