Skip to content

Commit

Permalink
Add SHA1 and fix last bugs on copy menus. Fix #22
Browse files Browse the repository at this point in the history
  • Loading branch information
opty authored and opty committed Mar 6, 2020
1 parent dd583ee commit 9af5106
Show file tree
Hide file tree
Showing 13 changed files with 102 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ protected void custom(Operation operation) throws Exception
writer.writeAttribute("ParentID", Integer.toString(parentID));
writer.writeAttribute("Name", n.getName());
writer.writeAttribute("CRC", n.getCrc());
writer.writeAttribute("SHA1", n.getSha1());
writer.writeStartElement("Detail");
writer.writeCData(n.getDetail());
writer.writeEndElement();
Expand Down
30 changes: 21 additions & 9 deletions JRomManager/src-standalone/jrm/ui/profile/ProfileViewer.java
Original file line number Diff line number Diff line change
Expand Up @@ -273,8 +273,7 @@ public void windowClosing(final WindowEvent e)
public void keyReleased(final KeyEvent e)
{
final String search = txtSearch.getText();
@SuppressWarnings("unchecked")
final int row = ((AnywareList<Anyware>) tableW.getModel()).find(search);
final int row = ((AnywareListModel) tableW.getModel()).getList().find(search);
if (row >= 0)
{
tableW.setRowSelectionInterval(row, row);
Expand Down Expand Up @@ -800,7 +799,11 @@ else if (width < 0)
public void actionPerformed(ActionEvent e) {
val index = tableEntity.getSelectedRow();
if(index>=0)
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(tableEntity.getModel().getValueAt(index, 3).toString()),null);
{
val crc = tableEntity.getModel().getValueAt(index, 3);
if(crc!=null)
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(crc.toString()),null);
}
}
});
popupEntMenu.add(mntmCopyCRC);
Expand All @@ -810,7 +813,11 @@ public void actionPerformed(ActionEvent e) {
public void actionPerformed(ActionEvent e) {
val index = tableEntity.getSelectedRow();
if(index>=0)
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(tableEntity.getModel().getValueAt(index, 5).toString()),null);
{
val sha1 = tableEntity.getModel().getValueAt(index, 5);
if(sha1!=null)
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(sha1.toString()),null);
}
}
});
popupEntMenu.add(mntmCopySHA1);
Expand All @@ -820,7 +827,11 @@ public void actionPerformed(ActionEvent e) {
public void actionPerformed(ActionEvent e) {
val index = tableEntity.getSelectedRow();
if(index>=0)
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(tableEntity.getModel().getValueAt(index, 1).toString()),null);
{
val name = tableEntity.getModel().getValueAt(index, 1);
if(name!=null)
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(name.toString()),null);
}
}
});
popupEntMenu.add(mntmCopyName);
Expand All @@ -831,14 +842,15 @@ public void actionPerformed(ActionEvent e) {
val index = tableEntity.getSelectedRow();
if(index>=0)
{
val name = tableEntity.getModel().getValueAt(index, 1).toString();
val crc = tableEntity.getModel().getValueAt(index, 3).toString();
val sha1 = tableEntity.getModel().getValueAt(index, 5).toString();
if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE))
{
try
{
Desktop.getDesktop().browse(new URI("https://www.google.com/search?q=" + URLEncoder.encode('"' + name + '"', "UTF-8") + '+' + Optional.ofNullable(crc).orElse(sha1)));
val name = tableEntity.getModel().getValueAt(index, 1).toString();
val crc = tableEntity.getModel().getValueAt(index, 3);
val sha1 = tableEntity.getModel().getValueAt(index, 5);
val hash = Optional.ofNullable(Optional.ofNullable(crc).orElse(sha1)).map(h -> '+' + h.toString()).orElse("");
Desktop.getDesktop().browse(new URI("https://www.google.com/search?q=" + URLEncoder.encode('"' + name + '"', "UTF-8") + hash));
}
catch (IOException | URISyntaxException e1)
{
Expand Down
26 changes: 23 additions & 3 deletions JRomManager/src-standalone/jrm/ui/profile/report/ReportView.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import java.net.URISyntaxException;
import java.net.URLEncoder;
import java.util.EnumSet;
import java.util.Optional;

import javax.swing.ImageIcon;
import javax.swing.JCheckBoxMenuItem;
Expand Down Expand Up @@ -142,6 +143,21 @@ else if(node instanceof SubjectNode)
});
popupMenu.add(mntmCopyCRC);

JMenuItem mntmCopySHA1 = new JMenuItem("Copy SHA1");
mntmCopySHA1.setEnabled(false);
mntmCopySHA1.addActionListener(e->{
val path = tree.getSelectionPath();
if(path!=null)
{
Object node = path.getLastPathComponent();
if(node instanceof NoteNode)
{
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(((NoteNode)node).getNote().getSha1()), null);
}
}
});
popupMenu.add(mntmCopySHA1);

JMenuItem mntmCopyName = new JMenuItem("Copy Name");
mntmCopyName.setEnabled(false);
mntmCopyName.addActionListener(e->{
Expand All @@ -166,13 +182,15 @@ else if(node instanceof SubjectNode)
Object node = path.getLastPathComponent();
if(node instanceof NoteNode)
{
String name = ((NoteNode)node).getNote().getName();
String crc = ((NoteNode)node).getNote().getCrc();
if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE))
{
try
{
Desktop.getDesktop().browse(new URI("https://www.google.com/search?q=" + URLEncoder.encode('"' + name + '"', "UTF-8") + '+' + crc));
val name = ((NoteNode)node).getNote().getName();
val crc = ((NoteNode)node).getNote().getCrc();
val sha1 = ((NoteNode)node).getNote().getSha1();
val hash = Optional.ofNullable(Optional.ofNullable(crc).orElse(sha1)).map(h -> '+' + h).orElse("");
Desktop.getDesktop().browse(new URI("https://www.google.com/search?q=" + URLEncoder.encode('"' + name + '"', "UTF-8") + hash));
}
catch (IOException | URISyntaxException e1)
{
Expand All @@ -191,13 +209,15 @@ else if(node instanceof SubjectNode)
val node = path.getLastPathComponent();
mntmDetail.setEnabled(node instanceof NoteNode);
mntmCopyCRC.setEnabled(node instanceof NoteNode);
mntmCopySHA1.setEnabled(node instanceof NoteNode);
mntmCopyName.setEnabled(node instanceof NoteNode);
mntmSearchWeb.setEnabled(node instanceof NoteNode);
}
else
{
mntmDetail.setEnabled(false);
mntmCopyCRC.setEnabled(false);
mntmCopySHA1.setEnabled(false);
mntmCopyName.setEnabled(false);
mntmSearchWeb.setEnabled(false);
}
Expand Down
8 changes: 8 additions & 0 deletions JRomManager/src/jrm/profile/report/EntryAdd.java
Original file line number Diff line number Diff line change
Expand Up @@ -85,4 +85,12 @@ public String getCrc()
return ((Entity)entity).getCrc();
return null;
}

@Override
public String getSha1()
{
if(entity instanceof Entity)
return ((Entity)entity).getSha1();
return null;
}
}
8 changes: 8 additions & 0 deletions JRomManager/src/jrm/profile/report/EntryMissing.java
Original file line number Diff line number Diff line change
Expand Up @@ -99,4 +99,12 @@ public String getCrc()
return ((Entity)entity).getCrc();
return null;
}

@Override
public String getSha1()
{
if(entity instanceof Entity)
return ((Entity)entity).getSha1();
return null;
}
}
6 changes: 6 additions & 0 deletions JRomManager/src/jrm/profile/report/EntryMissingDuplicate.java
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,10 @@ public String getCrc()
{
return entity.getCrc();
}

@Override
public String getSha1()
{
return entity.getSha1();
}
}
8 changes: 8 additions & 0 deletions JRomManager/src/jrm/profile/report/EntryOK.java
Original file line number Diff line number Diff line change
Expand Up @@ -72,4 +72,12 @@ public String getCrc()
return ((Entity)entity).getCrc();
return null;
}

@Override
public String getSha1()
{
if(entity instanceof Entity)
return ((Entity)entity).getSha1();
return null;
}
}
6 changes: 6 additions & 0 deletions JRomManager/src/jrm/profile/report/EntryUnneeded.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,10 @@ public String getCrc()
{
return entry.crc;
}

@Override
public String getSha1()
{
return entry.sha1;
}
}
6 changes: 6 additions & 0 deletions JRomManager/src/jrm/profile/report/EntryWrongHash.java
Original file line number Diff line number Diff line change
Expand Up @@ -88,4 +88,10 @@ public String getCrc()
{
return entity.getCrc();
}

@Override
public String getSha1()
{
return entity.getSha1();
}
}
6 changes: 6 additions & 0 deletions JRomManager/src/jrm/profile/report/EntryWrongName.java
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,10 @@ public String getCrc()
{
return entity.getCrc();
}

@Override
public String getSha1()
{
return entity.getSha1();
}
}
2 changes: 2 additions & 0 deletions JRomManager/src/jrm/profile/report/Note.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ private void readObject(final java.io.ObjectInputStream stream) throws IOExcepti

public abstract String getCrc();

public abstract String getSha1();

public int getId()
{
return id;
Expand Down
9 changes: 6 additions & 3 deletions JRomManager/src/jrm/xml/EnhancedXMLStreamWriter.java
Original file line number Diff line number Diff line change
Expand Up @@ -138,19 +138,22 @@ public void setPrefix(final String prefix, final String uri) throws XMLStreamExc
@Override
public void writeAttribute(final String localName, final String value) throws XMLStreamException
{
writer.writeAttribute(localName, value);
if(value!=null)
writer.writeAttribute(localName, value);
}

@Override
public void writeAttribute(final String prefix, final String namespaceURI, final String localName, final String value) throws XMLStreamException
{
writer.writeAttribute(prefix, namespaceURI, localName, value);
if(value!=null)
writer.writeAttribute(prefix, namespaceURI, localName, value);
}

@Override
public void writeAttribute(final String namespaceURI, final String localName, final String value) throws XMLStreamException
{
writer.writeAttribute(namespaceURI, localName, value);
if(value!=null)
writer.writeAttribute(namespaceURI, localName, value);
}

@Override
Expand Down

0 comments on commit 9af5106

Please sign in to comment.