⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msessionwindow.java

📁 httptunnel.jar httptunnel java 源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package net.jumperz.app.MDoorman.windows;

import org.eclipse.swt.graphics.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.*;
import org.eclipse.swt.layout.*;

import java.beans.*;
import java.io.*;
import java.util.*;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import java.net.*;
import net.jumperz.app.MDoorman.*;
import net.jumperz.util.*;
import net.jumperz.gui.*;
import net.jumperz.net.*;

public class MSessionWindow
extends MWindow
{
private static final String WINDOW_NAME = "HTTP Sessions";
private static final int WINDOW_STYLE = SWT.MAX | SWT.MIN | SWT.RESIZE;

private Table sessionTable;
private Map sessionItemMap = new HashMap();
private Map itemSessionMap = new HashMap();
private int count = 0;

private Menu bar, editDropMenu, fileDropMenu;
private MenuItem editCascadeItem, fileCascadeItem, saveRequestItem, saveRequestHeaderItem, removeItem, saveRequestBodyItem, saveResponseItem, saveResponseHeaderItem, saveResponseBodyItem, copyUrlItem, debugItem, saveSessionItem, loadSessionItem, selectAllItem;

private static final int TYPE_REQUEST		= 0;
private static final int TYPE_REQUEST_HEADER	= 1;
private static final int TYPE_REQUEST_BODY	= 2;
private static final int TYPE_RESPONSE 		= 3;
private static final int TYPE_RESPONSE_HEADER	= 4;
private static final int TYPE_RESPONSE_BODY	= 5;

private static final int INDEX_INDEX		= 0;
private static final int TIME_INDEX		= 1;
private static final int URL_INDEX		= 2;
private static final int STATE_INDEX		= 3;
private static final int METHOD_INDEX		= 4;
private static final int STATUSCODE_INDEX	= 5;
private static final int SSOCKET_INDEX		= 6;
private static final int CSOCKET_INDEX		= 7;

// --------------------------------------------------------------------------------
public MSessionWindow()
{
super( WINDOW_NAME, new Shell( MDoorman.getInstance().mainShell, WINDOW_STYLE ) );
}
// --------------------------------------------------------------------------------
protected void init2()
{
windowValue = new int[]{ 200, 300, 100, 400 };

bar = new Menu( shell, SWT.BAR );
shell.setMenuBar( bar );

fileCascadeItem = new MenuItem( bar, SWT.CASCADE );
fileCascadeItem.setText( "&File" );

fileDropMenu = new Menu( shell, SWT.DROP_DOWN );
fileCascadeItem.setMenu( fileDropMenu );

saveSessionItem = new MenuItem( fileDropMenu, SWT.PUSH );
saveSessionItem.setText( "Sa&ve Sessions\tCtrl+S" );
saveSessionItem.setAccelerator( SWT.CTRL + 'S' );

loadSessionItem = new MenuItem( fileDropMenu, SWT.PUSH );
loadSessionItem.setText( "&Load Sessions\tCtrl+O" );
loadSessionItem.setAccelerator( SWT.CTRL + 'O' );

new MenuItem( fileDropMenu, SWT.SEPARATOR );

saveRequestItem = new MenuItem( fileDropMenu, SWT.PUSH );
saveRequestItem.setText( "Save Re&quest As" );

saveRequestHeaderItem = new MenuItem( fileDropMenu, SWT.PUSH );
saveRequestHeaderItem.setText( "Save Request Header As" );

saveRequestBodyItem = new MenuItem( fileDropMenu, SWT.PUSH );
saveRequestBodyItem.setText( "Save Request Body As" );

new MenuItem( fileDropMenu, SWT.SEPARATOR );

saveResponseItem = new MenuItem( fileDropMenu, SWT.PUSH );
saveResponseItem.setText( "Save Re&sponse As" );

saveResponseHeaderItem = new MenuItem( fileDropMenu, SWT.PUSH );
saveResponseHeaderItem.setText( "Save Response Header As" );

saveResponseBodyItem = new MenuItem( fileDropMenu, SWT.PUSH );
saveResponseBodyItem.setText( "Save Response Body As" );

if( doorman.getProperties().getBooleanProperty( "debug" ) == true )
	{
	debugItem = new MenuItem( fileDropMenu, SWT.PUSH );
	debugItem.setText( "debug" );
	}

editCascadeItem = new MenuItem( bar, SWT.CASCADE );
editCascadeItem.setText( "&Edit" );

editDropMenu = new Menu( shell, SWT.DROP_DOWN );
editCascadeItem.setMenu( editDropMenu );

copyUrlItem = new MenuItem( editDropMenu, SWT.PUSH );
copyUrlItem.setText( "&Copy URL\tCtrl+C" );
copyUrlItem.setAccelerator( SWT.CTRL + 'C' );

selectAllItem = new MenuItem( editDropMenu, SWT.PUSH );
selectAllItem.setText( "&Select All\tCtrl+A" );
selectAllItem.setAccelerator( SWT.CTRL + 'A' );

removeItem = new MenuItem( editDropMenu, SWT.PUSH );
removeItem.setText( "&Remove" );
removeItem.setAccelerator( SWT.DEL );

sessionTable = new Table( shell, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION );
sessionTable.setHeaderVisible( true );
sessionTable.setLinesVisible( true );
sessionTable.addListener( SWT.Selection, this );
FormData d1 = new FormData();
d1.top = new FormAttachment( 0, 1 );
d1.left = new FormAttachment( 0, 1 );
d1.right = new FormAttachment( 100, -1 );
d1.bottom = new FormAttachment( 100, -1 );
sessionTable.setLayoutData( d1 );

TableColumn column0 = new TableColumn ( sessionTable, SWT.NONE );
column0.setText ( " " );

TableColumn timeColumn = new TableColumn ( sessionTable, SWT.NONE );
timeColumn.setText ( "time" );

TableColumn column1 = new TableColumn ( sessionTable, SWT.NONE );
column1.setText ( "URL" );

TableColumn column2 = new TableColumn ( sessionTable, SWT.NONE );
column2.setText ( "State" );

TableColumn column3 = new TableColumn ( sessionTable, SWT.NONE );
column3.setText ( "Method" );

TableColumn column4 = new TableColumn ( sessionTable, SWT.NONE );
column4.setText ( "SCode" );

TableColumn column5 = new TableColumn ( sessionTable, SWT.NONE );
column5.setText ( "SSocket" );

TableColumn column6 = new TableColumn ( sessionTable, SWT.NONE );
column6.setText ( "CSocket" );

MSwtUtil.addListenerToMenuItems( editDropMenu, this );
MSwtUtil.addListenerToMenuItems( fileDropMenu, this );
MSwtUtil.addListenerToTableColumns( sessionTable, this );
MSwtUtil.getTableColumnWidthFromProperties( "sessionTable", sessionTable, prop );

updateMenus();
}
// --------------------------------------------------------------------------------
protected void handleEvent2( Event event )
{
if( event.widget == sessionTable )
	{
	switch( event.type )
		{
		case SWT.Selection:
			onSessionTableSelect();
			break;
		}
	}
else if( event.widget == copyUrlItem )
	{
	switch( event.type )
		{
		case SWT.Selection:
			onCopyUrlItemSelect();
			break;
		}
	}
else if( event.widget == saveRequestItem )
	{
	switch( event.type )
		{
		case SWT.Selection:
			onSaveRequestItemSelect();
			break;
		}
	}
else if( event.widget == saveRequestHeaderItem )
	{
	switch( event.type )
		{
		case SWT.Selection:
			onSaveRequestHeaderItemSelect();
			break;
		}
	}
else if( event.widget == saveRequestBodyItem )
	{
	switch( event.type )
		{
		case SWT.Selection:
			onSaveRequestBodyItemSelect();
			break;
		}
	}
else if( event.widget == saveResponseItem )
	{
	switch( event.type )
		{
		case SWT.Selection:
			onSaveResponseItemSelect();
			break;
		}
	}
else if( event.widget == saveResponseHeaderItem )
	{
	switch( event.type )
		{
		case SWT.Selection:
			onSaveResponseHeaderItemSelect();
			break;
		}
	}
else if( event.widget == saveResponseBodyItem )
	{
	switch( event.type )
		{
		case SWT.Selection:
			onSaveResponseBodyItemSelect();
			break;
		}
	}
else if( event.widget == saveSessionItem )
	{
	switch( event.type )
		{
		case SWT.Selection:
			saveSessions();
			break;
		}
	}
else if( event.widget == debugItem )
	{
	switch( event.type )
		{
		case SWT.Selection:
			onDebugSelect();
			break;
		}
	}
else if( event.widget == loadSessionItem )
	{
	switch( event.type )
		{
		case SWT.Selection:
			loadSessions();
			break;
		}
	}
else if( event.widget == selectAllItem )
	{
	switch( event.type )
		{
		case SWT.Selection:
			selectAll();
			break;
		}
	}
else if( event.widget == removeItem )
	{
	switch( event.type )
		{
		case SWT.Selection:
			removeItem();
			break;
		}
	}
else if( MSwtUtil.getTableColumns( sessionTable ).contains( event.widget ) )
	{
	onTableColumnResize();
	}
}
// --------------------------------------------------------------------------------
private void removeItem()
{
TableItem[] items = sessionTable.getSelection();
for( int i = 0; i < items.length; ++i )
	{
	MBaseSession session = ( MBaseSession )itemSessionMap.get( items[ i ] );
	itemSessionMap.remove( items[ i ] );
	sessionItemMap.remove( session );
	}
sessionTable.remove( sessionTable.getSelectionIndices() );
updateGui();
}
// --------------------------------------------------------------------------------
private void selectAll()
{
sessionTable.selectAll();
updateGui();
}
// --------------------------------------------------------------------------------
private void onDebugSelect()
{
}
// --------------------------------------------------------------------------------
private void loadSessions()
{
String fileName = doorman.loadFile();
if( fileName == null )
	{
	return;
	}
try
	{
	XMLDecoder decoder = new XMLDecoder( new GZIPInputStream( new FileInputStream( fileName ) ) );
	while( true )
		{
		try
			{
			MBaseSession session = ( MBaseSession )decoder.readObject();
			session.setXmlFlag( false );
			session.setState( MBaseSession.LOAD_FROM_FILE );
			updateGui( session );
			}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -